auto-coder 0.1.230__tar.gz → 0.1.232__tar.gz

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.

Potentially problematic release.


This version of auto-coder might be problematic. Click here for more details.

Files changed (153) hide show
  1. {auto_coder-0.1.230 → auto_coder-0.1.232}/PKG-INFO +2 -2
  2. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/auto_coder.egg-info/PKG-INFO +2 -2
  3. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/auto_coder.egg-info/requires.txt +1 -1
  4. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/auto_coder.py +7 -4
  5. auto_coder-0.1.232/src/autocoder/common/utils_code_auto_generate.py +90 -0
  6. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/utils/auto_coder_utils/chat_stream_out.py +1 -1
  7. auto_coder-0.1.232/src/autocoder/version.py +1 -0
  8. auto_coder-0.1.230/src/autocoder/common/utils_code_auto_generate.py +0 -38
  9. auto_coder-0.1.230/src/autocoder/version.py +0 -1
  10. {auto_coder-0.1.230 → auto_coder-0.1.232}/LICENSE +0 -0
  11. {auto_coder-0.1.230 → auto_coder-0.1.232}/README.md +0 -0
  12. {auto_coder-0.1.230 → auto_coder-0.1.232}/setup.cfg +0 -0
  13. {auto_coder-0.1.230 → auto_coder-0.1.232}/setup.py +0 -0
  14. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/auto_coder.egg-info/SOURCES.txt +0 -0
  15. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/auto_coder.egg-info/dependency_links.txt +0 -0
  16. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/auto_coder.egg-info/entry_points.txt +0 -0
  17. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/auto_coder.egg-info/top_level.txt +0 -0
  18. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/__init__.py +0 -0
  19. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/agent/__init__.py +0 -0
  20. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/agent/auto_demand_organizer.py +0 -0
  21. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/agent/auto_filegroup.py +0 -0
  22. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/agent/auto_guess_query.py +0 -0
  23. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/agent/auto_tool.py +0 -0
  24. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/agent/coder.py +0 -0
  25. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/agent/designer.py +0 -0
  26. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/agent/planner.py +0 -0
  27. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/agent/project_reader.py +0 -0
  28. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/auto_coder_lang.py +0 -0
  29. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/auto_coder_rag.py +0 -0
  30. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/auto_coder_rag_client_mcp.py +0 -0
  31. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/auto_coder_rag_mcp.py +0 -0
  32. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/auto_coder_server.py +0 -0
  33. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/benchmark.py +0 -0
  34. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/chat/__init__.py +0 -0
  35. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/chat_auto_coder.py +0 -0
  36. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/chat_auto_coder_lang.py +0 -0
  37. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/command_args.py +0 -0
  38. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/common/JupyterClient.py +0 -0
  39. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/common/ShellClient.py +0 -0
  40. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/common/__init__.py +0 -0
  41. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/common/anything2images.py +0 -0
  42. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/common/anything2img.py +0 -0
  43. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/common/audio.py +0 -0
  44. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/common/buildin_tokenizer.py +0 -0
  45. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/common/chunk_validation.py +0 -0
  46. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/common/cleaner.py +0 -0
  47. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/common/code_auto_execute.py +0 -0
  48. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/common/code_auto_generate.py +0 -0
  49. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/common/code_auto_generate_diff.py +0 -0
  50. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/common/code_auto_generate_editblock.py +0 -0
  51. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/common/code_auto_generate_strict_diff.py +0 -0
  52. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/common/code_auto_merge.py +0 -0
  53. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/common/code_auto_merge_diff.py +0 -0
  54. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/common/code_auto_merge_editblock.py +0 -0
  55. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/common/code_auto_merge_strict_diff.py +0 -0
  56. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/common/code_modification_ranker.py +0 -0
  57. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/common/command_completer.py +0 -0
  58. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/common/command_generator.py +0 -0
  59. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/common/command_templates.py +0 -0
  60. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/common/const.py +0 -0
  61. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/common/files.py +0 -0
  62. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/common/git_utils.py +0 -0
  63. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/common/image_to_page.py +0 -0
  64. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/common/interpreter.py +0 -0
  65. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/common/llm_rerank.py +0 -0
  66. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/common/mcp_hub.py +0 -0
  67. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/common/mcp_server.py +0 -0
  68. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/common/mcp_servers/__init__.py +0 -0
  69. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/common/mcp_servers/mcp_server_perplexity.py +0 -0
  70. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/common/mcp_tools.py +0 -0
  71. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/common/memory_manager.py +0 -0
  72. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/common/recall_validation.py +0 -0
  73. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/common/screenshots.py +0 -0
  74. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/common/search.py +0 -0
  75. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/common/search_replace.py +0 -0
  76. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/common/sys_prompt.py +0 -0
  77. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/common/text.py +0 -0
  78. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/common/types.py +0 -0
  79. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/data/tokenizer.json +0 -0
  80. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/db/__init__.py +0 -0
  81. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/db/store.py +0 -0
  82. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/dispacher/__init__.py +0 -0
  83. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/dispacher/actions/__init__.py +0 -0
  84. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/dispacher/actions/action.py +0 -0
  85. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/dispacher/actions/copilot.py +0 -0
  86. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/dispacher/actions/plugins/__init__.py +0 -0
  87. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/dispacher/actions/plugins/action_regex_project.py +0 -0
  88. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/dispacher/actions/plugins/action_translate.py +0 -0
  89. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/index/__init__.py +0 -0
  90. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/index/for_command.py +0 -0
  91. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/index/index.py +0 -0
  92. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/index/symbols_utils.py +0 -0
  93. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/index/types.py +0 -0
  94. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/lang.py +0 -0
  95. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/models.py +0 -0
  96. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/pyproject/__init__.py +0 -0
  97. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/rag/__init__.py +0 -0
  98. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/rag/api_server.py +0 -0
  99. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/rag/cache/__init__.py +0 -0
  100. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/rag/cache/base_cache.py +0 -0
  101. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/rag/cache/byzer_storage_cache.py +0 -0
  102. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/rag/cache/file_monitor_cache.py +0 -0
  103. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/rag/cache/simple_cache.py +0 -0
  104. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/rag/doc_filter.py +0 -0
  105. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/rag/document_retriever.py +0 -0
  106. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/rag/llm_wrapper.py +0 -0
  107. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/rag/loaders/__init__.py +0 -0
  108. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/rag/loaders/docx_loader.py +0 -0
  109. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/rag/loaders/excel_loader.py +0 -0
  110. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/rag/loaders/pdf_loader.py +0 -0
  111. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/rag/loaders/ppt_loader.py +0 -0
  112. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/rag/long_context_rag.py +0 -0
  113. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/rag/rag_config.py +0 -0
  114. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/rag/rag_entry.py +0 -0
  115. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/rag/raw_rag.py +0 -0
  116. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/rag/relevant_utils.py +0 -0
  117. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/rag/simple_directory_reader.py +0 -0
  118. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/rag/simple_rag.py +0 -0
  119. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/rag/stream_event/__init__.py +0 -0
  120. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/rag/stream_event/event_writer.py +0 -0
  121. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/rag/stream_event/types.py +0 -0
  122. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/rag/token_checker.py +0 -0
  123. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/rag/token_counter.py +0 -0
  124. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/rag/token_limiter.py +0 -0
  125. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/rag/types.py +0 -0
  126. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/rag/utils.py +0 -0
  127. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/rag/variable_holder.py +0 -0
  128. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/regexproject/__init__.py +0 -0
  129. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/suffixproject/__init__.py +0 -0
  130. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/tsproject/__init__.py +0 -0
  131. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/utils/__init__.py +0 -0
  132. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/utils/_markitdown.py +0 -0
  133. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/utils/auto_coder_utils/__init__.py +0 -0
  134. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/utils/chat_auto_coder_utils/__init__.py +0 -0
  135. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/utils/conversation_store.py +0 -0
  136. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/utils/llm_client_interceptors.py +0 -0
  137. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/utils/llms.py +0 -0
  138. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/utils/log_capture.py +0 -0
  139. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/utils/multi_turn.py +0 -0
  140. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/utils/operate_config_api.py +0 -0
  141. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/utils/print_table.py +0 -0
  142. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/utils/queue_communicate.py +0 -0
  143. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/utils/request_event_queue.py +0 -0
  144. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/utils/request_queue.py +0 -0
  145. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/utils/rest.py +0 -0
  146. {auto_coder-0.1.230 → auto_coder-0.1.232}/src/autocoder/utils/tests.py +0 -0
  147. {auto_coder-0.1.230 → auto_coder-0.1.232}/tests/test_action_regex_project.py +0 -0
  148. {auto_coder-0.1.230 → auto_coder-0.1.232}/tests/test_chat_auto_coder.py +0 -0
  149. {auto_coder-0.1.230 → auto_coder-0.1.232}/tests/test_code_auto_merge_editblock.py +0 -0
  150. {auto_coder-0.1.230 → auto_coder-0.1.232}/tests/test_command_completer.py +0 -0
  151. {auto_coder-0.1.230 → auto_coder-0.1.232}/tests/test_planner.py +0 -0
  152. {auto_coder-0.1.230 → auto_coder-0.1.232}/tests/test_queue_communicate.py +0 -0
  153. {auto_coder-0.1.230 → auto_coder-0.1.232}/tests/test_symbols_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: auto-coder
