auto-coder 0.1.191__tar.gz → 0.1.192__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 (123) hide show
  1. {auto_coder-0.1.191 → auto_coder-0.1.192}/PKG-INFO +2 -2
  2. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/auto_coder.egg-info/PKG-INFO +2 -2
  3. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/auto_coder.egg-info/SOURCES.txt +3 -0
  4. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/auto_coder.egg-info/requires.txt +1 -1
  5. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/auto_coder_rag.py +1 -1
  6. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/common/__init__.py +1 -1
  7. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/rag/api_server.py +42 -27
  8. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/rag/llm_wrapper.py +4 -3
  9. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/rag/long_context_rag.py +24 -0
  10. auto_coder-0.1.192/src/autocoder/rag/stream_event/event_writer.py +12 -0
  11. auto_coder-0.1.192/src/autocoder/rag/stream_event/types.py +16 -0
  12. auto_coder-0.1.192/src/autocoder/rag/types.py +0 -0
  13. auto_coder-0.1.192/src/autocoder/version.py +1 -0
  14. auto_coder-0.1.191/src/autocoder/version.py +0 -1
  15. {auto_coder-0.1.191 → auto_coder-0.1.192}/LICENSE +0 -0
  16. {auto_coder-0.1.191 → auto_coder-0.1.192}/README.md +0 -0
  17. {auto_coder-0.1.191 → auto_coder-0.1.192}/setup.cfg +0 -0
  18. {auto_coder-0.1.191 → auto_coder-0.1.192}/setup.py +0 -0
  19. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/auto_coder.egg-info/dependency_links.txt +0 -0
  20. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/auto_coder.egg-info/entry_points.txt +0 -0
  21. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/auto_coder.egg-info/top_level.txt +0 -0
  22. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/__init__.py +0 -0
  23. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/agent/__init__.py +0 -0
  24. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/agent/auto_tool.py +0 -0
  25. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/agent/coder.py +0 -0
  26. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/agent/designer.py +0 -0
  27. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/agent/planner.py +0 -0
  28. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/agent/project_reader.py +0 -0
  29. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/auto_coder.py +0 -0
  30. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/auto_coder_lang.py +0 -0
  31. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/auto_coder_server.py +0 -0
  32. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/chat/__init__.py +0 -0
  33. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/chat_auto_coder.py +0 -0
  34. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/chat_auto_coder_lang.py +0 -0
  35. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/command_args.py +0 -0
  36. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/common/JupyterClient.py +0 -0
  37. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/common/ShellClient.py +0 -0
  38. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/common/anything2images.py +0 -0
  39. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/common/audio.py +0 -0
  40. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/common/cleaner.py +0 -0
  41. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/common/code_auto_execute.py +0 -0
  42. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/common/code_auto_generate.py +0 -0
  43. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/common/code_auto_generate_diff.py +0 -0
  44. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/common/code_auto_generate_editblock.py +0 -0
  45. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/common/code_auto_generate_strict_diff.py +0 -0
  46. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/common/code_auto_merge.py +0 -0
  47. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/common/code_auto_merge_diff.py +0 -0
  48. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/common/code_auto_merge_editblock.py +0 -0
  49. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/common/code_auto_merge_strict_diff.py +0 -0
  50. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/common/command_completer.py +0 -0
  51. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/common/command_generator.py +0 -0
  52. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/common/command_templates.py +0 -0
  53. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/common/const.py +0 -0
  54. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/common/git_utils.py +0 -0
  55. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/common/image_to_page.py +0 -0
  56. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/common/interpreter.py +0 -0
  57. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/common/llm_rerank.py +0 -0
  58. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/common/screenshots.py +0 -0
  59. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/common/search.py +0 -0
  60. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/common/search_replace.py +0 -0
  61. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/common/text.py +0 -0
  62. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/common/types.py +0 -0
  63. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/db/__init__.py +0 -0
  64. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/db/store.py +0 -0
  65. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/dispacher/__init__.py +0 -0
  66. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/dispacher/actions/__init__.py +0 -0
  67. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/dispacher/actions/action.py +0 -0
  68. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/dispacher/actions/copilot.py +0 -0
  69. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/dispacher/actions/plugins/__init__.py +0 -0
  70. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/dispacher/actions/plugins/action_regex_project.py +0 -0
  71. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/dispacher/actions/plugins/action_translate.py +0 -0
  72. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/index/__init__.py +0 -0
  73. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/index/for_command.py +0 -0
  74. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/index/index.py +0 -0
  75. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/index/symbols_utils.py +0 -0
  76. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/lang.py +0 -0
  77. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/pyproject/__init__.py +0 -0
  78. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/rag/__init__.py +0 -0
  79. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/rag/cache/__init__.py +0 -0
  80. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/rag/cache/base_cache.py +0 -0
  81. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/rag/cache/byzer_storage_cache.py +0 -0
  82. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/rag/cache/file_monitor_cache.py +0 -0
  83. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/rag/cache/simple_cache.py +0 -0
  84. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/rag/doc_filter.py +0 -0
  85. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/rag/document_retriever.py +0 -0
  86. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/rag/loaders/__init__.py +0 -0
  87. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/rag/loaders/docx_loader.py +0 -0
  88. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/rag/loaders/excel_loader.py +0 -0
  89. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/rag/loaders/pdf_loader.py +0 -0
  90. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/rag/loaders/ppt_loader.py +0 -0
  91. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/rag/rag_config.py +0 -0
  92. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/rag/rag_entry.py +0 -0
  93. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/rag/raw_rag.py +0 -0
  94. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/rag/relevant_utils.py +0 -0
  95. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/rag/simple_directory_reader.py +0 -0
  96. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/rag/simple_rag.py +0 -0
  97. /auto_coder-0.1.191/src/autocoder/rag/types.py → /auto_coder-0.1.192/src/autocoder/rag/stream_event/__init__.py +0 -0
  98. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/rag/token_checker.py +0 -0
  99. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/rag/token_counter.py +0 -0
  100. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/rag/token_limiter.py +0 -0
  101. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/rag/utils.py +0 -0
  102. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/rag/variable_holder.py +0 -0
  103. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/regexproject/__init__.py +0 -0
  104. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/suffixproject/__init__.py +0 -0
  105. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/tsproject/__init__.py +0 -0
  106. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/utils/__init__.py +0 -0
  107. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/utils/conversation_store.py +0 -0
  108. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/utils/llm_client_interceptors.py +0 -0
  109. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/utils/log_capture.py +0 -0
  110. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/utils/multi_turn.py +0 -0
  111. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/utils/print_table.py +0 -0
  112. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/utils/queue_communicate.py +0 -0
  113. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/utils/request_event_queue.py +0 -0
  114. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/utils/request_queue.py +0 -0
  115. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/utils/rest.py +0 -0
  116. {auto_coder-0.1.191 → auto_coder-0.1.192}/src/autocoder/utils/tests.py +0 -0
  117. {auto_coder-0.1.191 → auto_coder-0.1.192}/tests/test_action_regex_project.py +0 -0
  118. {auto_coder-0.1.191 → auto_coder-0.1.192}/tests/test_chat_auto_coder.py +0 -0
  119. {auto_coder-0.1.191 → auto_coder-0.1.192}/tests/test_code_auto_merge_editblock.py +0 -0
  120. {auto_coder-0.1.191 → auto_coder-0.1.192}/tests/test_command_completer.py +0 -0
  121. {auto_coder-0.1.191 → auto_coder-0.1.192}/tests/test_planner.py +0 -0
  122. {auto_coder-0.1.191 → auto_coder-0.1.192}/tests/test_queue_communicate.py +0 -0
  123. {auto_coder-0.1.191 → auto_coder-0.1.192}/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.191
