versionhq 1.1.10.8__tar.gz → 1.1.11.0__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.
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/.github/workflows/publish.yml +1 -1
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/.github/workflows/publish_testpypi.yml +1 -1
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/.github/workflows/run_tests.yml +2 -1
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/.github/workflows/security_check.yml +1 -1
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/.gitignore +3 -2
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/.pre-commit-config.yaml +1 -1
- versionhq-1.1.11.0/.python-version +1 -0
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/PKG-INFO +54 -40
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/README.md +47 -39
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/pyproject.toml +9 -3
- versionhq-1.1.11.0/requirements.txt +690 -0
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/runtime.txt +1 -0
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/__init__.py +1 -1
- versionhq-1.1.11.0/src/versionhq/_utils/vars.py +2 -0
- versionhq-1.1.11.0/src/versionhq/agent/TEMPLATES/Backstory.py +4 -0
- versionhq-1.1.11.0/src/versionhq/agent/default_agents.py +15 -0
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/agent/model.py +127 -39
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/agent/parser.py +3 -20
- {versionhq-1.1.10.8/src/versionhq/_utils → versionhq-1.1.11.0/src/versionhq/agent}/rpm_controller.py +22 -15
- versionhq-1.1.11.0/src/versionhq/knowledge/_utils.py +11 -0
- versionhq-1.1.11.0/src/versionhq/knowledge/embedding.py +192 -0
- versionhq-1.1.11.0/src/versionhq/knowledge/model.py +54 -0
- versionhq-1.1.11.0/src/versionhq/knowledge/source.py +413 -0
- versionhq-1.1.11.0/src/versionhq/knowledge/source_docling.py +129 -0
- versionhq-1.1.11.0/src/versionhq/knowledge/storage.py +177 -0
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/llm/model.py +76 -62
- versionhq-1.1.11.0/src/versionhq/memory/contextual_memory.py +96 -0
- versionhq-1.1.11.0/src/versionhq/memory/model.py +174 -0
- versionhq-1.1.11.0/src/versionhq/storage/base.py +14 -0
- versionhq-1.1.11.0/src/versionhq/storage/ltm_sqlite_storage.py +131 -0
- versionhq-1.1.11.0/src/versionhq/storage/mem0_storage.py +109 -0
- versionhq-1.1.11.0/src/versionhq/storage/rag_storage.py +231 -0
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/storage/task_output_storage.py +18 -29
- versionhq-1.1.11.0/src/versionhq/storage/utils.py +26 -0
- versionhq-1.1.11.0/src/versionhq/task/TEMPLATES/Description.py +5 -0
- versionhq-1.1.11.0/src/versionhq/task/evaluate.py +122 -0
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/task/model.py +134 -43
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/team/team_planner.py +1 -1
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/tool/model.py +44 -46
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq.egg-info/PKG-INFO +54 -40
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq.egg-info/SOURCES.txt +25 -1
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq.egg-info/requires.txt +6 -0
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/tests/agent/agent_test.py +92 -12
- {versionhq-1.1.10.8/tests/tool → versionhq-1.1.11.0/tests/knowledge}/__init__.py +0 -0
- versionhq-1.1.11.0/tests/knowledge/knowledge_test.py +389 -0
- versionhq-1.1.11.0/tests/knowledge/mock_report_compressed.pdf +0 -0
- versionhq-1.1.11.0/tests/llm/__init__.py +0 -0
- versionhq-1.1.11.0/tests/memory/__init__.py +0 -0
- versionhq-1.1.11.0/tests/memory/memory_test.py +83 -0
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/tests/task/task_test.py +56 -7
- versionhq-1.1.11.0/tests/team/__init__.py +0 -0
- versionhq-1.1.11.0/tests/tool/__init__.py +0 -0
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/tests/tool/tool_test.py +2 -3
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/uv.lock +2085 -100
- versionhq-1.1.10.8/.python-version +0 -1
- versionhq-1.1.10.8/requirements.txt +0 -285
- versionhq-1.1.10.8/src/versionhq/agent/TEMPLATES/Backstory.py +0 -4
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/LICENSE +0 -0
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/SECURITY.md +0 -0
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/db/preprocess.py +0 -0
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/requirements-dev.txt +0 -0
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/setup.cfg +0 -0
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/_utils/__init__.py +0 -0
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/_utils/i18n.py +0 -0
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/_utils/logger.py +0 -0
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/_utils/process_config.py +0 -0
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/_utils/usage_metrics.py +0 -0
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/agent/TEMPLATES/__init__.py +0 -0
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/agent/__init__.py +0 -0
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/cli/__init__.py +0 -0
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/clients/__init__.py +0 -0
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/clients/customer/__init__.py +0 -0
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/clients/customer/model.py +0 -0
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/clients/product/__init__.py +0 -0
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/clients/product/model.py +0 -0
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/clients/workflow/__init__.py +0 -0
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/clients/workflow/model.py +0 -0
- {versionhq-1.1.10.8/src/versionhq/llm → versionhq-1.1.11.0/src/versionhq/knowledge}/__init__.py +0 -0
- {versionhq-1.1.10.8/src/versionhq/storage → versionhq-1.1.11.0/src/versionhq/llm}/__init__.py +0 -0
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/llm/llm_vars.py +0 -0
- {versionhq-1.1.10.8/src/versionhq/team → versionhq-1.1.11.0/src/versionhq/memory}/__init__.py +0 -0
- {versionhq-1.1.10.8/src/versionhq/tool → versionhq-1.1.11.0/src/versionhq/storage}/__init__.py +0 -0
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/task/__init__.py +0 -0
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/task/formatter.py +0 -0
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/task/log_handler.py +0 -0
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/task/structured_response.py +0 -0
- {versionhq-1.1.10.8/tests → versionhq-1.1.11.0/src/versionhq/team}/__init__.py +0 -0
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/team/model.py +0 -0
- {versionhq-1.1.10.8/tests/agent → versionhq-1.1.11.0/src/versionhq/tool}/__init__.py +0 -0
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/tool/cache_handler.py +0 -0
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/tool/composio_tool.py +0 -0
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/tool/composio_tool_vars.py +0 -0
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/tool/decorator.py +0 -0
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/tool/tool_handler.py +0 -0
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq.egg-info/dependency_links.txt +0 -0
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq.egg-info/top_level.txt +0 -0
- {versionhq-1.1.10.8/tests/cli → versionhq-1.1.11.0/tests}/__init__.py +0 -0
- {versionhq-1.1.10.8/tests/llm → versionhq-1.1.11.0/tests/agent}/__init__.py +0 -0
- {versionhq-1.1.10.8/tests/team → versionhq-1.1.11.0/tests/cli}/__init__.py +0 -0
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/tests/clients/customer_test.py +0 -0
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/tests/clients/product_test.py +0 -0
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/tests/clients/workflow_test.py +0 -0
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/tests/conftest.py +0 -0
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/tests/llm/llm_test.py +0 -0
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/tests/task/__init__.py +0 -0
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/tests/team/Prompts/Demo_test.py +0 -0
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/tests/team/team_test.py +0 -0
- {versionhq-1.1.10.8 → versionhq-1.1.11.0}/tests/tool/composio_test.py +0 -0
@@ -17,6 +17,7 @@ env:
|
|
17
17
|
GEMINI_API_BASE: ${{ secrets.GEMINI_API_BASE }}
|
18
18
|
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
|
19
19
|
ANTHROPIC_API_BASE: ${{ secrets.ANTHROPIC_API_BASE }}
|
20
|
+
MEM0_API_KEY: ${{ secrets.MEM0_API_KEY }}
|
20
21
|
|
21
22
|
jobs:
|
22
23
|
run_test:
|
@@ -34,7 +35,7 @@ jobs:
|
|
34
35
|
|
35
36
|
- name: Set up the project
|
36
37
|
run: |
|
37
|
-
uv venv --python 3.
|
38
|
+
uv venv --python 3.12.8
|
38
39
|
source .venv/bin/activate
|
39
40
|
uv pip install --upgrade pip pytest
|
40
41
|
uv pip install -r requirements.txt
|
@@ -0,0 +1 @@
|
|
1
|
+
3.12.8
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: versionhq
|
3
|
-
Version: 1.1.
|
3
|
+
Version: 1.1.11.0
|
4
4
|
Summary: LLM orchestration frameworks for model-agnostic AI agents that handle complex outbound workflows
|
5
5
|
Author-email: Kuriko Iwai <kuriko@versi0n.io>
|
6
6
|
License: MIT License
|
@@ -56,24 +56,29 @@ Requires-Dist: appdirs>=1.4.4
|
|
56
56
|
Requires-Dist: langchain>=0.3.14
|
57
57
|
Requires-Dist: langchain-openai>=0.2.14
|
58
58
|
Requires-Dist: composio-langchain>=0.6.12
|
59
|
+
Requires-Dist: chromadb>=0.6.3
|
60
|
+
Requires-Dist: docling>=2.16.0
|
61
|
+
Requires-Dist: json-repair>=0.35.0
|
62
|
+
Requires-Dist: wheel>=0.45.1
|
63
|
+
Requires-Dist: pdfplumber>=0.11.5
|
64
|
+
Requires-Dist: mem0ai>=0.1.48
|
59
65
|
|
60
66
|
# Overview
|
61
67
|
|
62
68
|

