auto-coder 0.1.246__tar.gz → 0.1.248__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 (161) hide show
  1. {auto_coder-0.1.246 → auto_coder-0.1.248}/PKG-INFO +1 -1
  2. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/auto_coder.egg-info/PKG-INFO +1 -1
  3. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/auto_coder.py +2 -2
  4. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/chat_auto_coder.py +22 -10
  5. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/chat_auto_coder_lang.py +7 -1
  6. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/common/__init__.py +1 -0
  7. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/common/auto_coder_lang.py +20 -8
  8. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/common/code_auto_generate.py +1 -0
  9. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/common/code_modification_ranker.py +8 -1
  10. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/common/git_utils.py +4 -2
  11. auto_coder-0.1.248/src/autocoder/data/tokenizer.json +263174 -0
  12. auto_coder-0.1.248/src/autocoder/index/filter/quick_filter.py +231 -0
  13. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/utils/auto_coder_utils/chat_stream_out.py +12 -9
  14. auto_coder-0.1.248/src/autocoder/version.py +1 -0
  15. auto_coder-0.1.246/src/autocoder/data/tokenizer.json +0 -199865
  16. auto_coder-0.1.246/src/autocoder/index/filter/quick_filter.py +0 -99
  17. auto_coder-0.1.246/src/autocoder/version.py +0 -1
  18. {auto_coder-0.1.246 → auto_coder-0.1.248}/LICENSE +0 -0
  19. {auto_coder-0.1.246 → auto_coder-0.1.248}/README.md +0 -0
  20. {auto_coder-0.1.246 → auto_coder-0.1.248}/setup.cfg +0 -0
  21. {auto_coder-0.1.246 → auto_coder-0.1.248}/setup.py +0 -0
  22. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/auto_coder.egg-info/SOURCES.txt +0 -0
  23. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/auto_coder.egg-info/dependency_links.txt +0 -0
  24. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/auto_coder.egg-info/entry_points.txt +0 -0
  25. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/auto_coder.egg-info/requires.txt +0 -0
  26. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/auto_coder.egg-info/top_level.txt +0 -0
  27. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/__init__.py +0 -0
  28. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/agent/__init__.py +0 -0
  29. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/agent/auto_demand_organizer.py +0 -0
  30. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/agent/auto_filegroup.py +0 -0
  31. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/agent/auto_guess_query.py +0 -0
  32. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/agent/auto_review_commit.py +0 -0
  33. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/agent/auto_tool.py +0 -0
  34. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/agent/coder.py +0 -0
  35. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/agent/designer.py +0 -0
  36. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/agent/planner.py +0 -0
  37. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/agent/project_reader.py +0 -0
  38. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/auto_coder_rag.py +0 -0
  39. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/auto_coder_rag_client_mcp.py +0 -0
  40. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/auto_coder_rag_mcp.py +0 -0
  41. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/auto_coder_server.py +0 -0
  42. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/benchmark.py +0 -0
  43. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/chat/__init__.py +0 -0
  44. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/command_args.py +0 -0
  45. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/common/JupyterClient.py +0 -0
  46. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/common/ShellClient.py +0 -0
  47. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/common/anything2images.py +0 -0
  48. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/common/anything2img.py +0 -0
  49. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/common/audio.py +0 -0
  50. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/common/buildin_tokenizer.py +0 -0
  51. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/common/chunk_validation.py +0 -0
  52. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/common/cleaner.py +0 -0
  53. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/common/code_auto_execute.py +0 -0
  54. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/common/code_auto_generate_diff.py +0 -0
  55. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/common/code_auto_generate_editblock.py +0 -0
  56. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/common/code_auto_generate_strict_diff.py +0 -0
  57. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/common/code_auto_merge.py +0 -0
  58. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/common/code_auto_merge_diff.py +0 -0
  59. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/common/code_auto_merge_editblock.py +0 -0
  60. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/common/code_auto_merge_strict_diff.py +0 -0
  61. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/common/command_completer.py +0 -0
  62. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/common/command_generator.py +0 -0
  63. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/common/command_templates.py +0 -0
  64. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/common/const.py +0 -0
  65. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/common/files.py +0 -0
  66. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/common/image_to_page.py +0 -0
  67. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/common/interpreter.py +0 -0
  68. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/common/llm_rerank.py +0 -0
  69. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/common/mcp_hub.py +0 -0
  70. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/common/mcp_server.py +0 -0
  71. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/common/mcp_servers/__init__.py +0 -0
  72. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/common/mcp_servers/mcp_server_perplexity.py +0 -0
  73. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/common/mcp_tools.py +0 -0
  74. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/common/memory_manager.py +0 -0
  75. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/common/printer.py +0 -0
  76. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/common/recall_validation.py +0 -0
  77. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/common/screenshots.py +0 -0
  78. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/common/search.py +0 -0
  79. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/common/search_replace.py +0 -0
  80. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/common/sys_prompt.py +0 -0
  81. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/common/text.py +0 -0
  82. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/common/types.py +0 -0
  83. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/common/utils_code_auto_generate.py +0 -0
  84. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/db/__init__.py +0 -0
  85. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/db/store.py +0 -0
  86. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/dispacher/__init__.py +0 -0
  87. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/dispacher/actions/__init__.py +0 -0
  88. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/dispacher/actions/action.py +0 -0
  89. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/dispacher/actions/copilot.py +0 -0
  90. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/dispacher/actions/plugins/__init__.py +0 -0
  91. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/dispacher/actions/plugins/action_regex_project.py +0 -0
  92. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/dispacher/actions/plugins/action_translate.py +0 -0
  93. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/index/__init__.py +0 -0
  94. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/index/entry.py +0 -0
  95. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/index/filter/__init__.py +0 -0
  96. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/index/filter/normal_filter.py +0 -0
  97. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/index/for_command.py +0 -0
  98. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/index/index.py +0 -0
  99. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/index/symbols_utils.py +0 -0
  100. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/index/types.py +0 -0
  101. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/lang.py +0 -0
  102. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/models.py +0 -0
  103. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/pyproject/__init__.py +0 -0
  104. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/rag/__init__.py +0 -0
  105. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/rag/api_server.py +0 -0
  106. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/rag/cache/__init__.py +0 -0
  107. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/rag/cache/base_cache.py +0 -0
  108. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/rag/cache/byzer_storage_cache.py +0 -0
  109. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/rag/cache/file_monitor_cache.py +0 -0
  110. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/rag/cache/simple_cache.py +0 -0
  111. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/rag/doc_filter.py +0 -0
  112. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/rag/document_retriever.py +0 -0
  113. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/rag/llm_wrapper.py +0 -0
  114. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/rag/loaders/__init__.py +0 -0
  115. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/rag/loaders/docx_loader.py +0 -0
  116. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/rag/loaders/excel_loader.py +0 -0
  117. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/rag/loaders/pdf_loader.py +0 -0
  118. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/rag/loaders/ppt_loader.py +0 -0
  119. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/rag/long_context_rag.py +0 -0
  120. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/rag/rag_config.py +0 -0
  121. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/rag/rag_entry.py +0 -0
  122. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/rag/raw_rag.py +0 -0
  123. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/rag/relevant_utils.py +0 -0
  124. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/rag/simple_directory_reader.py +0 -0
  125. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/rag/simple_rag.py +0 -0
  126. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/rag/stream_event/__init__.py +0 -0
  127. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/rag/stream_event/event_writer.py +0 -0
  128. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/rag/stream_event/types.py +0 -0
  129. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/rag/token_checker.py +0 -0
  130. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/rag/token_counter.py +0 -0
  131. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/rag/token_limiter.py +0 -0
  132. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/rag/types.py +0 -0
  133. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/rag/utils.py +0 -0
  134. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/rag/variable_holder.py +0 -0
  135. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/regexproject/__init__.py +0 -0
  136. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/suffixproject/__init__.py +0 -0
  137. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/tsproject/__init__.py +0 -0
  138. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/utils/__init__.py +0 -0
  139. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/utils/_markitdown.py +0 -0
  140. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/utils/auto_coder_utils/__init__.py +0 -0
  141. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/utils/chat_auto_coder_utils/__init__.py +0 -0
  142. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/utils/conversation_store.py +0 -0
  143. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/utils/llm_client_interceptors.py +0 -0
  144. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/utils/llms.py +0 -0
  145. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/utils/log_capture.py +0 -0
  146. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/utils/multi_turn.py +0 -0
  147. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/utils/operate_config_api.py +0 -0
  148. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/utils/print_table.py +0 -0
  149. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/utils/queue_communicate.py +0 -0
  150. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/utils/request_event_queue.py +0 -0
  151. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/utils/request_queue.py +0 -0
  152. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/utils/rest.py +0 -0
  153. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/utils/tests.py +0 -0
  154. {auto_coder-0.1.246 → auto_coder-0.1.248}/src/autocoder/utils/types.py +0 -0
  155. {auto_coder-0.1.246 → auto_coder-0.1.248}/tests/test_action_regex_project.py +0 -0
  156. {auto_coder-0.1.246 → auto_coder-0.1.248}/tests/test_chat_auto_coder.py +0 -0
  157. {auto_coder-0.1.246 → auto_coder-0.1.248}/tests/test_code_auto_merge_editblock.py +0 -0
  158. {auto_coder-0.1.246 → auto_coder-0.1.248}/tests/test_command_completer.py +0 -0
  159. {auto_coder-0.1.246 → auto_coder-0.1.248}/tests/test_planner.py +0 -0
  160. {auto_coder-0.1.246 → auto_coder-0.1.248}/tests/test_queue_communicate.py +0 -0
  161. {auto_coder-0.1.246 → auto_coder-0.1.248}/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.246
