versionhq 1.2.3.6__py3-none-any.whl → 1.2.3.8__py3-none-any.whl
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/__init__.py +1 -1
- versionhq/agent/model.py +22 -11
- versionhq/tool/model.py +5 -0
- {versionhq-1.2.3.6.dist-info → versionhq-1.2.3.8.dist-info}/METADATA +1 -1
- {versionhq-1.2.3.6.dist-info → versionhq-1.2.3.8.dist-info}/RECORD +8 -8
- {versionhq-1.2.3.6.dist-info → versionhq-1.2.3.8.dist-info}/LICENSE +0 -0
- {versionhq-1.2.3.6.dist-info → versionhq-1.2.3.8.dist-info}/WHEEL +0 -0
- {versionhq-1.2.3.6.dist-info → versionhq-1.2.3.8.dist-info}/top_level.txt +0 -0
versionhq/__init__.py
CHANGED
versionhq/agent/model.py
CHANGED
@@ -7,13 +7,12 @@ from dotenv import load_dotenv
|
|
7
7
|
from pydantic import UUID4, BaseModel, Field, InstanceOf, PrivateAttr, model_validator, field_validator
|
8
8
|
from pydantic_core import PydanticCustomError
|
9
9
|
|
10
|
-
from versionhq.
|
10
|
+
from versionhq.agent.rpm_controller import RPMController
|
11
11
|
from versionhq.tool.model import Tool, ToolSet, BaseTool
|
12
12
|
from versionhq.knowledge.model import BaseKnowledgeSource, Knowledge
|
13
13
|
from versionhq.memory.contextual_memory import ContextualMemory
|
14
14
|
from versionhq.memory.model import ShortTermMemory, LongTermMemory, UserMemory
|
15
15
|
from versionhq._utils.logger import Logger
|
16
|
-
from versionhq.agent.rpm_controller import RPMController
|
17
16
|
from versionhq._utils.process_config import process_config
|
18
17
|
|
19
18
|
|
@@ -68,8 +67,8 @@ class Agent(BaseModel):
|
|
68
67
|
callbacks: Optional[List[Callable]] = Field(default_factory=list, description="callback functions to execute after any task execution")
|
69
68
|
|
70
69
|
# llm settings cascaded to the LLM model
|
71
|
-
llm:
|
72
|
-
func_calling_llm:
|
70
|
+
llm: Any = Field(default=None, description="store LLM object")
|
71
|
+
func_calling_llm: Any = Field(default=None, description="store LLM object")
|
73
72
|
respect_context_window: bool = Field(default=True, description="keep messages under the context window size")
|
74
73
|
max_execution_time: Optional[int] = Field(default=None, description="max. task execution time in seconds")
|
75
74
|
max_rpm: Optional[int] = Field(default=None, description="max. number of requests per minute")
|
@@ -78,7 +77,6 @@ class Agent(BaseModel):
|
|
78
77
|
# # cache, error, ops handling
|
79
78
|
# formatting_errors: int = Field(default=0, description="number of formatting errors.")
|
80
79
|
|
81
|
-
|
82
80
|
@field_validator("id", mode="before")
|
83
81
|
@classmethod
|
84
82
|
def _deny_user_set_id(cls, v: Optional[UUID4]) -> None:
|
@@ -106,6 +104,8 @@ class Agent(BaseModel):
|
|
106
104
|
"""
|
107
105
|
Set up `llm` and `func_calling_llm` as valid LLM objects using the given kwargs.
|
108
106
|
"""
|
107
|
+
from versionhq.llm.model import LLM, DEFAULT_MODEL_NAME
|
108
|
+
|
109
109
|
self.llm = self._convert_to_llm_object(llm=self.llm)
|
110
110
|
|
111
111
|
func_calling_llm = self.func_calling_llm if self.func_calling_llm else self.llm if self.llm else None
|
@@ -151,7 +151,7 @@ class Agent(BaseModel):
|
|
151
151
|
setattr(tool, k, v)
|
152
152
|
tool_list.append(tool)
|
153
153
|
|
154
|
-
case callable():
|
154
|
+
case func if callable(func):
|
155
155
|
tool = Tool(func=item)
|
156
156
|
tool_list.append(tool)
|
157
157
|
|
@@ -267,11 +267,13 @@ class Agent(BaseModel):
|
|
267
267
|
return self
|
268
268
|
|
269
269
|
|
270
|
-
def _convert_to_llm_object(self, llm: Any = None)
|
270
|
+
def _convert_to_llm_object(self, llm: Any = None): # returns LLM object
|
271
271
|
"""
|
272
272
|
Convert the given value to LLM object.
|
273
273
|
When `llm` is dict or self.llm_config is not None, add these values to the LLM object after validating them.
|
274
274
|
"""
|
275
|
+
from versionhq.llm.model import LLM, DEFAULT_MODEL_NAME
|
276
|
+
|
275
277
|
llm = llm if llm else self.llm if self.llm else DEFAULT_MODEL_NAME
|
276
278
|
|
277
279
|
if not llm:
|
@@ -279,11 +281,11 @@ class Agent(BaseModel):
|
|
279
281
|
|
280
282
|
match llm:
|
281
283
|
case LLM():
|
282
|
-
return self._set_llm_params(
|
284
|
+
return self._set_llm_params(llm_obj=llm, config=self.llm_config)
|
283
285
|
|
284
286
|
case str():
|
285
287
|
llm = LLM(model=llm)
|
286
|
-
return self._set_llm_params(
|
288
|
+
return self._set_llm_params(llm_obj=llm, config=self.llm_config)
|
287
289
|
|
288
290
|
case dict():
|
289
291
|
model_name = llm.pop("model_name", llm.pop("deployment_name", str(llm)))
|
@@ -301,13 +303,20 @@ class Agent(BaseModel):
|
|
301
303
|
"base_url": getattr(llm, "base_url", None),
|
302
304
|
}
|
303
305
|
config = llm_params.update(self.llm_config) if self.llm_config else llm_params
|
304
|
-
return self._set_llm_params(
|
306
|
+
return self._set_llm_params(llm_obj=llm, config=config)
|
305
307
|
|
306
308
|
|
307
|
-
def _set_llm_params(self,
|
309
|
+
def _set_llm_params(self, llm_obj, config: Dict[str, Any] = None): # returns LLM object
|
308
310
|
"""
|
309
311
|
Add valid params to the LLM object.
|
310
312
|
"""
|
313
|
+
from versionhq.llm.model import LLM, DEFAULT_CONTEXT_WINDOW_SIZE
|
314
|
+
from versionhq.llm.llm_vars import PROVIDERS
|
315
|
+
|
316
|
+
llm = llm_obj if isinstance(llm_obj, LLM) else None
|
317
|
+
|
318
|
+
if not llm: return
|
319
|
+
|
311
320
|
if llm.provider is None:
|
312
321
|
provider_name = llm.model.split("/")[0]
|
313
322
|
valid_provider = provider_name if provider_name in PROVIDERS else None
|
@@ -352,6 +361,8 @@ class Agent(BaseModel):
|
|
352
361
|
"""
|
353
362
|
Fine-tuned the base model using OpenAI train framework.
|
354
363
|
"""
|
364
|
+
from versionhq.llm.model import LLM
|
365
|
+
|
355
366
|
if not isinstance(self.llm, LLM):
|
356
367
|
pass
|
357
368
|
|
versionhq/tool/model.py
CHANGED
@@ -144,6 +144,11 @@ class BaseTool(ABC, BaseModel):
|
|
144
144
|
class Tool(BaseTool):
|
145
145
|
func: Callable = Field(default=None)
|
146
146
|
|
147
|
+
# def __init__(self, func: Callable = None, *args, **kwargs):
|
148
|
+
# self.func = func
|
149
|
+
# super().__init__(*args, **kwargs)
|
150
|
+
|
151
|
+
|
147
152
|
@model_validator(mode="after")
|
148
153
|
def validate_func(self) -> Self:
|
149
154
|
if not self.func and not self._run:
|
@@ -1,4 +1,4 @@
|
|
1
|
-
versionhq/__init__.py,sha256
|
1
|
+
versionhq/__init__.py,sha256=-XmzMUZrIz4XrCUOjV4K8kAbNGaSeptDjYOyWfMUYOc,2980
|
2
2
|
versionhq/_utils/__init__.py,sha256=d-vYVcORZKG-kkLe_fzE8VbViDpAk9DDOKe2fVK25ew,178
|
3
3
|
versionhq/_utils/i18n.py,sha256=TwA_PnYfDLA6VqlUDPuybdV9lgi3Frh_ASsb_X8jJo8,1483
|
4
4
|
versionhq/_utils/llm_as_a_judge.py,sha256=RM0oYfoeanuUyUL3Ewl6_8Xn1F5Axd285UMH46kxG1I,2378
|
@@ -8,7 +8,7 @@ versionhq/_utils/usage_metrics.py,sha256=xgYGRW3OTuK9EJyi3QYJeYcJl7dL27olcWaLo_7
|
|
8
8
|
versionhq/_utils/vars.py,sha256=bZ5Dx_bFKlt3hi4-NNGXqdk7B23If_WaTIju2fiTyPQ,57
|
9
9
|
versionhq/agent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
10
10
|
versionhq/agent/inhouse_agents.py,sha256=BPkvEyMH8VnZWsMeCwsGplDT_kLwlIejeRcr-6ItGqQ,2637
|
11
|
-
versionhq/agent/model.py,sha256=
|
11
|
+
versionhq/agent/model.py,sha256=xKfg20EdL11HiFbG7V7ErHlFSDpvh5lopnHDfWULJM4,25996
|
12
12
|
versionhq/agent/parser.py,sha256=riG0dkdQCxH7uJ0AbdVdg7WvL0BXhUgJht0VtQvxJBc,4082
|
13
13
|
versionhq/agent/rpm_controller.py,sha256=grezIxyBci_lDlwAlgWFRyR5KOocXeOhYkgN02dNFNE,2360
|
14
14
|
versionhq/agent/TEMPLATES/Backstory.py,sha256=dkfuATUQ2g2WoUKkmgAIch-RB--bektGoQaUlsDOn0g,529
|
@@ -59,11 +59,11 @@ versionhq/tool/cache_handler.py,sha256=iL8FH7X0G-cdT0uhJwzuhLDaadTXOdfybZcDy151-
|
|
59
59
|
versionhq/tool/composio_tool.py,sha256=IATfsEnF_1RPJyGtPBmAtEJh5XPcgDHpyG3SUR461Og,8572
|
60
60
|
versionhq/tool/composio_tool_vars.py,sha256=FvBuEXsOQUYnN7RTFxT20kAkiEYkxWKkiVtgpqOzKZQ,1843
|
61
61
|
versionhq/tool/decorator.py,sha256=C4ZM7Xi2gwtEMaSeRo-geo_g_MAkY77WkSLkAuY0AyI,1205
|
62
|
-
versionhq/tool/model.py,sha256=
|
62
|
+
versionhq/tool/model.py,sha256=ve9C4WyiRjQigOU0hRWVxtSUWAQNntlmeW-_DL0_lJY,12328
|
63
63
|
versionhq/tool/rag_tool.py,sha256=dW5o-83V4bMFFJEj3PUm7XjblwrYJGmZVBlCpPj6CeM,3852
|
64
64
|
versionhq/tool/tool_handler.py,sha256=2m41K8qo5bGCCbwMFferEjT-XZ-mE9F0mDUOBkgivOI,1416
|
65
|
-
versionhq-1.2.3.
|
66
|
-
versionhq-1.2.3.
|
67
|
-
versionhq-1.2.3.
|
68
|
-
versionhq-1.2.3.
|
69
|
-
versionhq-1.2.3.
|
65
|
+
versionhq-1.2.3.8.dist-info/LICENSE,sha256=cRoGGdM73IiDs6nDWKqPlgSv7aR4n-qBXYnJlCMHCeE,1082
|
66
|
+
versionhq-1.2.3.8.dist-info/METADATA,sha256=c-aVXe5FBs_a_YPXQN4HBxfAJZv7ZxR0c1f_5cAsuKg,21262
|
67
|
+
versionhq-1.2.3.8.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
|
68
|
+
versionhq-1.2.3.8.dist-info/top_level.txt,sha256=DClQwxDWqIUGeRJkA8vBlgeNsYZs4_nJWMonzFt5Wj0,10
|
69
|
+
versionhq-1.2.3.8.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|