auto-coder 0.1.175__tar.gz → 0.1.176__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 (114) hide show
  1. {auto-coder-0.1.175 → auto-coder-0.1.176}/PKG-INFO +1 -1
  2. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/auto_coder.egg-info/PKG-INFO +1 -1
  3. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/auto_coder_rag.py +5 -0
  4. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/__init__.py +3 -2
  5. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/rag/long_context_rag.py +1 -0
  6. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/rag/token_limiter.py +32 -4
  7. auto-coder-0.1.176/src/autocoder/version.py +1 -0
  8. auto-coder-0.1.175/src/autocoder/version.py +0 -1
  9. {auto-coder-0.1.175 → auto-coder-0.1.176}/LICENSE +0 -0
  10. {auto-coder-0.1.175 → auto-coder-0.1.176}/README.md +0 -0
  11. {auto-coder-0.1.175 → auto-coder-0.1.176}/setup.cfg +0 -0
  12. {auto-coder-0.1.175 → auto-coder-0.1.176}/setup.py +0 -0
  13. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/auto_coder.egg-info/SOURCES.txt +0 -0
  14. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/auto_coder.egg-info/dependency_links.txt +0 -0
  15. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/auto_coder.egg-info/entry_points.txt +0 -0
  16. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/auto_coder.egg-info/requires.txt +0 -0
  17. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/auto_coder.egg-info/top_level.txt +0 -0
  18. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/__init__.py +0 -0
  19. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/agent/__init__.py +0 -0
  20. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/agent/auto_tool.py +0 -0
  21. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/agent/coder.py +0 -0
  22. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/agent/designer.py +0 -0
  23. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/agent/planner.py +0 -0
  24. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/agent/project_reader.py +0 -0
  25. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/auto_coder.py +0 -0
  26. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/auto_coder_lang.py +0 -0
  27. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/auto_coder_server.py +0 -0
  28. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/chat/__init__.py +0 -0
  29. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/chat_auto_coder.py +0 -0
  30. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/chat_auto_coder_lang.py +0 -0
  31. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/command_args.py +0 -0
  32. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/JupyterClient.py +0 -0
  33. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/ShellClient.py +0 -0
  34. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/anything2images.py +0 -0
  35. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/audio.py +0 -0
  36. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/cleaner.py +0 -0
  37. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/code_auto_execute.py +0 -0
  38. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/code_auto_generate.py +0 -0
  39. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/code_auto_generate_diff.py +0 -0
  40. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/code_auto_generate_editblock.py +0 -0
  41. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/code_auto_generate_strict_diff.py +0 -0
  42. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/code_auto_merge.py +0 -0
  43. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/code_auto_merge_diff.py +0 -0
  44. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/code_auto_merge_editblock.py +0 -0
  45. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/code_auto_merge_strict_diff.py +0 -0
  46. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/command_completer.py +0 -0
  47. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/command_generator.py +0 -0
  48. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/command_templates.py +0 -0
  49. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/const.py +0 -0
  50. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/git_utils.py +0 -0
  51. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/image_to_page.py +0 -0
  52. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/interpreter.py +0 -0
  53. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/llm_rerank.py +0 -0
  54. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/screenshots.py +0 -0
  55. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/search.py +0 -0
  56. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/search_replace.py +0 -0
  57. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/text.py +0 -0
  58. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/types.py +0 -0
  59. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/db/__init__.py +0 -0
  60. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/db/store.py +0 -0
  61. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/dispacher/__init__.py +0 -0
  62. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/dispacher/actions/__init__.py +0 -0
  63. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/dispacher/actions/action.py +0 -0
  64. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/dispacher/actions/copilot.py +0 -0
  65. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/dispacher/actions/plugins/__init__.py +0 -0
  66. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/dispacher/actions/plugins/action_regex_project.py +0 -0
  67. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/dispacher/actions/plugins/action_translate.py +0 -0
  68. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/index/__init__.py +0 -0
  69. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/index/for_command.py +0 -0
  70. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/index/index.py +0 -0
  71. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/index/symbols_utils.py +0 -0
  72. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/lang.py +0 -0
  73. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/pyproject/__init__.py +0 -0
  74. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/rag/__init__.py +0 -0
  75. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/rag/api_server.py +0 -0
  76. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/rag/doc_filter.py +0 -0
  77. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/rag/document_retriever.py +0 -0
  78. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/rag/llm_wrapper.py +0 -0
  79. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/rag/loaders/__init__.py +0 -0
  80. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/rag/loaders/docx_loader.py +0 -0
  81. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/rag/loaders/excel_loader.py +0 -0
  82. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/rag/loaders/pdf_loader.py +0 -0
  83. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/rag/loaders/ppt_loader.py +0 -0
  84. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/rag/rag_config.py +0 -0
  85. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/rag/rag_entry.py +0 -0
  86. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/rag/raw_rag.py +0 -0
  87. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/rag/relevant_utils.py +0 -0
  88. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/rag/simple_directory_reader.py +0 -0
  89. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/rag/simple_rag.py +0 -0
  90. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/rag/token_checker.py +0 -0
  91. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/rag/token_counter.py +0 -0
  92. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/rag/types.py +0 -0
  93. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/rag/variable_holder.py +0 -0
  94. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/regexproject/__init__.py +0 -0
  95. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/suffixproject/__init__.py +0 -0
  96. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/tsproject/__init__.py +0 -0
  97. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/utils/__init__.py +0 -0
  98. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/utils/conversation_store.py +0 -0
  99. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/utils/llm_client_interceptors.py +0 -0
  100. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/utils/log_capture.py +0 -0
  101. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/utils/multi_turn.py +0 -0
  102. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/utils/print_table.py +0 -0
  103. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/utils/queue_communicate.py +0 -0
  104. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/utils/request_event_queue.py +0 -0
  105. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/utils/request_queue.py +0 -0
  106. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/utils/rest.py +0 -0
  107. {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/utils/tests.py +0 -0
  108. {auto-coder-0.1.175 → auto-coder-0.1.176}/tests/test_action_regex_project.py +0 -0
  109. {auto-coder-0.1.175 → auto-coder-0.1.176}/tests/test_chat_auto_coder.py +0 -0
  110. {auto-coder-0.1.175 → auto-coder-0.1.176}/tests/test_code_auto_merge_editblock.py +0 -0
  111. {auto-coder-0.1.175 → auto-coder-0.1.176}/tests/test_command_completer.py +0 -0
  112. {auto-coder-0.1.175 → auto-coder-0.1.176}/tests/test_planner.py +0 -0
  113. {auto-coder-0.1.175 → auto-coder-0.1.176}/tests/test_queue_communicate.py +0 -0
  114. {auto-coder-0.1.175 → auto-coder-0.1.176}/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.175
3
+ Version: 0.1.176
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.175
3
+ Version: 0.1.176
4
4
  Summary: AutoCoder: AutoCoder
5
5
  Author: allwefantasy
6
6
  Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
@@ -225,6 +225,11 @@ def main(input_args: Optional[List[str]] = None):
225
225
  action="store_true",
226
226
  help="Disable automatic window adaptation for documents",
227
227
  )