3
+ Version: 0.1.248
4
4
  Summary: AutoCoder: AutoCoder
5
5
  Author: allwefantasy
6
6
  Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: auto-coder
3
- Version: 0.1.246
3
+ Version: 0.1.248
4
4
  Summary: AutoCoder: AutoCoder
5
5
  Author: allwefantasy
6
6
  Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
@@ -276,7 +276,7 @@ def main(input_args: Optional[List[str]] = None):
276
276
  )
277
277
  byzerllm.connect_cluster(address=args.ray_address)
278
278
 
279
- llm = byzerllm.ByzerLLM(verbose=args.print_request)
279
+ llm = byzerllm.ByzerLLM(verbose=args.print_request)
280
280
 
281
281
  # code_model,index_filter_model,generate_rerank_model,chat_model
282
282
  # 这四个模型如果用户没有设置,就会使用默认的
@@ -1339,7 +1339,7 @@ def main(input_args: Optional[List[str]] = None):
1339
1339
  elif "review_commit" in args.action:
1340
1340
  from autocoder.agent.auto_review_commit import AutoReviewCommit
1341
1341
  reviewer = AutoReviewCommit(llm=chat_llm, args=args)
1342
- v = reviewer.review_commit(args.query)
1342
+ v = reviewer.review_commit(query=args.query,conversations=loaded_conversations)
1343
1343
  else:
