hammad-python 0.0.21__py3-none-any.whl → 0.0.23__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.
- hammad/__init__.py +18 -34
- hammad/_internal.py +19 -1
- hammad/_main/__init__.py +4 -0
- hammad/_main/_fn.py +20 -0
- hammad/_main/_new.py +52 -0
- hammad/_main/_run.py +50 -0
- hammad/_main/_to.py +19 -0
- hammad/data/__init__.py +10 -0
- hammad/data/collections/__init__.py +5 -1
- hammad/data/sql/__init__.py +2 -1
- hammad/genai/__init__.py +6 -0
- hammad/genai/agents/__init__.py +5 -1
- hammad/genai/agents/agent.py +190 -48
- hammad/genai/agents/types/agent_response.py +9 -7
- hammad/genai/agents/types/agent_stream.py +23 -14
- hammad/genai/models/embeddings/__init__.py +5 -1
- hammad/genai/models/embeddings/model.py +31 -2
- hammad/genai/models/language/__init__.py +5 -1
- hammad/genai/models/language/model.py +27 -1
- hammad/genai/models/language/run.py +7 -8
- hammad/genai/models/language/types/language_model_response.py +4 -1
- hammad/logging/logger.py +1 -1
- {hammad_python-0.0.21.dist-info → hammad_python-0.0.23.dist-info}/METADATA +1 -1
- {hammad_python-0.0.21.dist-info → hammad_python-0.0.23.dist-info}/RECORD +26 -21
- {hammad_python-0.0.21.dist-info → hammad_python-0.0.23.dist-info}/WHEEL +0 -0
- {hammad_python-0.0.21.dist-info → hammad_python-0.0.23.dist-info}/licenses/LICENSE +0 -0
@@ -5,7 +5,10 @@ from ...._internal import create_getattr_importer
|
|
5
5
|
|
6
6
|
|
7
7
|
if TYPE_CHECKING:
|
8
|
-
from .model import
|
8
|
+
from .model import (
|
9
|
+
LanguageModel,
|
10
|
+
create_language_model,
|
11
|
+
)
|
9
12
|
from .run import run_language_model, async_run_language_model
|
10
13
|
from .types.language_model_instructor_mode import LanguageModelInstructorMode
|
11
14
|
from .types.language_model_messages import LanguageModelMessages
|
@@ -19,6 +22,7 @@ if TYPE_CHECKING:
|
|
19
22
|
__all__ = [
|
20
23
|
# hammad.genai.models.language.model
|
21
24
|
"LanguageModel",
|
25
|
+
"create_language_model",
|
22
26
|
# hammad.genai.models.language.run
|
23
27
|
"run_language_model",
|
24
28
|
"async_run_language_model",
|
@@ -46,6 +46,7 @@ from .utils import (
|
|
46
46
|
__all__ = [
|
47
47
|
"LanguageModel",
|
48
48
|
"LanguageModelError",
|
49
|
+
"create_language_model",
|
49
50
|
]
|
50
51
|
|
51
52
|
T = TypeVar("T")
|
@@ -130,7 +131,9 @@ class LanguageModel(BaseGenAIModel, Generic[T]):
|
|
130
131
|
self._instructor_client is None
|
131
132
|
or getattr(self._instructor_client, "_mode", None) != effective_mode
|
132
133
|
):
|
133
|
-
logger.debug(
|
134
|
+
logger.debug(
|
135
|
+
f"Creating new instructor client for mode: {effective_mode} from old mode: {getattr(self._instructor_client, '_mode', None)}"
|
136
|
+
)
|
134
137
|
|
135
138
|
self._instructor_client = instructor.from_litellm(
|
136
139
|
completion=litellm.completion, mode=instructor.Mode(effective_mode)
|
@@ -1024,3 +1027,26 @@ class LanguageModel(BaseGenAIModel, Generic[T]):
|
|
1024
1027
|
)
|
1025
1028
|
|
1026
1029
|
return response.output
|
1030
|
+
|
1031
|
+
|
1032
|
+
def create_language_model(
|
1033
|
+
model: str | LanguageModelName = "openai/gpt-4o-mini",
|
1034
|
+
base_url: Optional[str] = None,
|
1035
|
+
api_key: Optional[str] = None,
|
1036
|
+
api_version: Optional[str] = None,
|
1037
|
+
organization: Optional[str] = None,
|
1038
|
+
deployment_id: Optional[str] = None,
|
1039
|
+
model_list: Optional[List[Any]] = None,
|
1040
|
+
extra_headers: Optional[Dict[str, str]] = None,
|
1041
|
+
) -> LanguageModel:
|
1042
|
+
"""Create a language model instance."""
|
1043
|
+
return LanguageModel(
|
1044
|
+
model=model,
|
1045
|
+
base_url=base_url,
|
1046
|
+
api_key=api_key,
|
1047
|
+
api_version=api_version,
|
1048
|
+
organization=organization,
|
1049
|
+
deployment_id=deployment_id,
|
1050
|
+
model_list=model_list,
|
1051
|
+
extra_headers=extra_headers,
|
1052
|
+
)
|
@@ -26,14 +26,13 @@ if TYPE_CHECKING:
|
|
26
26
|
ChatCompletionAudioParam,
|
27
27
|
)
|
28
28
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
29
|
+
from .types import (
|
30
|
+
LanguageModelMessages,
|
31
|
+
LanguageModelInstructorMode,
|
32
|
+
LanguageModelName,
|
33
|
+
LanguageModelResponse,
|
34
|
+
LanguageModelStream,
|
35
|
+
)
|
37
36
|
from .model import LanguageModel
|
38
37
|
|
39
38
|
|
@@ -12,6 +12,8 @@ from typing import (
|
|
12
12
|
Literal,
|
13
13
|
)
|
14
14
|
|
15
|
+
from .....cache import cached
|
16
|
+
|
15
17
|
from ...model_provider import litellm
|
16
18
|
from ....types.base import BaseGenAIModelResponse
|
17
19
|
from openai.types.chat import (
|
@@ -197,9 +199,10 @@ class LanguageModelResponse(BaseGenAIModelResponse[T]):
|
|
197
199
|
content part object."""
|
198
200
|
return {"type": "text", "text": self.content}
|
199
201
|
|
202
|
+
@cached
|
200
203
|
def __str__(self) -> str:
|
201
204
|
"""Pretty prints the response object."""
|
202
|
-
output = "LanguageModelResponse:"
|
205
|
+
output = ">>> LanguageModelResponse:"
|
203
206
|
|
204
207
|
if self.output or self.content:
|
205
208
|
output += f"\n{self.output if self.output else self.content}"
|
hammad/logging/logger.py
CHANGED
@@ -1,6 +1,11 @@
|
|
1
|
-
hammad/__init__.py,sha256=
|
2
|
-
hammad/_internal.py,sha256=
|
1
|
+
hammad/__init__.py,sha256=WAyOiSLwvKYR8hfdlJopSS-cyZRbVL3t7lLoKzNKTRY,643
|
2
|
+
hammad/_internal.py,sha256=qQGXjzQyyCxzH5kMjCHwVdAojp-2OOVAO2T2QDxOBn8,8957
|
3
3
|
hammad/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
4
|
+
hammad/_main/__init__.py,sha256=BdftLXUx7B5N3nsj5zkYWXMOIuTajLfsaMC2kMaq0bQ,63
|
5
|
+
hammad/_main/_fn.py,sha256=VAg52rPOfwwfbonzMfRpl3bE3vuBXoqSVRjO_BSOI-c,501
|
6
|
+
hammad/_main/_new.py,sha256=9QTopNzqsxRYzDGuswd1KF2HkWt0v8oscGjvKAc0dNA,1852
|
7
|
+
hammad/_main/_run.py,sha256=U3Cqyk7bY2CAa7q6hWsdUWxfat7Uv4F-CkKNMqEtDCY,1785
|
8
|
+
hammad/_main/_to.py,sha256=0z-tbvKOY670R2o2J93r1JfV9fJNdAE_qzCdtTalgII,405
|
4
9
|
hammad/cache/__init__.py,sha256=29vI8UkVITtiEe7fTr9UR5Q0lV7tr_SVe7tLlJmm1Ks,954
|
5
10
|
hammad/cache/base_cache.py,sha256=kYJS2IcQtxhzT7BQBFtOWnhw4VkvAapPhAVkfbW5IeY,6353
|
6
11
|
hammad/cache/cache.py,sha256=bzDXxjSolrSdIxqES2VMfVZZGTk_8k4x9n0AW4tlifs,4621
|
@@ -15,8 +20,8 @@ hammad/cli/styles/__init__.py,sha256=Ok7J_uhJgyswNkBWnDw50oTX9Xk1HPksUl3UbmT1qTI
|
|
15
20
|
hammad/cli/styles/settings.py,sha256=irChf9RsMij3djx_n9D9duoVIzxLCpd9-BlKl6U_OLk,5532
|
16
21
|
hammad/cli/styles/types.py,sha256=vNIeQY_23m10K8qVT7Iy-PMwosGL-La-UAZKszHJjEE,7911
|
17
22
|
hammad/cli/styles/utils.py,sha256=zzi0JdH1X7O8XWRlMVfJP2jB-OWt7zkpm_LeCHoSKVY,28287
|
18
|
-
hammad/data/__init__.py,sha256=
|
19
|
-
hammad/data/collections/__init__.py,sha256=
|
23
|
+
hammad/data/__init__.py,sha256=nluYCFbWW330ZNhR0N8T183rmQ01clovt8Rf7ruGIIc,2162
|
24
|
+
hammad/data/collections/__init__.py,sha256=xEORHnjoV75Fa6LFDMyFw90oDaJ0e9VmISLFV3mOsIQ,1110
|
20
25
|
hammad/data/collections/collection.py,sha256=fi7jyT2GmXiGLNajjegBJMbefzggL0PIMHf-81ov7Bo,10833
|
21
26
|
hammad/data/collections/indexes/__init__.py,sha256=RmXKWKq2sbtA1swz5vamKKWut-eKfc-Q2tUnij-E-IU,960
|
22
27
|
hammad/data/collections/indexes/qdrant/__init__.py,sha256=KU89TIJkYmJPnVxWKHfXntkIYwhn86ejXtWG30hCyHg,49
|
@@ -36,7 +41,7 @@ hammad/data/models/utils.py,sha256=KNtr1PlxBizs14gmZqQeG1A7EQ6JHPRrRN0pTr3ucR8,9
|
|
36
41
|
hammad/data/models/extensions/__init__.py,sha256=dfVDCMBKZYtaMHJRQBShaoMHFcQ6VJcD_5q5Fcc77mQ,128
|
37
42
|
hammad/data/models/extensions/pydantic/__init__.py,sha256=2ipoelO4knYSug47Vdt0URHtBNCQIFixJ3tTcawaCtE,1205
|
38
43
|
hammad/data/models/extensions/pydantic/converters.py,sha256=_485-4EUQe7-fxlPG2o1wnaU8SDA79AhxMitiUMoIYY,24545
|
39
|
-
hammad/data/sql/__init__.py,sha256=
|
44
|
+
hammad/data/sql/__init__.py,sha256=o5OygbXCCpWH0A1Sr994e_rdplUxY0Vl3mGIykt1c7k,493
|
40
45
|
hammad/data/sql/database.py,sha256=t06bNLQ0WPmg8Be_Xf9u8k5zhy70Iw-akC4Ff2o5PrA,18208
|
41
46
|
hammad/data/sql/types.py,sha256=8xLEEK7u6YBFGfh8MJbJeSVNeGZ1RCxF_QvNTu0rel0,3526
|
42
47
|
hammad/data/types/__init__.py,sha256=LeyrRKKBbDP2VaTaNEiyJU_1rs52LofD18WUS8rl5gw,758
|
@@ -53,38 +58,38 @@ hammad/formatting/text/converters.py,sha256=g3z-ZGTaKNVbLFFKBSh6qN2Uz0BSkdxCaN3L
|
|
53
58
|
hammad/formatting/text/markdown.py,sha256=D17NOoGkoXUBhoOGKelKHwi72iqsAwPU5HEFjRJtLQI,3407
|
54
59
|
hammad/formatting/yaml/__init__.py,sha256=4dBeXPi0jx7ELT2_sC2fUYaiY8b8wFiUScLODc9ISEw,462
|
55
60
|
hammad/formatting/yaml/converters.py,sha256=zvSB8QGb56uvwO0KjXllfTj9g1FmNINOKR06DTjvXw8,153
|
56
|
-
hammad/genai/__init__.py,sha256=
|
57
|
-
hammad/genai/agents/__init__.py,sha256=
|
58
|
-
hammad/genai/agents/agent.py,sha256=
|
61
|
+
hammad/genai/__init__.py,sha256=1nk9ccY_W_wcch15PUQjO-SB90HHT83L5x7hxZJ06I8,3743
|
62
|
+
hammad/genai/agents/__init__.py,sha256=H_jThBEznMLk_HxNeRcVRIX3mCOpHRS4hmFTvLofVVU,1294
|
63
|
+
hammad/genai/agents/agent.py,sha256=6r0_cpeXMw6qhrWThTyvPTv3qyEvbGpZqDtohWrMLkM,59494
|
59
64
|
hammad/genai/agents/run.py,sha256=G3NLJgg8nXFHfOrh_XR1NpVjGzAgjnA_Ojc_rrMHz9E,23278
|
60
65
|
hammad/genai/agents/types/__init__.py,sha256=6X6_P82qe15dyqs-vAcXUk4na4tB-7oMdMf484v87io,1119
|
61
66
|
hammad/genai/agents/types/agent_context.py,sha256=u4evwx9B-UKEHMtNcsNlN9q8i12bsW9HhtyvmU0NNTw,313
|
62
67
|
hammad/genai/agents/types/agent_event.py,sha256=zNKXXPKKOsIO9MAhE-YNCOxeNg00O7j1mE0R1pA_Xr8,3925
|
63
68
|
hammad/genai/agents/types/agent_hooks.py,sha256=wgys4ixiHjX5oux4zVSr9OPXyAZ-iJGk_MhaOKEgMxo,7853
|
64
69
|
hammad/genai/agents/types/agent_messages.py,sha256=csjEq42bElaTZYZW2dE6nlFZc142-HgT3bB6h1KMg_w,846
|
65
|
-
hammad/genai/agents/types/agent_response.py,sha256=
|
66
|
-
hammad/genai/agents/types/agent_stream.py,sha256=
|
70
|
+
hammad/genai/agents/types/agent_response.py,sha256=vRR9bWwzSA6Y6a_cpf7KrrmJqoAwh5OuuNThTERNVwY,3806
|
71
|
+
hammad/genai/agents/types/agent_stream.py,sha256=VIfqZp55wq6jQh_OtPzZjiL_K4cEoVCkeEZS3s_MIXI,11069
|
67
72
|
hammad/genai/models/__init__.py,sha256=e4TbEsiKIoXENOEsdIdQcWWt0RnFdTEqCz0nICHQHtM,26
|
68
73
|
hammad/genai/models/model_provider.py,sha256=2RdOeqr7KpjyrMqq4YH4OYy1pk6sjzf2CPu1ZHa1Pdk,75
|
69
74
|
hammad/genai/models/multimodal.py,sha256=KXUyLXqM1eBgBGZFEbMw3dYbakZFAXoko2xYprronxY,1276
|
70
75
|
hammad/genai/models/reranking.py,sha256=oR1j7uomtEQCse-1zkteDTdXklEKu40CvFcAMLAV2XM,451
|
71
|
-
hammad/genai/models/embeddings/__init__.py,sha256=
|
72
|
-
hammad/genai/models/embeddings/model.py,sha256=
|
76
|
+
hammad/genai/models/embeddings/__init__.py,sha256=x_lWV2TGjogAsG4Yny73-ECRmZPVMw245qnKOr81R9o,1033
|
77
|
+
hammad/genai/models/embeddings/model.py,sha256=vh8JPfy8_vBZrS8h3OEyaUYjbbuyBq3x2bUa0hVxkuc,8166
|
73
78
|
hammad/genai/models/embeddings/run.py,sha256=-0WPCGF2otIfPZzQ2VeocuvKFxSyCz66WsfkhORJAV4,5011
|
74
79
|
hammad/genai/models/embeddings/types/__init__.py,sha256=j1puexoIpgyYpDkz-1wMy2QjbS5QEZiLlI0BJaus3gY,1068
|
75
80
|
hammad/genai/models/embeddings/types/embedding_model_name.py,sha256=LA8E6C-_o7cz8KwFPL0vLYt2OxhTtJikMHsQBwNpKpY,2499
|
76
81
|
hammad/genai/models/embeddings/types/embedding_model_response.py,sha256=V2H_VTl1MSBTa6Yubwjb43ZaoIrHORRdy9nYG2kZGyQ,2038
|
77
82
|
hammad/genai/models/embeddings/types/embedding_model_run_params.py,sha256=ZGhCXrEEzMF5y-V8neF2a73Gh1emzrYUHVxWkybg5uE,1570
|
78
83
|
hammad/genai/models/embeddings/types/embedding_model_settings.py,sha256=KEwvoElXhPMSVCKW2uKwqqT2lSAAthQXmGXaV7Qk5cU,1268
|
79
|
-
hammad/genai/models/language/__init__.py,sha256=
|
80
|
-
hammad/genai/models/language/model.py,sha256=
|
81
|
-
hammad/genai/models/language/run.py,sha256=
|
84
|
+
hammad/genai/models/language/__init__.py,sha256=jyn5GIT0J7gcDQAbKlcW25pU7jzUY-Jl-VT4Nc8Tleg,1915
|
85
|
+
hammad/genai/models/language/model.py,sha256=TIw6DKGahpO97ju5-cI9B0LfgSGK63IPrLd4a1mRE-8,40154
|
86
|
+
hammad/genai/models/language/run.py,sha256=41VBSq1UVnsWKV8cLqCEWRkSjsrJhYVnk8xSKaIIGE0,21439
|
82
87
|
hammad/genai/models/language/types/__init__.py,sha256=cdLnoCiVmK6T86-5CZrUJg2rxXKoSk-svyCSviUdgao,1534
|
83
88
|
hammad/genai/models/language/types/language_model_instructor_mode.py,sha256=7ywBaY24m-UKRynnX6XsfVf_hsQrM2xHAHugTgV0Vho,1008
|
84
89
|
hammad/genai/models/language/types/language_model_messages.py,sha256=e-HZ_YKXq17gwmMlpOmYUYUpBFm7Mu3aRawtjSslWXs,504
|
85
90
|
hammad/genai/models/language/types/language_model_name.py,sha256=2V70cZ47L9yIcug6LCcMHcvEJaee7gRN6DUPhLUBlsE,8056
|
86
91
|
hammad/genai/models/language/types/language_model_request.py,sha256=ZtzhCx8o6zkEBS3uTFXFLf_poDD7MnIp1y7MbKckOmI,3911
|
87
|
-
hammad/genai/models/language/types/language_model_response.py,sha256=
|
92
|
+
hammad/genai/models/language/types/language_model_response.py,sha256=YHDEDJuhQ_ULs9qse2b-h5cx1ELWgfPc2BHk34OPVxE,7540
|
88
93
|
hammad/genai/models/language/types/language_model_response_chunk.py,sha256=wIzGZw732KsI-a1-uASjATA6qvBuq-7rupWoFjsAgQo,1796
|
89
94
|
hammad/genai/models/language/types/language_model_settings.py,sha256=C0EvLXZoOLgPZ4bX7mVFs_CWP-jam27qkseJRGsBAfQ,2794
|
90
95
|
hammad/genai/models/language/types/language_model_stream.py,sha256=XgJ83JSbtTdf7jeLQMrDhMfI7zp0pRrdY7JWYbZV_h0,22043
|
@@ -97,7 +102,7 @@ hammad/genai/types/history.py,sha256=zsfBvGMoFTHZCT7Igae-5_jszu409dVJ_wEmNw7alCk
|
|
97
102
|
hammad/genai/types/tools.py,sha256=3p7qhZcilP_NOCOnufCkubTeYN0yC7Ij5bqrUy-FYow,16554
|
98
103
|
hammad/logging/__init__.py,sha256=VtskZx0bKEAJ9FHTMflhB1CzeFUxLpDT5HPgcecAXUo,701
|
99
104
|
hammad/logging/decorators.py,sha256=VbI1x3P4ft0-0BGjXq7nQgiuNqcXAA51CGmoSn47iSw,30122
|
100
|
-
hammad/logging/logger.py,sha256=
|
105
|
+
hammad/logging/logger.py,sha256=5Y41gCtH7APxNjIXtsZg1E9nwpi2xTgRAoC2l-QKil4,31706
|
101
106
|
hammad/mcp/__init__.py,sha256=5oTU-BLYjfz6fBHDH9cyWg3DpQ6Qar-jodbCR05SuWo,1123
|
102
107
|
hammad/mcp/client/__init__.py,sha256=_SfnKvd5Za-FfFoE5GcXkBY9WcwprZND9SyZ6RY--no,795
|
103
108
|
hammad/mcp/client/client.py,sha256=auKCiIJfcZkuVFRapTpqYP4PxoyIfx40gVbMYLBdTzI,20565
|
@@ -121,7 +126,7 @@ hammad/web/openapi/__init__.py,sha256=JhJQ6_laBmB2djIYFc0vgGha2GsdUe4FP1LDdZCQ5J
|
|
121
126
|
hammad/web/openapi/client.py,sha256=1pXz7KAO_0pN4kQZoWKWskXDYGiJ535TsPO1GGCiC0E,26816
|
122
127
|
hammad/web/search/__init__.py,sha256=e9A6znPIiZCz-4secyHbUs0uUGf5yAqW6wGacgx961U,24
|
123
128
|
hammad/web/search/client.py,sha256=LIx2MsHhn6cRTuq5i1mWowRTdIhPobY4GQV3S3bk9lk,36694
|
124
|
-
hammad_python-0.0.
|
125
|
-
hammad_python-0.0.
|
126
|
-
hammad_python-0.0.
|
127
|
-
hammad_python-0.0.
|
129
|
+
hammad_python-0.0.23.dist-info/METADATA,sha256=qQEcjvfgyHivMxhqEqkR1ER-MZU2J8FD8L2EjwpE7Vs,6570
|
130
|
+
hammad_python-0.0.23.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
131
|
+
hammad_python-0.0.23.dist-info/licenses/LICENSE,sha256=h74yFUWjbBaodcWG5wNmm30npjl8obVcxD-1nQfUp2I,1069
|
132
|
+
hammad_python-0.0.23.dist-info/RECORD,,
|
File without changes
|
File without changes
|