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.
@@ -5,7 +5,10 @@ from ...._internal import create_getattr_importer
5
5
 
6
6
 
7
7
  if TYPE_CHECKING:
8
- from .model import LanguageModel
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(f"Creating new instructor client for mode: {effective_mode} from old mode: {getattr(self._instructor_client, '_mode', None)}")
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
- from .types import (
30
- LanguageModelMessages,
31
- LanguageModelInstructorMode,
32
- LanguageModelName,
33
- LanguageModelResponse,
34
- LanguageModelStream,
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
@@ -960,4 +960,4 @@ _logger = Logger("hammad", level="warning")
960
960
 
961
961
 
962
962
  def _get_internal_logger(name: str) -> Logger:
963
- return Logger(name=name, level="warning")
963
+ return Logger(name=name, level="warning")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hammad-python
3
- Version: 0.0.21
3
+ Version: 0.0.23
4
4
  Author-email: Hammad Saeed <hammadaidev@gmail.com>
5
5
  License: MIT License
6
6
 
@@ -1,6 +1,11 @@
1
- hammad/__init__.py,sha256=H9AE2dPsfFRiir-cCi6_Zz48PP8D17oIKnSFx8SO6gk,1050
2
- hammad/_internal.py,sha256=GJ5QEhFf4qNXYUZd1C5oq9wJ-a4gkUtLePwbz3W4weY,7872
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=WTKbH94kzR6oOrB_T24XLbKgda4pTKbiHf2qyLWyRo4,1824
19
- hammad/data/collections/__init__.py,sha256=b7NkF_p4fesZ-qOBxz931-vQjnyJB7IGyCpBJlO5G98,1041
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=sCV7B9pgueKAFjdLvLrY7r1ZWKa0x44lzF5xdYnZ4mo,453
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=16L9z0U73uUhBB7JHSL0tHWie2-rI7GAUtQSY94IeZk,3579
57
- hammad/genai/agents/__init__.py,sha256=R_wW_fbZqMXZZYSErAb81UDRMTaNDlAFzNKfTOm4XYg,1235
58
- hammad/genai/agents/agent.py,sha256=9dA1GGVR9bQo2KAnmpvyBYNtOhhbxq7bXuKcb9NpwD0,54902
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=3-6zMMKQXbFXN4VSf_J-y_GeO9sxQTNjC_uW8x6E0m0,3795
66
- hammad/genai/agents/types/agent_stream.py,sha256=57Pd4lyDRQnkjeM0x3KDkqBXEDjP8lCyK836kX8wlJM,11076
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=XfAsy8nGIDQtbWhQokb28mym6-q1su180pFMTaUp5Eg,954
72
- hammad/genai/models/embeddings/model.py,sha256=lYi1a5Rs8eX3OFUfo3CkGL5FQk-MSQ1lQaoxC7Yia7I,7066
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=B92q9f5UIQBMIFoYUja9V61bn5Lzdrk12_bf3DHw6Is,1838
80
- hammad/genai/models/language/model.py,sha256=zdQHI_vC3QXsCKnAtxqOtnzKqSTSa5rkgv86GnKrmm8,39378
81
- hammad/genai/models/language/run.py,sha256=nqqQYi3iBpkNxW3_JHyyZBNpn79LVWLpnebCBYOaEbA,21468
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=vxNunQ8ZXds-9hawMkXfNoTkWlEeyRy7kgWhlNt6xoc,7493
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=vqinFHYUiCdHxJntsvXRjNextwOfBkXBOlLXduEk5VM,31705
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.21.dist-info/METADATA,sha256=rqHKqJ3Ipe4XisXufat4OwBws3-MgShyRN0PFrUM58Q,6570
125
- hammad_python-0.0.21.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
126
- hammad_python-0.0.21.dist-info/licenses/LICENSE,sha256=h74yFUWjbBaodcWG5wNmm30npjl8obVcxD-1nQfUp2I,1069
127
- hammad_python-0.0.21.dist-info/RECORD,,
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,,