3
- Version: 0.1.230
3
+ Version: 0.1.232
4
4
  Summary: AutoCoder: AutoCoder
5
5
  Author: allwefantasy
6
6
  Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
@@ -26,7 +26,7 @@ Requires-Dist: tabulate
26
26
  Requires-Dist: jupyter_client
27
27
  Requires-Dist: prompt-toolkit
28
28
  Requires-Dist: tokenizers
29
- Requires-Dist: byzerllm[saas]>=0.1.150
29
+ Requires-Dist: byzerllm[saas]>=0.1.151
30
30
  Requires-Dist: patch
31
31
  Requires-Dist: diff_match_patch
32
32
  Requires-Dist: GitPython
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: auto-coder
3
- Version: 0.1.230
3
+ Version: 0.1.232
4
4
  Summary: AutoCoder: AutoCoder
5
5
  Author: allwefantasy
6
6
  Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
@@ -26,7 +26,7 @@ Requires-Dist: tabulate
26
26
  Requires-Dist: jupyter_client
27
27
  Requires-Dist: prompt-toolkit
28
28
  Requires-Dist: tokenizers
29
- Requires-Dist: byzerllm[saas]>=0.1.150
29
+ Requires-Dist: byzerllm[saas]>=0.1.151
30
30
  Requires-Dist: patch