1344
1344
  v = stream_chat_with_continue(
1345
1345
  llm=chat_llm,
@@ -1712,14 +1712,24 @@ def commit(query: str):
1712
1712
  finally:
1713
1713
  if os.path.exists(temp_yaml):
1714
1714
  os.remove(temp_yaml)
1715
-
1716
- llm = get_single_llm(args.code_model or args.model, product_mode)
1717
- uncommitted_changes = git_utils.get_uncommitted_changes(".")
1718
- commit_message = git_utils.generate_commit_message.with_llm(llm).run(
1719
- uncommitted_changes
1720
- )
1721
- memory["conversation"].append(
1722
- {"role": "user", "content": commit_message})
1715
+
1716
+ target_model = args.code_model or args.model
1717
+ llm = get_single_llm(target_model, product_mode)
1718
+ printer = Printer()
1719
+ printer.print_in_terminal("commit_generating", style="yellow", model_name=target_model)
1720
+ commit_message = ""
1721
+
1722
+ try:
1723
+ uncommitted_changes = git_utils.get_uncommitted_changes(".")
1724
+ commit_message = git_utils.generate_commit_message.with_llm(llm).run(
1725
+ uncommitted_changes
1726
+ )
1727
+ memory["conversation"].append(
1728
+ {"role": "user", "content": commit_message})
1729
+ except Exception as e:
1730
+ printer.print_in_terminal("commit_failed", style="red", error=str(e), model_name=target_model)
1731
+ return
1732
+
1723
1733
  yaml_config["query"] = commit_message
1724
1734
  yaml_content = convert_yaml_config_to_str(yaml_config=yaml_config)
1725
1735
  with open(os.path.join(execute_file), "w") as f:
@@ -1732,6 +1742,8 @@ def commit(query: str):
1732
1742
  ".", f"auto_coder_{file_name}_{md5}"
1733
1743
  )
1734
1744
  git_utils.print_commit_info(commit_result=commit_result)
1745
+ if commit_message:
1746
+ printer.print_in_terminal("commit_message", style="green", model_name=target_model, message=commit_message)
1735
1747
  except Exception as e:
