llm-dialog-manager 0.3.1__py3-none-any.whl → 0.3.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
1
  from .chat_history import ChatHistory
2
2
  from .agent import Agent
3
3
 
4
- __version__ = "0.3.1"
4
+ __version__ = "0.3.2"
@@ -6,6 +6,9 @@ from typing import List, Dict, Optional
6
6
  import logging
7
7
  from pathlib import Path
8
8
  import random
9
+ import requests
10
+ import zipfile
11
+ import io
9
12
 
10
13
  # Third-party imports
11
14
  import anthropic
@@ -234,8 +237,15 @@ class Agent:
234
237
  self.history = ChatHistory(messages)
235
238
  self.memory_enabled = memory_enabled
236
239
  self.api_key = api_key
240
+ self.repo_content = []
237
241
 
238
242
  def add_message(self, role, content):
243
+ repo_content = ""
244
+ while self.repo_content:
245
+ repo = self.repo_content.pop()
246
+ repo_content += f"<repo>\n{repo}\n</repo>\n"
247
+
248
+ content = repo_content + content
239
249
  self.history.add_message(content, role)
240
250
 
241
251
  def generate_response(self, max_tokens=3585, temperature=0.7):
@@ -271,6 +281,30 @@ class Agent:
271
281
  messages = json.load(file)
272
282
  self.history = ChatHistory(messages)
273
283
 
284
+ def load_repo(self, repo_name: Optional[str] = None, commit_hash: Optional[str] = None):
285
+ """eg: repo_name: xihajun/llm_dialog_manager"""
286
+ if repo_name:
287
+ if commit_hash:
288
+ repo_url = f"https://github.com/{repo_name}/archive/{commit_hash}.zip"
289
+ else:
290
+ repo_url = f"https://github.com/{repo_name}/archive/refs/heads/main.zip"
291
+
292
+ if not repo_url:
293
+ raise ValueError("Either repo_url or both username and repo_name must be provided")
294
+
295
+ response = requests.get(repo_url)
296
+ if response.status_code == 200:
297
+ repo_content = ""
298
+ with zipfile.ZipFile(io.BytesIO(response.content)) as z:
299
+ for file_info in z.infolist():
300
+ if not file_info.is_dir() and file_info.filename.endswith(('.py', '.txt')):
301
+ with z.open(file_info) as f:
302
+ content = f.read().decode('utf-8')
303
+ repo_content += f"{file_info.filename}\n```\n{content}\n```\n"
304
+ self.repo_content.append(repo_content)
305
+ else:
306
+ raise ValueError(f"Failed to download repository from {repo_url}")
307
+
274
308
  if __name__ == "__main__":
275
309
 
276
310
  # write a test for detect finding agent
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: llm_dialog_manager
3
- Version: 0.3.1
3
+ Version: 0.3.2
4
4
  Summary: A Python package for managing LLM chat conversation history
5
5
  Author-email: xihajun <work@2333.fun>
6
6
  License: MIT
@@ -0,0 +1,9 @@
1
+ llm_dialog_manager/__init__.py,sha256=u9m9_3UUibXqNSRzkf63lAbkw_l5RmGcxlVOhmeShlg,86
2
+ llm_dialog_manager/agent.py,sha256=o0ayPp9eS_8Vx78GYMPlIxHrK1UHTbu_I3dEsk4Agdo,13268
3
+ llm_dialog_manager/chat_history.py,sha256=xKA-oQCv8jv_g8EhXrG9h1S8Icbj2FfqPIhbty5vra4,6033
4
+ llm_dialog_manager/key_manager.py,sha256=shvxmn4zUtQx_p-x1EFyOmnk-WlhigbpKtxTKve-zXk,4421
5
+ llm_dialog_manager-0.3.2.dist-info/LICENSE,sha256=vWGbYgGuWpWrXL8-xi6pNcX5UzD6pWoIAZmcetyfbus,1064
6
+ llm_dialog_manager-0.3.2.dist-info/METADATA,sha256=-DNhRHechHF38K6DGrHCeHVTj2JX3sxw4ZYFQr6Sj5I,4152
7
+ llm_dialog_manager-0.3.2.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
8
+ llm_dialog_manager-0.3.2.dist-info/top_level.txt,sha256=u2EQEXW0NGAt0AAHT7jx1odXZ4rZfjcgbmJhvKFuMkI,19
9
+ llm_dialog_manager-0.3.2.dist-info/RECORD,,
@@ -1,9 +0,0 @@
1
- llm_dialog_manager/__init__.py,sha256=NOEzUBSgPngSq5JIrDD7jEpusmMi4kes3PSc4pLJCnE,86
2
- llm_dialog_manager/agent.py,sha256=m3LhktFjC8mDNx_TCm31QS09ZcUbKqcpW7QKrdfLsQc,11779
3
- llm_dialog_manager/chat_history.py,sha256=xKA-oQCv8jv_g8EhXrG9h1S8Icbj2FfqPIhbty5vra4,6033
4
- llm_dialog_manager/key_manager.py,sha256=shvxmn4zUtQx_p-x1EFyOmnk-WlhigbpKtxTKve-zXk,4421
5
- llm_dialog_manager-0.3.1.dist-info/LICENSE,sha256=vWGbYgGuWpWrXL8-xi6pNcX5UzD6pWoIAZmcetyfbus,1064
6
- llm_dialog_manager-0.3.1.dist-info/METADATA,sha256=hpaL6HcQTUvqlwLLnwtXuj_yzLEkyN-KXeWL3RRld7U,4152
7
- llm_dialog_manager-0.3.1.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
8
- llm_dialog_manager-0.3.1.dist-info/top_level.txt,sha256=u2EQEXW0NGAt0AAHT7jx1odXZ4rZfjcgbmJhvKFuMkI,19
9
- llm_dialog_manager-0.3.1.dist-info/RECORD,,