3
+ Version: 0.1.192
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.138
29
+ Requires-Dist: byzerllm[saas]>=0.1.139
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.191
3
+ Version: 0.1.192
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.138
29
+ Requires-Dist: byzerllm[saas]>=0.1.139
30
30
  Requires-Dist: patch
31
31
  Requires-Dist: diff_match_patch
32
32
  Requires-Dist: GitPython
@@ -94,6 +94,9 @@ src/autocoder/rag/loaders/docx_loader.py
94
94
  src/autocoder/rag/loaders/excel_loader.py
95
95
  src/autocoder/rag/loaders/pdf_loader.py
96
96
  src/autocoder/rag/loaders/ppt_loader.py
97
+ src/autocoder/rag/stream_event/__init__.py
98
+ src/autocoder/rag/stream_event/event_writer.py
99
+ src/autocoder/rag/stream_event/types.py
97
100
  src/autocoder/regexproject/__init__.py
98
101
  src/autocoder/suffixproject/__init__.py
99
102
  src/autocoder/tsproject/__init__.py
@@ -16,7 +16,7 @@ tabulate
16
16
  jupyter_client
17
17
  prompt-toolkit
18
18
  tokenizers
19
- byzerllm[saas]>=0.1.138
19
+ byzerllm[saas]>=0.1.139
20
20
  patch