228
+ serve_parser.add_argument(
229
+ "--disable_segment_reorder",
230
+ action="store_true",
231
+ help="Disable reordering of document segments after retrieval",
232
+ )
228
233
 
229
234
  # Tools command
230
235
  tools_parser = subparsers.add_parser("tools", help="Various tools")
@@ -285,8 +285,9 @@ class AutoCoderArgs(pydantic.BaseModel):
285
285
 
286
286
  monitor_mode: bool = False
287
287
  disable_auto_window: bool = False
288
-
289
- description: Optional[str] = ""
288
+ disable_segment_reorder: bool = False
289
+ rag_doc_filter_relevance: int = 5
290
+ tokenizer_path: Optional[str] = None
290
291
  skip_confirm: Optional[bool] = False
291
292
  silence: Optional[bool] = False
292
293
  exclude_files: Optional[Union[str, List[str]]] = ""
@@ -411,6 +411,7 @@ class LongContextRAG:
411
411
  segment_limit=self.segment_limit,
412
412
  buff_limit=self.buff_limit,
413
413
  llm=self.llm,
414
+ disable_segment_reorder = self.args.disable_segment_reorder
414
415
  )
415
416
  final_relevant_docs = token_limiter.limit_tokens(
416
417
  relevant_docs=relevant_docs,
@@ -17,6 +17,7 @@ class TokenLimiter:
17
17
  segment_limit: int,
18
18
  buff_limit: int,
19
19
  llm,
20
+ disable_segment_reorder:bool
20
21
  ):