31
31
  Requires-Dist: diff_match_patch
32
32
  Requires-Dist: GitPython
@@ -16,7 +16,7 @@ tabulate
16
16
  jupyter_client
17
17
  prompt-toolkit
18
18
  tokenizers
19
- byzerllm[saas]>=0.1.150
19
+ byzerllm[saas]>=0.1.151
20
20
  patch
21
21
  diff_match_patch
22
22
  GitPython
@@ -1272,10 +1272,13 @@ def main(input_args: Optional[List[str]] = None):
1272
1272
  )
1273
1273
  )
1274
1274
  v = [[response.result,None]]
1275
- else:
1276
- v = chat_llm.stream_chat_oai(
1277
- conversations=loaded_conversations, delta_mode=True
1278
- )
1275
+ else:
1276
+ from autocoder.common.utils_code_auto_generate import stream_chat_with_continue
1277
+ v = stream_chat_with_continue(
1278
+ llm=chat_llm,
1279
+ conversations=loaded_conversations,
1280
+ llm_config={}
1281
+ )
1279
1282
 
1280
1283
  assistant_response, last_meta = stream_out(
1281
1284
  v,
@@ -0,0 +1,90 @@
1
+ from byzerllm import ByzerLLM,SimpleByzerLLM
2
+ from typing import Generator, List, Any, Union
3
+ from pydantic import BaseModel
4
+ from loguru import logger
5
+
6
+ class ChatWithContinueResult(BaseModel):
7
+ content: str
8
+ input_tokens_count: int
9
+ generated_tokens_count: int
10
+
11
+
12
+ def chat_with_continue(llm: Union[ByzerLLM,SimpleByzerLLM], conversations: List[dict], llm_config: dict) -> ChatWithContinueResult:
13
+ final_result = ChatWithContinueResult(content="", input_tokens_count=0, generated_tokens_count=0)
14
+ v = llm.chat_oai(
15
+ conversations=conversations, llm_config=llm_config)
16
+
17
+ single_result = v[0].output
18
+ metadata = v[0].metadata
19
+
20
+ final_result.input_tokens_count += metadata.get("input_tokens_count", 0)
21
+ final_result.generated_tokens_count += metadata.get("generated_tokens_count", 0)
22
+
23
+ temp_conversations = conversations + \
24
+ [{"role": "assistant", "content": single_result}]
25
+
26
+ count = 1
27
+ while (metadata.get("finish_reason", "stop") == "length" and count < 6):
28
+ v = llm.chat_oai(
29
+ conversations=temp_conversations, llm_config={**llm_config, "gen.response_prefix": True})
30
+ metadata = v[0].metadata
31
+ single_result += v[0].output
32
+ final_result.input_tokens_count += metadata.get("input_tokens_count", 0)
33
+ final_result.generated_tokens_count += metadata.get("generated_tokens_count", 0)
34
+ count += 1
35
+
36
+ # if count >= 2:
37
+ # logger.info(f"The code generation is exceed the max length, continue to generate the code {count -1 } times")
38
+ final_result.content = single_result
39
+ return final_result
40
+
41
+ def stream_chat_with_continue(
42
+ llm: Union[ByzerLLM, SimpleByzerLLM],
43
+ conversations: List[dict],
44
+ llm_config: dict
45
+ ) -> Generator[Any, None, None]:
46
+ """
47
+ 流式处理并继续生成内容,直到完成。
48
+
49
+ Args:
50
+ llm (Union[ByzerLLM, SimpleByzerLLM]): LLM实例
51
+ conversations (List[dict]): 对话历史
52
+ llm_config (dict): LLM配置参数
53
+
54
+
55
+ """
56
+
57
+ count = 0
58
+ temp_conversations = conversations
59
+ current_metadata = None
60
+
61
+ while True:
62
+ # 使用流式接口获取生成内容
63
+ stream_generator = llm.stream_chat_oai(
64
+ conversations=temp_conversations,
65
+ delta_mode=True,
66
+ llm_config={**llm_config, "gen.response_prefix": True if count > 0 else False}
67
+ )
68
+
69
+ current_content = ""
70
+ for res in stream_generator:
71
+ content = res[0]
72
+ current_content += content
73
+ if current_metadata is None:
74
+ current_metadata = res[1]
75
+ else:
76
+ current_metadata.generated_tokens_count += res[1].generated_tokens_count
77
+ current_metadata.input_tokens_count += res[1].input_tokens_count
78
+ current_metadata.finish_reason = res[1].finish_reason
79
+
80
+ # Yield 当前的 StreamChatWithContinueResult
81
+ yield (content,current_metadata)
82
+
83
+ # 更新对话历史
84
+ temp_conversations.append({"role": "assistant", "content": current_content})
85
+
86
+ # 检查是否需要继续生成
87
+ if current_metadata.finish_reason != "length" or count >= 5:
88
+ break
89
+
90
+ count += 1
@@ -39,7 +39,7 @@ def stream_out(
39
39
  console=console
40
40
  ) as live:
41
41
  for res in stream_generator:
42
- last_meta = res[1]
42
+ last_meta = res[1]
43
43
  content = res[0]
44
44
  assistant_response += content
45
45
 
@@ -0,0 +1 @@
1
+ __version__ = "0.1.232"
@@ -1,38 +0,0 @@
1
- from byzerllm import ByzerLLM
2
- from typing import List,Any,Union
3
- from pydantic import BaseModel
4
- from loguru import logger
5
- class ChatWithContinueResult(BaseModel):
6
- content: str
7
- input_tokens_count: int
8
- generated_tokens_count: int
9
-
10
-
11
- def chat_with_continue(llm: ByzerLLM, conversations: List[dict], llm_config: dict) -> ChatWithContinueResult:
12
- final_result = ChatWithContinueResult(content="", input_tokens_count=0, generated_tokens_count=0)
13
- v = llm.chat_oai(
14
- conversations=conversations, llm_config=llm_config)
15
-
16
- single_result = v[0].output
17
- metadata = v[0].metadata
18
-
19
- final_result.input_tokens_count += metadata.get("input_tokens_count", 0)
20
- final_result.generated_tokens_count += metadata.get("generated_tokens_count", 0)
21
-
22
- temp_conversations = conversations + \
23
- [{"role": "assistant", "content": single_result}]
24
-
25
- count = 1
26
- while (metadata.get("finish_reason", "stop") == "length" and count < 6):
27
- v = llm.chat_oai(
28
- conversations=temp_conversations, llm_config={**llm_config, "gen.response_prefix": True})
29
- metadata = v[0].metadata
30
- single_result += v[0].output
31
- final_result.input_tokens_count += metadata.get("input_tokens_count", 0)
32
- final_result.generated_tokens_count += metadata.get("generated_tokens_count", 0)
33
- count += 1
34
-
35
- # if count >= 2:
36
- # logger.info(f"The code generation is exceed the max length, continue to generate the code {count -1 } times")
37
- final_result.content = single_result
38
- return final_result
@@ -1 +0,0 @@
1
- __version__ = "0.1.230"
File without changes
File without changes
File without changes
File without changes