1736
1748
  import traceback
1737
1749
  traceback.print_exc()
@@ -1875,8 +1887,8 @@ def coding(query: str):
1875
1887
  @byzerllm.prompt()
1876
1888
  def code_review(query: str) -> str:
1877
1889
  """
1878
- 对代码进行review,参考如下检查点。
1879
- 1. 有没有调用不符合方法,类的签名的调用
1890
+ 掐面提供了上下文,对代码进行review,参考如下检查点。
1891
+ 1. 有没有调用不符合方法,类的签名的调用,包括对第三方类,模块,方法的检查(如果上下文提供了这些信息)
1880
1892
  2. 有没有未声明直接使用的变量,方法,类
1881
1893
  3. 有没有明显的语法错误
1882
1894
  4. 如果是python代码,检查有没有缩进方面的错误
@@ -113,9 +113,15 @@ MESSAGES = {
113
113
  "remove_files_none": "No files were removed.",
114
114
  "files_removed": "Files Removed",
115
115
  "models_api_key_empty": "Warning : {{name}} API key is empty. Please set a valid API key.",
116
+ "commit_generating": "{{ model_name }} Generating commit message...",
117
+ "commit_message": "{{ model_name }} Generated commit message: {{ message }}",
118
+ "commit_failed": "{{ model_name }} Failed to generate commit message: {{ error }}",
116
119
  },
117
120
  "zh": {
118
- "mcp_remove_error": "移除 MCP 服务器时出错:{error}",
121
+ "commit_generating": "{{ model_name }} 正在生成提交信息...",
122
+ "commit_message": "{{ model_name }} 生成的提交信息: {{ message }}",
123
+ "commit_failed": "{{ model_name }} 生成提交信息失败: {{ error }}",
124
+ "mcp_remove_error": "移除 MCP 服务器时出错:{error}",
119
125
  "mcp_remove_success": "成功移除 MCP 服务器:{result}",
120
126
  "mcp_list_running_error": "列出运行中的 MCP 服务器时出错:{error}",
121
127
  "mcp_list_running_title": "正在运行的 MCP 服务器:",
@@ -260,6 +260,7 @@ class AutoCoderArgs(pydantic.BaseModel):
260
260
 
261
261
  index_model: Optional[str] = ""
262
262
  index_filter_model: Optional[str] = ""
263
+ index_filter_model_max_input_length: Optional[int] = 50*1024
263
264
  index_model_max_length: Optional[int] = 0
264
265
  index_model_max_input_length: Optional[int] = 0
265
266
  index_model_anti_quota_limit: Optional[int] = 0
@@ -53,7 +53,7 @@ MESSAGES = {
53
53
  "code_generation_complete": "Code generation completed in {{ duration }} seconds, input_tokens_count: {{ input_tokens }}, generated_tokens_count: {{ output_tokens }}",
54
54
  "code_merge_start": "Auto merge the code...",
55
55
  "code_execution_warning": "Content(send to model) is {{ content_length }} tokens (you may collect too much files), which is larger than the maximum input length {{ max_length }}",
56
- "quick_filter_start": "Starting filter context(quick_filter)...",
56
+ "quick_filter_start": "{{ model_name }} Starting filter context(quick_filter)...",
57
57
  "normal_filter_start": "{{ model_name }} Starting filter context(normal_filter)...",
58
58
  "pylint_check_failed": "⚠️ Pylint check failed: {{ error_message }}",
59
59
  "pylint_error": "❌ Error running pylint: {{ error_message }}",
@@ -65,7 +65,7 @@ MESSAGES = {
65
65
  "merge_failed": "❌ Merge file {{ path }} failed: {{ error }}",
66
66
  "files_merged_total": "✅ Merged {{ total }} files into the project.",
67
67
  "ranking_skip": "Only 1 candidate, skip ranking",
68
- "ranking_start": "Start ranking {{ count }} candidates",
68
+ "ranking_start": "Start ranking {{ count }} candidates using model {{ model_name }}",
69
69
  "ranking_failed_request": "Ranking request failed: {{ error }}",
70
70
  "ranking_all_failed": "All ranking requests failed",
71
71
  "ranking_complete": "Ranking completed in {{ elapsed }}s, total voters: {{ total_tasks }}, best candidate index: {{ best_candidate }}, scores: {{ scores }}, input_tokens: {{ input_tokens }}, output_tokens: {{ output_tokens }}",
@@ -73,13 +73,19 @@ MESSAGES = {
73
73
  "ranking_failed": "Ranking failed in {{ elapsed }}s, using original order",
74
74
  "begin_index_source_code": "🚀 Begin to index source code in {{ source_dir }}",
75
75
  "stream_out_stats": "Elapsed time {{ elapsed_time }} seconds, input tokens: {{ input_tokens }}, output tokens: {{ output_tokens }}",
76
+ "quick_filter_stats": "快速过滤器完成,耗时 {{ elapsed_time }} 秒,输入token数: {{ input_tokens }}, 输出token数: {{ output_tokens }}",
76
77
  "upsert_file": "✅ Updated file: {{ file_path }}",
77
- "unmerged_blocks_title": "Unmerged Blocks",
78
+ "unmerged_blocks_title": "Unmerged Blocks",
79
+ "quick_filter_title": "{{ model_name }} is analyzing how to filter context...",
80
+ "quick_filter_failed": "❌ Quick filter failed: {{ error }}. ",
78
81
  "unmerged_file_path": "File: {{file_path}}",
79
82
  "unmerged_search_block": "Search Block({{similarity}}):",
80
83
  "unmerged_replace_block": "Replace Block:",
81
84
  "unmerged_blocks_total": "Total unmerged blocks: {{num_blocks}}",
82
- "git_init_required": "⚠️ auto_merge only applies to git repositories.\n\nPlease try using git init in the source directory:\n\n```shell\ncd {{ source_dir }}\ngit init.\n```\n\nThen run auto - coder again.\nError: {{ error }}"
85
+ "git_init_required": "⚠️ auto_merge only applies to git repositories.\n\nPlease try using git init in the source directory:\n\n```shell\ncd {{ source_dir }}\ngit init.\n```\n\nThen run auto - coder again.\nError: {{ error }}",
86
+ "quick_filter_reason": "Auto get(quick_filter mode)",
87
+ "quick_filter_too_long": "⚠️ index file is too large ({{ tokens_len }}/{{ max_tokens }}). The query will be split into {{ split_size }} chunks.",
88
+ "quick_filter_tokens_len": "📊 Current index size: {{ tokens_len }} tokens"
83
89
  },
84
90
  "zh": {
85
91
  "model_not_found": "未找到模型: {{model_name}}",
@@ -132,7 +138,7 @@ MESSAGES = {
132
138
  "code_generation_complete": "代码生成完成,耗时 {{ duration }} 秒,输入token数: {{ input_tokens }}, 输出token数: {{ output_tokens }}",
133
139
  "code_merge_start": "正在自动合并代码...",
134
140
  "code_execution_warning": "发送给模型的内容长度为 {{ content_length }} tokens(您可能收集了太多文件),超过了最大输入长度 {{ max_length }}",
135
- "quick_filter_start": "开始查找上下文(quick_filter)...",
141
+ "quick_filter_start": "{{ model_name }} 开始查找上下文(quick_filter)...",
136
142
  "normal_filter_start": "{{ model_name }} 开始查找上下文(normal_filter)...",
137
143
  "pylint_check_failed": "⚠️ Pylint 检查失败: {{ error_message }}",
138
144
  "pylint_error": "❌ 运行 Pylint 时出错: {{ error_message }}",
@@ -146,19 +152,25 @@ MESSAGES = {
146
152
  "unmerged_search_block": "Search Block({{similarity}}):",
147
153
  "unmerged_replace_block": "Replace Block:",
148
154
  "unmerged_blocks_total": "未合并代码块数量: {{num_blocks}}",
149
- "git_init_required": "⚠️ auto_merge 仅适用于 git 仓库。\n\n请尝试在源目录中使用 git init:\n\n```shell\ncd {{ source_dir }}\ngit init.\n```\n\n然后再次运行 auto-coder。\n错误: {{ error }}",
155
+ "git_init_required": "⚠️ auto_merge 仅适用于 git 仓库。\n\n请尝试在源目录中使用 git init:\n\n```shell\ncd {{ source_dir }}\ngit init.\n```\n\n然后再次运行 auto-coder。\n错误: {{ error }}",
156
+ "quick_filter_reason": "自动获取(quick_filter模式)",
157
+ "quick_filter_too_long": "⚠️ 索引文件过大 ({{ tokens_len }}/{{ max_tokens }})。查询将被分成 {{ split_size }} 个部分执行。",
158
+ "quick_filter_tokens_len": "📊 当前索引大小: {{ tokens_len }} tokens",
150
159
  "upsert_file": "✅ 更新文件: {{ file_path }}",
151
160
  "files_merged": "✅ 成功合并了 {{ total }} 个文件到项目中。",
152
161
  "merge_failed": "❌ 合并文件 {{ path }} 失败: {{ error }}",
153
162
  "files_merged_total": "✅ 合并了 {{ total }} 个文件到项目中。",
154
163
  "ranking_skip": "只有1个候选项,跳过排序",
155
- "ranking_start": "开始对 {{ count }} 个候选项进行排序",
164
+ "ranking_start": "开始对 {{ count }} 个候选项进行排序,使用模型 {{ model_name }} 打分",
156
165
  "ranking_failed_request": "排序请求失败: {{ error }}",
157
166
  "ranking_all_failed": "所有排序请求都失败",
158
167
  "ranking_complete": "排序完成,耗时 {{ elapsed }} 秒,总投票数: {{ total_tasks }},最佳候选索引: {{ best_candidate }},得分: {{ scores }},输入token数: {{ input_tokens }},输出token数: {{ output_tokens }}",
159
168
  "ranking_process_failed": "排序过程失败: {{ error }}",
160
169
  "ranking_failed": "排序失败,耗时 {{ elapsed }} 秒,使用原始顺序",
161
- "stream_out_stats": "耗时 {{ elapsed_time }} 秒,输入token数: {{ input_tokens }}, 输出token数: {{ output_tokens }}"
170
+ "stream_out_stats": "耗时 {{ elapsed_time }} 秒,输入token数: {{ input_tokens }}, 输出token数: {{ output_tokens }}",
171
+ "quick_filter_stats": "Quick filter completed in {{ elapsed_time }} seconds, input tokens: {{ input_tokens }}, output tokens: {{ output_tokens }}",
172
+ "quick_filter_title": "{{ model_name }} 正在分析如何筛选上下文...",
173
+ "quick_filter_failed": "❌ 快速过滤器失败: {{ error }}. ",
162
174
  },
163
175
  }
164
176
 
@@ -7,6 +7,7 @@ from autocoder.common import sys_prompt
7
7
  from concurrent.futures import ThreadPoolExecutor
8
8
  from autocoder.common.types import CodeGenerateResult
9
9
  from autocoder.common.utils_code_auto_generate import chat_with_continue
10
+ import json
10
11
 
11
12
 
12
13
  class CodeAutoGenerate:
@@ -77,8 +77,15 @@ class CodeModificationRanker:
77
77
  with ThreadPoolExecutor(max_workers=total_tasks) as executor:
78
78
  # Submit tasks for each model and generate_times
79
79
  futures = []
80
- for llm in self.llms:
80
+ for llm in self.llms:
81
+ model_name = getattr(llm, 'default_model_name', None)
82
+ if not model_name:
83
+ model_name = "unknown(without default model name)"
84
+ self.printer.print_in_terminal(
85
+ "ranking_start", style="blue", count=len(generate_result.contents), model_name=model_name)
86
+
81
87
  for _ in range(rank_times):
88
+
82
89
  futures.append(
83
90
  executor.submit(
84
91
  chat_with_continue,
@@ -262,7 +262,9 @@ def get_uncommitted_changes(repo_path: str) -> str:
262
262
  def generate_commit_message(changes_report: str) -> str:
263
263
  '''
264
264
  我是一个Git提交信息生成助手。我们的目标是通过一些变更报告,倒推用户的需求,将需求作为commit message。
265
- commit message 需要简洁,不要超过100个字符。
265
+ commit message 需要简洁,包含两部分:
266
+ 1. 这个commit 背后的需求是什么
267
+ 2. 为了完成这个需求做了哪些事情
266
268
 
267
269
  下面是一些示例:
268
270
  <examples>
@@ -613,7 +615,7 @@ def print_commit_info(commit_result: CommitResult):
613
615
 
614
616
  table.add_row("Commit Hash", commit_result.commit_hash)
615
617
  table.add_row("Commit Message", commit_result.commit_message)
616
- table.add_row("Changed Files", "\n".join(commit_result.changed_files))
618
+ table.add_row("Changed Files", "\n".join(commit_result.changed_files) if commit_result.changed_files else "No files changed")
617
619
 
618
620
  console.print(
619
621
  Panel(table, expand=False, border_style="green", title="Git Commit Summary")