21
22
  self.count_tokens = count_tokens
22
23
  self.full_text_limit = full_text_limit
@@ -26,6 +27,7 @@ class TokenLimiter:
26
27
  self.first_round_full_docs = []
27
28
  self.second_round_extracted_docs = []
28
29
  self.sencond_round_time = 0
30
+ self.disable_segment_reorder = disable_segment_reorder
29
31
 
30
32
  @byzerllm.prompt()
31
33
  def extract_relevance_range_from_docs_with_conversation(
@@ -93,8 +95,34 @@ class TokenLimiter:
93
95
  token_count = 0
94
96
  doc_num_count = 0
95
97
 
98
+ reorder_relevant_docs = []
99
+ added_docs = set()
100
+
101
+ ## 文档分段(单个文档过大)和重排序逻辑
102
+ ## 1. 背景:在检索过程中,许多文档被切割成多个段落(segments)
103
+ ## 2. 问题:这些segments在召回时因为是按相关分做了排序可能是乱序的,不符合原文顺序,会强化大模型的幻觉。
104
+ ## 3. 目标:重新排序这些segments,确保来自同一文档的segments保持连续且按正确顺序排列。
105
+ ## 4. 实现方案:
106
+ ## a) 方案一(保留位置):统一文档的不同segments 根据chunk_index 来置换位置
107
+ ## b) 方案二(当前实现):遍历文档,发现某文档的segment A,立即查找该文档的所有其他segments,
108
+ ## 对它们进行排序,并将排序后多个segments插入到当前的segment A 位置中。
109
+ ## TODO:
110
+ ## 1. 未来根据参数决定是否开启重排以及重排的策略
111
+ if not self.disable_segment_reorder:
112
+ for doc in relevant_docs:
113
+ if doc.metadata.get('original_doc') and doc.metadata.get('chunk_index'):
114
+ if doc.metadata['original_doc'] not in added_docs:
115
+ original_doc = doc.metadata['original_doc']
116
+ chunks = [d for d in relevant_docs if d.metadata.get('original_doc') == original_doc]
117
+ chunks.sort(key=lambda x: x.metadata['chunk_index'])
118
+ reorder_relevant_docs.extend(chunks)
119
+ added_docs.add(original_doc)
120
+ elif doc not in added_docs:
121
+ reorder_relevant_docs.append(doc)
122
+ added_docs.add(doc.module_name)
123
+
96
124
  ## 非窗口分区实现
97
- for doc in relevant_docs:
125
+ for doc in reorder_relevant_docs:
98
126
  doc_tokens = self.count_tokens(doc.source_code)
99
127
  doc_num_count += 1
100
128
  if token_count + doc_tokens <= self.full_text_limit + self.segment_limit:
@@ -104,12 +132,12 @@ class TokenLimiter:
104
132
  break
105
133
 
106
134
  ## 如果窗口无法放下所有的相关文档,则需要分区
107
- if len(final_relevant_docs) < len(relevant_docs):
135
+ if len(final_relevant_docs) < len(reorder_relevant_docs):
108
136
  ## 先填充full_text分区
109
137
  token_count = 0
110
138
  new_token_limit = self.full_text_limit
111
139
  doc_num_count = 0
112
- for doc in relevant_docs:
140
+ for doc in reorder_relevant_docs:
113
141
  doc_tokens = self.count_tokens(doc.source_code)
114
142
  doc_num_count += 1
115
143
  if token_count + doc_tokens <= new_token_limit:
@@ -130,7 +158,7 @@ class TokenLimiter:
130
158
 
131
159
  ## 继续填充segment分区
132
160
  sencond_round_start_time = time.time()
133
- remaining_docs = relevant_docs[len(self.first_round_full_docs) :]
161
+ remaining_docs = reorder_relevant_docs[len(self.first_round_full_docs) :]
134
162
  logger.info(
135
163
  f"first round docs: {len(self.first_round_full_docs)} remaining docs: {len(remaining_docs)} index_filter_workers: {index_filter_workers}"
136
164
  )
@@ -0,0 +1 @@
1
+ __version__ = "0.1.176"
@@ -1 +0,0 @@
1
- __version__ = "0.1.175"
File without changes
File without changes
File without changes
File without changes