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.
- {auto-coder-0.1.175 → auto-coder-0.1.176}/PKG-INFO +1 -1
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/auto_coder.egg-info/PKG-INFO +1 -1
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/auto_coder_rag.py +5 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/__init__.py +3 -2
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/rag/long_context_rag.py +1 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/rag/token_limiter.py +32 -4
- auto-coder-0.1.176/src/autocoder/version.py +1 -0
- auto-coder-0.1.175/src/autocoder/version.py +0 -1
- {auto-coder-0.1.175 → auto-coder-0.1.176}/LICENSE +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/README.md +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/setup.cfg +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/setup.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/auto_coder.egg-info/SOURCES.txt +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/auto_coder.egg-info/dependency_links.txt +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/auto_coder.egg-info/entry_points.txt +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/auto_coder.egg-info/requires.txt +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/auto_coder.egg-info/top_level.txt +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/__init__.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/agent/__init__.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/agent/auto_tool.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/agent/coder.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/agent/designer.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/agent/planner.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/agent/project_reader.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/auto_coder.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/auto_coder_lang.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/auto_coder_server.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/chat/__init__.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/chat_auto_coder.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/chat_auto_coder_lang.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/command_args.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/JupyterClient.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/ShellClient.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/anything2images.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/audio.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/cleaner.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/code_auto_execute.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/code_auto_generate.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/code_auto_generate_diff.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/code_auto_generate_editblock.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/code_auto_generate_strict_diff.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/code_auto_merge.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/code_auto_merge_diff.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/code_auto_merge_editblock.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/code_auto_merge_strict_diff.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/command_completer.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/command_generator.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/command_templates.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/const.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/git_utils.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/image_to_page.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/interpreter.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/llm_rerank.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/screenshots.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/search.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/search_replace.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/text.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/types.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/db/__init__.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/db/store.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/dispacher/__init__.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/dispacher/actions/__init__.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/dispacher/actions/action.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/dispacher/actions/copilot.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/dispacher/actions/plugins/__init__.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/dispacher/actions/plugins/action_regex_project.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/dispacher/actions/plugins/action_translate.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/index/__init__.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/index/for_command.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/index/index.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/index/symbols_utils.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/lang.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/pyproject/__init__.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/rag/__init__.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/rag/api_server.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/rag/doc_filter.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/rag/document_retriever.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/rag/llm_wrapper.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/rag/loaders/__init__.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/rag/loaders/docx_loader.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/rag/loaders/excel_loader.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/rag/loaders/pdf_loader.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/rag/loaders/ppt_loader.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/rag/rag_config.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/rag/rag_entry.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/rag/raw_rag.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/rag/relevant_utils.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/rag/simple_directory_reader.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/rag/simple_rag.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/rag/token_checker.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/rag/token_counter.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/rag/types.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/rag/variable_holder.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/regexproject/__init__.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/suffixproject/__init__.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/tsproject/__init__.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/utils/__init__.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/utils/conversation_store.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/utils/llm_client_interceptors.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/utils/log_capture.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/utils/multi_turn.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/utils/print_table.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/utils/queue_communicate.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/utils/request_event_queue.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/utils/request_queue.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/utils/rest.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/utils/tests.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/tests/test_action_regex_project.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/tests/test_chat_auto_coder.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/tests/test_code_auto_merge_editblock.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/tests/test_command_completer.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/tests/test_planner.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/tests/test_queue_communicate.py +0 -0
- {auto-coder-0.1.175 → auto-coder-0.1.176}/tests/test_symbols_utils.py +0 -0
|
@@ -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
|
-
|
|
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
|
|
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(
|
|
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
|
|
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 =
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/code_auto_generate_editblock.py
RENAMED
|
File without changes
|
{auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/code_auto_generate_strict_diff.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/common/code_auto_merge_strict_diff.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{auto-coder-0.1.175 → auto-coder-0.1.176}/src/autocoder/dispacher/actions/plugins/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|