|
63
69
|
[](https://github.com/versionHQ/multi-agent-system/actions/workflows/publish.yml)
|
64
70
|

|
65
|
-

|
66
72
|

|
67
73
|
|
68
74
|
|
69
|
-
LLM orchestration frameworks to deploy multi-agent systems
|
75
|
+
LLM orchestration frameworks to deploy multi-agent systems with task-based formation.
|
70
76
|
|
71
77
|
**Visit:**
|
72
78
|
|
73
79
|
- [PyPI](https://pypi.org/project/versionhq/)
|
74
80
|
- [Github (LLM orchestration framework)](https://github.com/versionHQ/multi-agent-system)
|
75
|
-
- [
|
76
|
-
- [Use case](https://versi0n.io/playground) / [Quick demo](https://res.cloudinary.com/dfeirxlea/video/upload/v1737732977/pj_m_home/pnsyh5mfvmilwgt0eusa.mov)
|
81
|
+
- [Use case](https://versi0n.io/) / [Quick demo](https://res.cloudinary.com/dfeirxlea/video/upload/v1737732977/pj_m_home/pnsyh5mfvmilwgt0eusa.mov)
|
77
82
|
- [Documentation](https://chief-oxygen-8a2.notion.site/Documentation-17e923685cf98001a5fad5c4b2acd79b?pvs=4) *Some components are under review.
|
78
83
|
|
79
84
|
|
@@ -133,7 +138,7 @@ You can specify which formation you want them to generate, or let the agent deci
|
|
133
138
|
pip install versionhq
|
134
139
|
```
|
135
140
|
|
136
|
-
(Python >= 3.
|
141
|
+
(Python >= 3.12)
|
137
142
|
|
138
143
|
|
139
144
|
### Case 1. Solo Agent:
|
@@ -157,7 +162,7 @@ You can specify which formation you want them to generate, or let the agent deci
|
|
157
162
|
|
158
163
|
task = Task(
|
159
164
|
description="Amazing task",
|
160
|
-
|
165
|
+
pydantic_output=CustomOutput,
|
161
166
|
callback=dummy_func,
|
162
167
|
callback_kwargs=dict(message="Hi! Here is the result: ")
|
163
168
|
)
|
@@ -166,14 +171,17 @@ You can specify which formation you want them to generate, or let the agent deci
|
|
166
171
|
print(res)
|
167
172
|
```
|
168
173
|
|
169
|
-
This will return `TaskOutput` that stores a response in
|
174
|
+
This will return `TaskOutput` instance that stores a response in plane text, JSON serializable dict, and Pydantic model: `CustomOutput` formats with a callback result, tool output (if given), and evaluation results (if given).
|
170
175
|
|
171
176
|
```
|
172
177
|
res == TaskOutput(
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
178
|
+
task_id=UUID('<TASK UUID>')
|
179
|
+
raw='{\"test1\":\"random str\", \"test2\":[\"str item 1\", \"str item 2\", \"str item 3\"]}',
|
180
|
+
json_dict={'test1': 'random str', 'test2': ['str item 1', 'str item 2', 'str item 3']},
|
181
|
+
pydantic=<class '__main__.CustomOutput'>
|
182
|
+
tool_output=None,
|
183
|
+
callback_output='Hi! Here is the result: random str, str item 1, str item 2, str item 3',
|
184
|
+
evaluation=None
|
177
185
|
)
|
178
186
|
```
|
179
187
|
|
@@ -215,15 +223,18 @@ Tasks can be delegated to a team manager, peers in the team, or completely new a
|
|
215
223
|
<hr />
|
216
224
|
|
217
225
|
## Technologies Used
|
218
|
-
**Schema,
|
219
|
-
- [Pydantic](https://docs.pydantic.dev/latest/): Data validation and serialization library for Python
|
220
|
-
- [Pydantic_core](https://pypi.org/project/pydantic-core/): Core func packages for Pydantic
|
221
|
-
- [Chroma DB](https://docs.trychroma.com/): Vector database for storing and querying usage data
|
222
|
-
- [SQLite](https://www.sqlite.org/docs.html): C-language library to implements a small SQL database engine
|
226
|
+
**Schema, Data Validation**
|
227
|
+
- [Pydantic](https://docs.pydantic.dev/latest/): Data validation and serialization library for Python.
|
228
|
+
- [Pydantic_core](https://pypi.org/project/pydantic-core/): Core func packages for Pydantic.
|
223
229
|
- [Upstage](https://console.upstage.ai/docs/getting-started/overview): Document processer for ML tasks. (Use `Document Parser API` to extract data from documents)
|
230
|
+
- [Docling](https://ds4sd.github.io/docling/): Document parsing
|
231
|
+
|
232
|
+
**Storage**
|
233
|
+
- [mem0ai](https://docs.mem0.ai/quickstart#install-package): Agents' memory storage and management.
|
234
|
+
- [Chroma DB](https://docs.trychroma.com/): Vector database for storing and querying usage data.
|
235
|
+
- [SQLite](https://www.sqlite.org/docs.html): C-language library to implements a small SQL database engine.
|
224
236
|
|
225
237
|
**LLM-curation**
|
226
|
-
- OpenAI GPT-4: Advanced language model for analysis and recommendations
|
227
238
|
- [LiteLLM](https://docs.litellm.ai/docs/providers): Curation platform to access LLMs
|
228
239
|
|
229
240
|
**Tools**
|
@@ -241,27 +252,29 @@ Tasks can be delegated to a team manager, peers in the team, or completely new a
|
|
241
252
|
|
242
253
|
```
|
243
254
|
.
|
255
|
+
.github
|
256
|
+
└── workflows/ # Github actions
|
257
|
+
│
|
244
258
|
src/
|
245
|
-
└──
|
246
|
-
│
|
247
|
-
│
|
248
|
-
│
|
249
|
-
│
|
250
|
-
│
|
251
|
-
│
|
252
|
-
│
|
253
|
-
│
|
254
|
-
│
|
255
|
-
│
|
256
|
-
│
|
257
|
-
│
|
259
|
+
└── versionhq/ # Orchestration frameworks
|
260
|
+
│ ├── agent/ # Components
|
261
|
+
│ └── llm/
|
262
|
+
│ └── task/
|
263
|
+
│ └── team/
|
264
|
+
│ └── tool/
|
265
|
+
│ └── cli/
|
266
|
+
│ └── ...
|
267
|
+
│ │
|
268
|
+
│ ├── db/ # Storage
|
269
|
+
│ ├── chroma.sqlite3
|
270
|
+
│ └── ...
|
271
|
+
│
|
272
|
+
└──tests/ # Pytest
|
273
|
+
│ └── agent/
|
274
|
+
│ └── llm/
|
275
|
+
│ └── ...
|
258
276
|
│
|
259
|
-
└──
|
260
|
-
└── cli/
|
261
|
-
└── team/
|
262
|
-
└── ...
|
263
|
-
│
|
264
|
-
└── uploads/ # Uploaded files for the project
|
277
|
+
└── uploads/ # Local repo to store the uploaded files
|
265
278
|
|
266
279
|
```
|
267
280
|
|
@@ -283,9 +296,9 @@ src/
|
|
283
296
|
|
284
297
|
* In case of AssertionError/module mismatch, run Python version control using `.pyenv`
|
285
298
|
```
|
286
|
-
pyenv install 3.
|
287
|
-
pyenv global 3.
|
288
|
-
uv python pin 3.
|
299
|
+
pyenv install 3.12.8
|
300
|
+
pyenv global 3.12.8 (optional: `pyenv global system` to get back to the system default ver.)
|
301
|
+
uv python pin 3.12.8
|
289
302
|
```
|
290
303
|
|
291
304
|
3. Set up environment variables:
|
@@ -394,6 +407,7 @@ Common issues and solutions:
|
|
394
407
|
- API key errors: Ensure all API keys in the `.env` file are correct and up to date. Make sure to add `load_dotenv()` on the top of the python file to apply the latest environment values.
|
395
408
|
- Database connection issues: Check if the Chroma DB is properly initialized and accessible.
|
396
409
|
- Memory errors: If processing large contracts, you may need to increase the available memory for the Python process.
|
410
|
+
- Issues related to the Python version: Docling/Pytorch is not ready for Python 3.13 as of Jan 2025. Use Python 3.12.x as default by running `uv venv --python 3.12.8` and `uv python pin 3.12.8`.
|
397
411
|
- Issues related to dependencies: `rm -rf uv.lock`, `uv cache clean`, `uv venv`, and run `uv pip install -r requirements.txt -v`.
|
398
412
|
- Issues related to the AI agents or RAG system: Check the `output.log` file for detailed error messages and stack traces.
|
399
413
|
- Issues related to `Python quit unexpectedly`: Check [this stackoverflow article](https://stackoverflow.com/questions/59888499/macos-catalina-python-quit-unexpectedly-error).
|
@@ -3,18 +3,17 @@
|
|
3
3
|

|
4
4
|
[](https://github.com/versionHQ/multi-agent-system/actions/workflows/publish.yml)
|
5
5
|

|
6
|
-

|
7
7
|

|
8
8
|
|
9
9
|
|
10
|
-
LLM orchestration frameworks to deploy multi-agent systems
|
10
|
+
LLM orchestration frameworks to deploy multi-agent systems with task-based formation.
|
11
11
|
|
12
12
|
**Visit:**
|
13
13
|
|
14
14
|
- [PyPI](https://pypi.org/project/versionhq/)
|
15
15
|
- [Github (LLM orchestration framework)](https://github.com/versionHQ/multi-agent-system)
|
16
|
-
- [
|
17
|
-
- [Use case](https://versi0n.io/playground) / [Quick demo](https://res.cloudinary.com/dfeirxlea/video/upload/v1737732977/pj_m_home/pnsyh5mfvmilwgt0eusa.mov)
|
16
|
+
- [Use case](https://versi0n.io/) / [Quick demo](https://res.cloudinary.com/dfeirxlea/video/upload/v1737732977/pj_m_home/pnsyh5mfvmilwgt0eusa.mov)
|
18
17
|
- [Documentation](https://chief-oxygen-8a2.notion.site/Documentation-17e923685cf98001a5fad5c4b2acd79b?pvs=4) *Some components are under review.
|
19
18
|
|
20
19
|
|
@@ -74,7 +73,7 @@ You can specify which formation you want them to generate, or let the agent deci
|
|
74
73
|
pip install versionhq
|
75
74
|
```
|
76
75
|
|
77
|
-
(Python >= 3.
|
76
|
+
(Python >= 3.12)
|
78
77
|
|
79
78
|
|
80
79
|
### Case 1. Solo Agent:
|
@@ -98,7 +97,7 @@ You can specify which formation you want them to generate, or let the agent deci
|
|
98
97
|
|
99
98
|
task = Task(
|
100
99
|
description="Amazing task",
|
101
|
-
|
100
|
+
pydantic_output=CustomOutput,
|
102
101
|
callback=dummy_func,
|
103
102
|
callback_kwargs=dict(message="Hi! Here is the result: ")
|
104
103
|
)
|
@@ -107,14 +106,17 @@ You can specify which formation you want them to generate, or let the agent deci
|
|
107
106
|
print(res)
|
108
107
|
```
|
109
108
|
|
110
|
-
This will return `TaskOutput` that stores a response in
|
109
|
+
This will return `TaskOutput` instance that stores a response in plane text, JSON serializable dict, and Pydantic model: `CustomOutput` formats with a callback result, tool output (if given), and evaluation results (if given).
|
111
110
|
|
112
111
|
```
|
113
112
|
res == TaskOutput(
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
113
|
+
task_id=UUID('<TASK UUID>')
|
114
|
+
raw='{\"test1\":\"random str\", \"test2\":[\"str item 1\", \"str item 2\", \"str item 3\"]}',
|
115
|
+
json_dict={'test1': 'random str', 'test2': ['str item 1', 'str item 2', 'str item 3']},
|
116
|
+
pydantic=<class '__main__.CustomOutput'>
|
117
|
+
tool_output=None,
|
118
|
+
callback_output='Hi! Here is the result: random str, str item 1, str item 2, str item 3',
|
119
|
+
evaluation=None
|
118
120
|
)
|
119
121
|
```
|
120
122
|
|
@@ -156,15 +158,18 @@ Tasks can be delegated to a team manager, peers in the team, or completely new a
|
|
156
158
|
<hr />
|
157
159
|
|
158
160
|
## Technologies Used
|
159
|
-
**Schema,
|
160
|
-
- [Pydantic](https://docs.pydantic.dev/latest/): Data validation and serialization library for Python
|
161
|
-
- [Pydantic_core](https://pypi.org/project/pydantic-core/): Core func packages for Pydantic
|
162
|
-
- [Chroma DB](https://docs.trychroma.com/): Vector database for storing and querying usage data
|
163
|
-
- [SQLite](https://www.sqlite.org/docs.html): C-language library to implements a small SQL database engine
|
161
|
+
**Schema, Data Validation**
|
162
|
+
- [Pydantic](https://docs.pydantic.dev/latest/): Data validation and serialization library for Python.
|
163
|
+
- [Pydantic_core](https://pypi.org/project/pydantic-core/): Core func packages for Pydantic.
|
164
164
|
- [Upstage](https://console.upstage.ai/docs/getting-started/overview): Document processer for ML tasks. (Use `Document Parser API` to extract data from documents)
|
165
|
+
- [Docling](https://ds4sd.github.io/docling/): Document parsing
|
166
|
+
|
167
|
+
**Storage**
|
168
|
+
- [mem0ai](https://docs.mem0.ai/quickstart#install-package): Agents' memory storage and management.
|
169
|
+
- [Chroma DB](https://docs.trychroma.com/): Vector database for storing and querying usage data.
|
170
|
+
- [SQLite](https://www.sqlite.org/docs.html): C-language library to implements a small SQL database engine.
|
165
171
|
|
166
172
|
**LLM-curation**
|
167
|
-
- OpenAI GPT-4: Advanced language model for analysis and recommendations
|
168
173
|
- [LiteLLM](https://docs.litellm.ai/docs/providers): Curation platform to access LLMs
|
169
174
|
|
170
175
|
**Tools**
|
@@ -182,27 +187,29 @@ Tasks can be delegated to a team manager, peers in the team, or completely new a
|
|
182
187
|
|
183
188
|
```
|
184
189
|
.
|
190
|
+
.github
|
191
|
+
└── workflows/ # Github actions
|
192
|
+
│
|
185
193
|
src/
|
186
|
-
└──
|
187
|
-
│
|
188
|
-
│
|
189
|
-
│
|
190
|
-
│
|
191
|
-
│
|
192
|
-
│
|
193
|
-
│
|
194
|
-
│
|
195
|
-
│
|
196
|
-
│
|
197
|
-
│
|
198
|
-
│
|
194
|
+
└── versionhq/ # Orchestration frameworks
|
195
|
+
│ ├── agent/ # Components
|
196
|
+
│ └── llm/
|
197
|
+
│ └── task/
|
198
|
+
│ └── team/
|
199
|
+
│ └── tool/
|
200
|
+
│ └── cli/
|
201
|
+
│ └── ...
|
202
|
+
│ │
|
203
|
+
│ ├── db/ # Storage
|
204
|
+
│ ├── chroma.sqlite3
|
205
|
+
│ └── ...
|
206
|
+
│
|
207
|
+
└──tests/ # Pytest
|
208
|
+
│ └── agent/
|
209
|
+
│ └── llm/
|
210
|
+
│ └── ...
|
199
211
|
│
|
200
|
-
└──
|
201
|
-
└── cli/
|
202
|
-
└── team/
|
203
|
-
└── ...
|
204
|
-
│
|
205
|
-
└── uploads/ # Uploaded files for the project
|
212
|
+
└── uploads/ # Local repo to store the uploaded files
|
206
213
|
|
207
214
|
```
|
208
215
|
|
@@ -224,9 +231,9 @@ src/
|
|
224
231
|
|
225
232
|
* In case of AssertionError/module mismatch, run Python version control using `.pyenv`
|
226
233
|
```
|
227
|
-
pyenv install 3.
|
228
|
-
pyenv global 3.
|
229
|
-
uv python pin 3.
|
234
|
+
pyenv install 3.12.8
|
235
|
+
pyenv global 3.12.8 (optional: `pyenv global system` to get back to the system default ver.)
|
236
|
+
uv python pin 3.12.8
|
230
237
|
```
|
231
238
|
|
232
239
|
3. Set up environment variables:
|
@@ -335,6 +342,7 @@ Common issues and solutions:
|
|
335
342
|
- API key errors: Ensure all API keys in the `.env` file are correct and up to date. Make sure to add `load_dotenv()` on the top of the python file to apply the latest environment values.
|
336
343
|
- Database connection issues: Check if the Chroma DB is properly initialized and accessible.
|
337
344
|
- Memory errors: If processing large contracts, you may need to increase the available memory for the Python process.
|
345
|
+
- Issues related to the Python version: Docling/Pytorch is not ready for Python 3.13 as of Jan 2025. Use Python 3.12.x as default by running `uv venv --python 3.12.8` and `uv python pin 3.12.8`.
|
338
346
|
- Issues related to dependencies: `rm -rf uv.lock`, `uv cache clean`, `uv venv`, and run `uv pip install -r requirements.txt -v`.
|
339
347
|
- Issues related to the AI agents or RAG system: Check the `output.log` file for detailed error messages and stack traces.
|
340
348
|
- Issues related to `Python quit unexpectedly`: Check [this stackoverflow article](https://stackoverflow.com/questions/59888499/macos-catalina-python-quit-unexpectedly-error).
|
@@ -15,7 +15,7 @@ exclude = ["test*", "__pycache__"]
|
|
15
15
|
|
16
16
|
[project]
|
17
17
|
name = "versionhq"
|
18
|
-
version = "1.1.
|
18
|
+
version = "1.1.11.0"
|
19
19
|
authors = [{ name = "Kuriko Iwai", email = "kuriko@versi0n.io" }]
|
20
20
|
description = "LLM orchestration frameworks for model-agnostic AI agents that handle complex outbound workflows"
|
21
21
|
readme = "README.md"
|
@@ -39,7 +39,13 @@ dependencies = [
|
|
39
39
|
"appdirs>=1.4.4",
|
40
40
|
"langchain>=0.3.14",
|
41
41
|
"langchain-openai>=0.2.14",
|
42
|
-
"composio-langchain>=0.6.12"
|
42
|
+
"composio-langchain>=0.6.12",
|
43
|
+
"chromadb>=0.6.3",
|
44
|
+
"docling>=2.16.0",
|
45
|
+
"json-repair>=0.35.0",
|
46
|
+
"wheel>=0.45.1",
|
47
|
+
"pdfplumber>=0.11.5",
|
48
|
+
"mem0ai>=0.1.48",
|
43
49
|
]
|
44
50
|
classifiers = [
|
45
51
|
"Programming Language :: Python",
|
@@ -47,7 +53,7 @@ classifiers = [
|
|
47
53
|
"Operating System :: OS Independent",
|
48
54
|
"Development Status :: 3 - Alpha",
|
49
55
|
"Intended Audience :: Developers",
|
50
|
-
"Topic :: Software Development :: Build Tools"
|
56
|
+
"Topic :: Software Development :: Build Tools"
|
51
57
|
]
|
52
58
|
|
53
59
|
[project.urls]
|