21
21
  diff_match_patch
22
22
  GitPython
@@ -264,7 +264,7 @@ def main(input_args: Optional[List[str]] = None):
264
264
  serve_parser.add_argument(
265
265
  "--inference_compute_precision",
266
266
  type=int,
267
- default=6,
267
+ default=64,
268
268
  help="The precision of the inference compute",
269
269
  )
270
270
 
@@ -317,7 +317,7 @@ class AutoCoderArgs(pydantic.BaseModel):
317
317
  disable_inference_enhance: Optional[bool] = False
318
318
  inference_deep_thought: Optional[bool] = False
319
319
  inference_slow_without_deep_thought: Optional[bool] = False
320
- inference_compute_precision: int = 6
320
+ inference_compute_precision: int = 64
321
321
  without_contexts: Optional[bool] = False
322
322
 
323
323
  class Config:
@@ -19,10 +19,10 @@ from byzerllm.utils.client.entrypoints.openai.protocol import (
19
19
  ChatCompletionRequest,
20
20
  ErrorResponse,
21
21
  CompletionRequest,
22
- Embeddings,
23
- EmbeddingsOutput,
24
- EmbeddingsData,
25
- EmbeddingsUsage,
22
+ EmbeddingCompletionRequest,
23
+ EmbeddingResponse,
24
+ EmbeddingResponseData,
25
+ UsageInfo,
26
26
  )
27
27
  from pydantic import BaseModel
28
28
  from typing import List,Optional
@@ -122,34 +122,49 @@ async def create_chat_completion(
122
122
 
123
123
 
124
124
  @router_app.post("/v1/embeddings")
125
- async def embed(body: Embeddings):
126
- """Given a prompt, the model will return one embedding.
127
-
125
+ async def embed(body: EmbeddingCompletionRequest):
126
+ """Generate embeddings for given input text.
127
+
128
+ Args:
129
+ body: The embedding request containing input text and parameters.
130
+
128
131
  Returns:
129
- A response object with an embedding.
132
+ EmbeddingResponse with embeddings and usage statistics.
130
133
  """
131
134
  embedding_id = f"embed-{random_uuid()}"
132
-
133
- results_list = llm_client.emb(body.model, request=LLMRequest(instruction=body.input))
134
- tokens = 0
135
-
136
- return EmbeddingsOutput(
137
- data=[
138
- EmbeddingsData(
139
- embedding=results.output,
140
- index=i,
141
- object="embedding",
142
- )
143
- for i, results in enumerate(results_list)
144
- ],
145
- id=embedding_id,
146
- object="list",
147
- created=int(time.time()),
135
+
136
+ # Handle both string and list inputs
137
+ inputs = body.input if isinstance(body.input, list) else [body.input]
138
+
139
+ # Generate embeddings for each input
140
+ results_list = []
141
+ for text in inputs:
142
+ result = llm_client.emb(body.model, request=LLMRequest(instruction=text))
143
+ results_list.extend(result)
144
+
145
+ # Build response data
146
+ data = [
147
+ EmbeddingResponseData(
148
+ embedding=result.output,
149
+ index=i,
150
+ object="embedding"
151
+ )
152
+ for i, result in enumerate(results_list)
153
+ ]
154
+
155
+ # Calculate token usage (simplified)
156
+ token_count = sum(len(str(input).split()) for input in inputs)
157
+
158
+ return EmbeddingResponse(
159
+ data=data,
148
160
  model=body.model,
149
- usage=EmbeddingsUsage(
150
- prompt_tokens=tokens,
151
- total_tokens=tokens,
161
+ object="list",
162
+ usage=UsageInfo(
163
+ prompt_tokens=token_count,
164
+ total_tokens=token_count
152
165
  ),
166
+ created=int(time.time()),
167
+ id=embedding_id
153
168
  )
154
169
 
155
170
  class ServerArgs(BaseModel):
@@ -9,6 +9,7 @@ from byzerllm.utils.client import LLMResponse
9
9
  from byzerllm.utils.types import SingleOutputMeta
10
10
  from autocoder.rag.simple_rag import SimpleRAG
11
11
  from loguru import logger
12
+ from byzerllm.utils.langutil import asyncfy_with_semaphore
12
13
 
13
14
  class LLWrapper:
14
15
 
@@ -31,7 +32,7 @@ class LLWrapper:
31
32
  model:Optional[str] = None,
32
33
  role_mapping=None,llm_config:Dict[str,Any]={}
33
34
  )->Union[List[LLMResponse],List[LLMFunctionCallResponse],List[LLMClassResponse]]:
34
- res,contexts = self.rag.stream_chat_oai(conversations)
35
+ res,contexts = self.rag.stream_chat_oai(conversations,llm_config=llm_config)
35
36
  s = "".join(res)
36
37
  return [LLMResponse(output=s,metadata={},input="")]
37
38
 
@@ -40,7 +41,7 @@ class LLWrapper:
40
41
  role_mapping=None,
41
42
  delta_mode=False,
42
43
  llm_config:Dict[str,Any]={}):
43
- res,contexts = self.rag.stream_chat_oai(conversations)
44
+ res,contexts = self.rag.stream_chat_oai(conversations,llm_config=llm_config)
44
45
  for t in res:
45
46
  yield (t,SingleOutputMeta(0,0))
46
47
 
@@ -49,7 +50,7 @@ class LLWrapper:
49
50
  role_mapping=None,
50
51
  delta_mode=False,
51
52
  llm_config:Dict[str,Any]={}):
52
- res,contexts = self.rag.stream_chat_oai(conversations)
53
+ res,contexts = await asyncfy_with_semaphore(lambda: self.rag.stream_chat_oai(conversations,llm_config=llm_config))()
53
54
  for t in res:
54
55
  yield (t,SingleOutputMeta(0,0))
55
56
 
@@ -30,6 +30,7 @@ from autocoder.rag.token_limiter import TokenLimiter
30
30
  from tokenizers import Tokenizer
31
31
  from autocoder.rag.variable_holder import VariableHolder
32
32
  from importlib.metadata import version
33
+ from autocoder.rag.stream_event import event_writer
33
34
 
34
35
  try:
35
36
  from autocoder_pro.rag.llm_compute import LLMComputeEngine
@@ -346,6 +347,29 @@ class LongContextRAG:
346
347
  delta_mode=True,
347
348
  )
348
349
  return (chunk[0] for chunk in chunks), context
350
+
351
+ try:
352
+ request_params = json.loads(query)
353
+ if "request_id" in request_params:
354
+ request_id = request_params["request_id"]
355
+ index = request_params["index"]
356
+
357
+ file_path = event_writer.get_event_file_path(request_id)
358
+ logger.info(f"Get events for request_id: {request_id} index: {index} file_path: {file_path}")
359
+ events = []
360
+ if not os.path.exists(file_path):
361
+ return [],context
362
+
363
+ with open(file_path, "r") as f:
364
+ for line in f:
365
+ event = json.loads(line)
366
+ if event["index"] >= index:
367
+ events.append(event)
368
+ return [json.dumps({
369
+ "events": [event for event in events],
370
+ },ensure_ascii=False)], context
371
+ except json.JSONDecodeError:
372
+ pass
349
373
 
350
374
  if self.args.without_contexts and LLMComputeEngine is not None:
351
375
  llm_compute_engine = LLMComputeEngine(
@@ -0,0 +1,12 @@
1
+ import os
2
+ from autocoder.rag.stream_event.types import Event
3
+
4
+ def write_event(event: Event,base_path: str="events"):
5
+ os.makedirs(base_path, exist_ok=True)
6
+ with open(f"{base_path}/{event.request_id}.jsonl", "a") as f:
7
+ f.write(event.model_dump_json() + "\n")
8
+
9
+ def get_event_file_path(request_id: str,base_path: str="events") -> str:
10
+ return f"{base_path}/{request_id}.jsonl"
11
+
12
+
@@ -0,0 +1,16 @@
1
+ from typing import List, Dict, Any
2
+ from enum import Enum
3
+ from pydantic import BaseModel
4
+
5
+ class EventType(Enum):
6
+ START = "start"
7
+ THOUGHT = "thought"
8
+ CHUNK = "chunk"
9
+ DONE = "done"
10
+ ERROR = "error"
11
+
12
+ class Event(BaseModel):
13
+ request_id: str
14
+ event_type: EventType
15
+ content: str
16
+ index: int
File without changes
@@ -0,0 +1 @@
1
+ __version__ = "0.1.192"
@@ -1 +0,0 @@
1
- __version__ = "0.1.191"
File without changes
File without changes
File without changes
File without changes