hammad-python 0.0.23__py3-none-any.whl → 0.0.24__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 +282 -13
- hammad/cli/plugins.py +3 -1
- hammad/genai/__init__.py +51 -0
- hammad/genai/agents/__init__.py +6 -0
- hammad/genai/agents/agent.py +640 -213
- hammad/genai/agents/run.py +50 -12
- hammad/genai/agents/types/agent_response.py +2 -1
- hammad/genai/graphs/__init__.py +113 -0
- hammad/genai/graphs/base.py +1103 -0
- hammad/genai/graphs/plugins.py +316 -0
- hammad/genai/graphs/types.py +638 -0
- hammad/genai/models/language/model.py +46 -0
- hammad/genai/models/language/run.py +22 -4
- hammad/genai/models/language/types/language_model_response.py +1 -1
- hammad/genai/types/tools.py +1 -1
- hammad/logging/logger.py +10 -0
- {hammad_python-0.0.23.dist-info → hammad_python-0.0.24.dist-info}/METADATA +5 -1
- {hammad_python-0.0.23.dist-info → hammad_python-0.0.24.dist-info}/RECORD +20 -21
- hammad/_main/__init__.py +0 -4
- hammad/_main/_fn.py +0 -20
- hammad/_main/_new.py +0 -52
- hammad/_main/_run.py +0 -50
- hammad/_main/_to.py +0 -19
- {hammad_python-0.0.23.dist-info → hammad_python-0.0.24.dist-info}/WHEEL +0 -0
- {hammad_python-0.0.23.dist-info → hammad_python-0.0.24.dist-info}/licenses/LICENSE +0 -0
@@ -100,6 +100,8 @@ class LanguageModel(BaseGenAIModel, Generic[T]):
|
|
100
100
|
base_url: Optional[str] = None,
|
101
101
|
api_key: Optional[str] = None,
|
102
102
|
instructor_mode: LanguageModelInstructorMode = "tool_call",
|
103
|
+
verbose: bool = False,
|
104
|
+
debug: bool = False,
|
103
105
|
**kwargs: Any,
|
104
106
|
):
|
105
107
|
"""Initialize the language model.
|
@@ -109,6 +111,8 @@ class LanguageModel(BaseGenAIModel, Generic[T]):
|
|
109
111
|
base_url: Custom base URL for the API
|
110
112
|
api_key: API key for authentication
|
111
113
|
instructor_mode: Default instructor mode for structured outputs
|
114
|
+
verbose: If True, set logger to INFO level for detailed output
|
115
|
+
debug: If True, set logger to DEBUG level for maximum verbosity
|
112
116
|
**kwargs: Additional arguments passed to BaseGenAIModel
|
113
117
|
"""
|
114
118
|
# Initialize BaseGenAIModel via super()
|
@@ -116,6 +120,14 @@ class LanguageModel(BaseGenAIModel, Generic[T]):
|
|
116
120
|
|
117
121
|
# Initialize LanguageModel-specific attributes
|
118
122
|
self._instructor_client = None
|
123
|
+
self.verbose = verbose
|
124
|
+
self.debug = debug
|
125
|
+
|
126
|
+
# Set logger level based on verbose/debug flags
|
127
|
+
if debug:
|
128
|
+
logger.setLevel("DEBUG")
|
129
|
+
elif verbose:
|
130
|
+
logger.setLevel("INFO")
|
119
131
|
|
120
132
|
logger.info(f"Initialized LanguageModel w/ model: {self.model}")
|
121
133
|
logger.debug(f"LanguageModel settings: {self.settings}")
|
@@ -337,6 +349,8 @@ class LanguageModel(BaseGenAIModel, Generic[T]):
|
|
337
349
|
messages: LanguageModelMessages,
|
338
350
|
instructions: Optional[str] = None,
|
339
351
|
mock_response: Optional[str] = None,
|
352
|
+
verbose: Optional[bool] = None,
|
353
|
+
debug: Optional[bool] = None,
|
340
354
|
**kwargs: Any,
|
341
355
|
) -> Union[LanguageModelResponse[Any], LanguageModelStream[Any]]:
|
342
356
|
"""Run a language model request.
|
@@ -345,11 +359,20 @@ class LanguageModel(BaseGenAIModel, Generic[T]):
|
|
345
359
|
messages: The input messages/content for the request
|
346
360
|
instructions: Optional system instructions to prepend
|
347
361
|
mock_response: Mock response string for testing (saves API costs)
|
362
|
+
verbose: If True, set logger to INFO level for this request
|
363
|
+
debug: If True, set logger to DEBUG level for this request
|
348
364
|
**kwargs: Additional request parameters
|
349
365
|
|
350
366
|
Returns:
|
351
367
|
LanguageModelResponse or LanguageModelStream depending on parameters
|
352
368
|
"""
|
369
|
+
# Set logger level for this request if specified
|
370
|
+
original_level = logger.level
|
371
|
+
if debug or (debug is None and self.debug):
|
372
|
+
logger.setLevel("DEBUG")
|
373
|
+
elif verbose or (verbose is None and self.verbose):
|
374
|
+
logger.setLevel("INFO")
|
375
|
+
|
353
376
|
logger.info(f"Running LanguageModel request with model: {self.model}")
|
354
377
|
logger.debug(f"LanguageModel request kwargs: {kwargs}")
|
355
378
|
|
@@ -388,6 +411,10 @@ class LanguageModel(BaseGenAIModel, Generic[T]):
|
|
388
411
|
|
389
412
|
except Exception as e:
|
390
413
|
raise LanguageModelError(f"Error in language model request: {e}") from e
|
414
|
+
finally:
|
415
|
+
# Restore original logger level
|
416
|
+
if debug is not None or verbose is not None:
|
417
|
+
logger.setLevel(original_level)
|
391
418
|
|
392
419
|
# Overloaded async_run methods for different return types
|
393
420
|
|
@@ -574,6 +601,8 @@ class LanguageModel(BaseGenAIModel, Generic[T]):
|
|
574
601
|
messages: LanguageModelMessages,
|
575
602
|
instructions: Optional[str] = None,
|
576
603
|
mock_response: Optional[str] = None,
|
604
|
+
verbose: Optional[bool] = None,
|
605
|
+
debug: Optional[bool] = None,
|
577
606
|
**kwargs: Any,
|
578
607
|
) -> Union[LanguageModelResponse[Any], LanguageModelStream[Any]]:
|
579
608
|
"""Run an async language model request.
|
@@ -582,11 +611,20 @@ class LanguageModel(BaseGenAIModel, Generic[T]):
|
|
582
611
|
messages: The input messages/content for the request
|
583
612
|
instructions: Optional system instructions to prepend
|
584
613
|
mock_response: Mock response string for testing (saves API costs)
|
614
|
+
verbose: If True, set logger to INFO level for this request
|
615
|
+
debug: If True, set logger to DEBUG level for this request
|
585
616
|
**kwargs: Additional request parameters
|
586
617
|
|
587
618
|
Returns:
|
588
619
|
LanguageModelResponse or LanguageModelAsyncStream depending on parameters
|
589
620
|
"""
|
621
|
+
# Set logger level for this request if specified
|
622
|
+
original_level = logger.level
|
623
|
+
if debug or (debug is None and self.debug):
|
624
|
+
logger.setLevel("DEBUG")
|
625
|
+
elif verbose or (verbose is None and self.verbose):
|
626
|
+
logger.setLevel("INFO")
|
627
|
+
|
590
628
|
logger.info(f"Running async LanguageModel request with model: {self.model}")
|
591
629
|
logger.debug(f"LanguageModel request kwargs: {kwargs}")
|
592
630
|
|
@@ -631,6 +669,10 @@ class LanguageModel(BaseGenAIModel, Generic[T]):
|
|
631
669
|
raise LanguageModelError(
|
632
670
|
f"Error in async language model request: {e}"
|
633
671
|
) from e
|
672
|
+
finally:
|
673
|
+
# Restore original logger level
|
674
|
+
if debug is not None or verbose is not None:
|
675
|
+
logger.setLevel(original_level)
|
634
676
|
|
635
677
|
def _handle_completion_request(
|
636
678
|
self, request: LanguageModelRequestBuilder, parsed_messages: List[Any]
|
@@ -1038,6 +1080,8 @@ def create_language_model(
|
|
1038
1080
|
deployment_id: Optional[str] = None,
|
1039
1081
|
model_list: Optional[List[Any]] = None,
|
1040
1082
|
extra_headers: Optional[Dict[str, str]] = None,
|
1083
|
+
verbose: bool = False,
|
1084
|
+
debug: bool = False,
|
1041
1085
|
) -> LanguageModel:
|
1042
1086
|
"""Create a language model instance."""
|
1043
1087
|
return LanguageModel(
|
@@ -1049,4 +1093,6 @@ def create_language_model(
|
|
1049
1093
|
deployment_id=deployment_id,
|
1050
1094
|
model_list=model_list,
|
1051
1095
|
extra_headers=extra_headers,
|
1096
|
+
verbose=verbose,
|
1097
|
+
debug=debug,
|
1052
1098
|
)
|
@@ -275,6 +275,8 @@ def run_language_model(
|
|
275
275
|
messages: "LanguageModelMessages",
|
276
276
|
instructions: Optional[str] = None,
|
277
277
|
mock_response: Optional[bool] = None,
|
278
|
+
verbose: bool = False,
|
279
|
+
debug: bool = False,
|
278
280
|
**kwargs: Any,
|
279
281
|
) -> Union["LanguageModelResponse[Any]", "LanguageModelStream[Any]"]:
|
280
282
|
"""Run a language model request with full parameter support.
|
@@ -282,6 +284,8 @@ def run_language_model(
|
|
282
284
|
Args:
|
283
285
|
messages: The input messages/content for the request
|
284
286
|
instructions: Optional system instructions to prepend
|
287
|
+
verbose: If True, set logger to INFO level for detailed output
|
288
|
+
debug: If True, set logger to DEBUG level for maximum verbosity
|
285
289
|
**kwargs: All request parameters from LanguageModelRequest
|
286
290
|
|
287
291
|
Returns:
|
@@ -291,11 +295,16 @@ def run_language_model(
|
|
291
295
|
model = kwargs.pop("model", "openai/gpt-4o-mini")
|
292
296
|
|
293
297
|
# Create language model instance
|
294
|
-
language_model = LanguageModel(model=model)
|
298
|
+
language_model = LanguageModel(model=model, verbose=verbose, debug=debug)
|
295
299
|
|
296
300
|
# Forward to the instance method
|
297
301
|
return language_model.run(
|
298
|
-
messages,
|
302
|
+
messages,
|
303
|
+
instructions,
|
304
|
+
mock_response=mock_response,
|
305
|
+
verbose=verbose,
|
306
|
+
debug=debug,
|
307
|
+
**kwargs,
|
299
308
|
)
|
300
309
|
|
301
310
|
|
@@ -528,6 +537,8 @@ async def async_run_language_model(
|
|
528
537
|
messages: "LanguageModelMessages",
|
529
538
|
instructions: Optional[str] = None,
|
530
539
|
mock_response: Optional[bool] = None,
|
540
|
+
verbose: bool = False,
|
541
|
+
debug: bool = False,
|
531
542
|
**kwargs: Any,
|
532
543
|
) -> Union["LanguageModelResponse[Any]", "LanguageModelStream[Any]"]:
|
533
544
|
"""Run an async language model request with full parameter support.
|
@@ -535,6 +546,8 @@ async def async_run_language_model(
|
|
535
546
|
Args:
|
536
547
|
messages: The input messages/content for the request
|
537
548
|
instructions: Optional system instructions to prepend
|
549
|
+
verbose: If True, set logger to INFO level for detailed output
|
550
|
+
debug: If True, set logger to DEBUG level for maximum verbosity
|
538
551
|
**kwargs: All request parameters from LanguageModelRequest
|
539
552
|
|
540
553
|
Returns:
|
@@ -544,9 +557,14 @@ async def async_run_language_model(
|
|
544
557
|
model = kwargs.pop("model", "openai/gpt-4o-mini")
|
545
558
|
|
546
559
|
# Create language model instance
|
547
|
-
language_model = LanguageModel(model=model)
|
560
|
+
language_model = LanguageModel(model=model, verbose=verbose, debug=debug)
|
548
561
|
|
549
562
|
# Forward to the instance method
|
550
563
|
return await language_model.async_run(
|
551
|
-
messages,
|
564
|
+
messages,
|
565
|
+
instructions,
|
566
|
+
mock_response=mock_response,
|
567
|
+
verbose=verbose,
|
568
|
+
debug=debug,
|
569
|
+
**kwargs,
|
552
570
|
)
|
@@ -47,7 +47,7 @@ class LanguageModelResponse(BaseGenAIModelResponse[T]):
|
|
47
47
|
In many cases with tool calling, message content is not present, in these cases
|
48
48
|
this field will **NOT** represent tool calls, and will be returned as `None`."""
|
49
49
|
|
50
|
-
completion:
|
50
|
+
completion: Any
|
51
51
|
"""The raw Chat Completion (`litellm.ModelResponse`) object returned by the
|
52
52
|
language model."""
|
53
53
|
|
hammad/genai/types/tools.py
CHANGED
@@ -75,7 +75,7 @@ def extract_tool_calls_from_response(
|
|
75
75
|
) -> List[Any]:
|
76
76
|
"""Extract tool calls from various response types."""
|
77
77
|
# ensure type is of agent or language model
|
78
|
-
if response.type not in ["language_model", "agent"]:
|
78
|
+
if response.type not in ["language_model", "agent", "graph"]:
|
79
79
|
raise ValueError(f"Response type {response.type} is not supported")
|
80
80
|
|
81
81
|
# Handle LanguageModelResponse
|
hammad/logging/logger.py
CHANGED
@@ -534,6 +534,16 @@ class Logger:
|
|
534
534
|
|
535
535
|
return JSONFormatter()
|
536
536
|
|
537
|
+
def setLevel(
|
538
|
+
self,
|
539
|
+
level: Union[LoggerLevelName, int],
|
540
|
+
) -> None:
|
541
|
+
"""Set the logging level."""
|
542
|
+
self._user_level = level
|
543
|
+
self._logger.setLevel(level)
|
544
|
+
for handler in self._logger.handlers:
|
545
|
+
handler.setLevel(level)
|
546
|
+
|
537
547
|
def add_level(
|
538
548
|
self, name: str, value: int, style: Optional[LoggerLevelSettings] = None
|
539
549
|
) -> None:
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: hammad-python
|
3
|
-
Version: 0.0.
|
3
|
+
Version: 0.0.24
|
4
4
|
Author-email: Hammad Saeed <hammadaidev@gmail.com>
|
5
5
|
License: MIT License
|
6
6
|
|
@@ -45,6 +45,7 @@ Requires-Dist: fastapi>=0.115.6; extra == 'all'
|
|
45
45
|
Requires-Dist: instructor>=1.9.0; extra == 'all'
|
46
46
|
Requires-Dist: litellm>=1.73.6; extra == 'all'
|
47
47
|
Requires-Dist: mcp>=1.10.1; extra == 'all'
|
48
|
+
Requires-Dist: pydantic-graph>=0.4.2; extra == 'all'
|
48
49
|
Requires-Dist: qdrant-client>=1.14.3; extra == 'all'
|
49
50
|
Requires-Dist: uvicorn>=0.34.0; extra == 'all'
|
50
51
|
Provides-Extra: genai
|
@@ -52,8 +53,11 @@ Requires-Dist: fastapi>=0.115.6; extra == 'genai'
|
|
52
53
|
Requires-Dist: instructor>=1.9.0; extra == 'genai'
|
53
54
|
Requires-Dist: litellm>=1.73.6; extra == 'genai'
|
54
55
|
Requires-Dist: mcp>=1.10.1; extra == 'genai'
|
56
|
+
Requires-Dist: pydantic-graph>=0.4.2; extra == 'genai'
|
55
57
|
Requires-Dist: qdrant-client>=1.14.3; extra == 'genai'
|
56
58
|
Requires-Dist: uvicorn>=0.34.0; extra == 'genai'
|
59
|
+
Provides-Extra: graph
|
60
|
+
Requires-Dist: pydantic-graph>=0.4.2; extra == 'graph'
|
57
61
|
Provides-Extra: mcp
|
58
62
|
Requires-Dist: mcp>=1.10.1; extra == 'mcp'
|
59
63
|
Provides-Extra: serve
|
@@ -1,11 +1,6 @@
|
|
1
|
-
hammad/__init__.py,sha256=
|
1
|
+
hammad/__init__.py,sha256=4HD87ONlgDV8fLLE7xsGW_DXyubyPly7uai_X0cADws,7549
|
2
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
|
9
4
|
hammad/cache/__init__.py,sha256=29vI8UkVITtiEe7fTr9UR5Q0lV7tr_SVe7tLlJmm1Ks,954
|
10
5
|
hammad/cache/base_cache.py,sha256=kYJS2IcQtxhzT7BQBFtOWnhw4VkvAapPhAVkfbW5IeY,6353
|
11
6
|
hammad/cache/cache.py,sha256=bzDXxjSolrSdIxqES2VMfVZZGTk_8k4x9n0AW4tlifs,4621
|
@@ -15,7 +10,7 @@ hammad/cache/ttl_cache.py,sha256=-0pJ4lkVgg1OIb98bQFub9n6f4zgWVs-dQfKZe_DmpE,215
|
|
15
10
|
hammad/cli/__init__.py,sha256=DkBgA8zkdsOmReoPI5dqni5l5DGkaA7TzrIFvmy5MIo,785
|
16
11
|
hammad/cli/_runner.py,sha256=XEdao-JplTOGfdynN396ganaV_PKhyP0q5D15y7qA-8,9556
|
17
12
|
hammad/cli/animations.py,sha256=h68OuJBkDiYTLdB5pLPgQ2gpPT2c3dNulkDv2BtKHFA,19507
|
18
|
-
hammad/cli/plugins.py,sha256=
|
13
|
+
hammad/cli/plugins.py,sha256=qWFtCUZMB0Tu6WwbUg9ut1PvCT5eIIUo2S5WFejUm4A,31804
|
19
14
|
hammad/cli/styles/__init__.py,sha256=Ok7J_uhJgyswNkBWnDw50oTX9Xk1HPksUl3UbmT1qTI,1363
|
20
15
|
hammad/cli/styles/settings.py,sha256=irChf9RsMij3djx_n9D9duoVIzxLCpd9-BlKl6U_OLk,5532
|
21
16
|
hammad/cli/styles/types.py,sha256=vNIeQY_23m10K8qVT7Iy-PMwosGL-La-UAZKszHJjEE,7911
|
@@ -58,17 +53,21 @@ hammad/formatting/text/converters.py,sha256=g3z-ZGTaKNVbLFFKBSh6qN2Uz0BSkdxCaN3L
|
|
58
53
|
hammad/formatting/text/markdown.py,sha256=D17NOoGkoXUBhoOGKelKHwi72iqsAwPU5HEFjRJtLQI,3407
|
59
54
|
hammad/formatting/yaml/__init__.py,sha256=4dBeXPi0jx7ELT2_sC2fUYaiY8b8wFiUScLODc9ISEw,462
|
60
55
|
hammad/formatting/yaml/converters.py,sha256=zvSB8QGb56uvwO0KjXllfTj9g1FmNINOKR06DTjvXw8,153
|
61
|
-
hammad/genai/__init__.py,sha256=
|
62
|
-
hammad/genai/agents/__init__.py,sha256=
|
63
|
-
hammad/genai/agents/agent.py,sha256=
|
64
|
-
hammad/genai/agents/run.py,sha256=
|
56
|
+
hammad/genai/__init__.py,sha256=KbnekLr0ijsXW509dr1wE78ze_npPkbAI-A6E583CFI,4795
|
57
|
+
hammad/genai/agents/__init__.py,sha256=2PIXzdBISSKy4lfJ0vYHuT8G9oRT2GYYIESQfENt9Hk,1500
|
58
|
+
hammad/genai/agents/agent.py,sha256=4qnJ8AQHhuqcSWmfdx4qhDQaGyULfYxsfn17ZNJk8H0,80802
|
59
|
+
hammad/genai/agents/run.py,sha256=FBD2fOURc8_VPFCQAR7x9VEcDyzj8Gjz8Ki0GH2OPD0,24953
|
65
60
|
hammad/genai/agents/types/__init__.py,sha256=6X6_P82qe15dyqs-vAcXUk4na4tB-7oMdMf484v87io,1119
|
66
61
|
hammad/genai/agents/types/agent_context.py,sha256=u4evwx9B-UKEHMtNcsNlN9q8i12bsW9HhtyvmU0NNTw,313
|
67
62
|
hammad/genai/agents/types/agent_event.py,sha256=zNKXXPKKOsIO9MAhE-YNCOxeNg00O7j1mE0R1pA_Xr8,3925
|
68
63
|
hammad/genai/agents/types/agent_hooks.py,sha256=wgys4ixiHjX5oux4zVSr9OPXyAZ-iJGk_MhaOKEgMxo,7853
|
69
64
|
hammad/genai/agents/types/agent_messages.py,sha256=csjEq42bElaTZYZW2dE6nlFZc142-HgT3bB6h1KMg_w,846
|
70
|
-
hammad/genai/agents/types/agent_response.py,sha256=
|
65
|
+
hammad/genai/agents/types/agent_response.py,sha256=tQ3oNBZC_9dD7t-7tRuKA2h1a-XE5gGryVF9XcmZ5GA,3863
|
71
66
|
hammad/genai/agents/types/agent_stream.py,sha256=VIfqZp55wq6jQh_OtPzZjiL_K4cEoVCkeEZS3s_MIXI,11069
|
67
|
+
hammad/genai/graphs/__init__.py,sha256=89SvH1dpir3isJBwWsR384BF7EV8Kg7OJQt0bJXWHyo,2917
|
68
|
+
hammad/genai/graphs/base.py,sha256=X0LspElhQgWl8Xx6BoGFo2cCbhcWmUs29-VZDm3V5Vo,41494
|
69
|
+
hammad/genai/graphs/plugins.py,sha256=AK_JSo2eLCD9cdrxZ5OxxZtLVrUDcQ8f_FWBxOQPzyw,10007
|
70
|
+
hammad/genai/graphs/types.py,sha256=bk3SaBYVgKhPtWNBRfv7CpHCWE4cjvbGoW5dM0vLdI8,20661
|
72
71
|
hammad/genai/models/__init__.py,sha256=e4TbEsiKIoXENOEsdIdQcWWt0RnFdTEqCz0nICHQHtM,26
|
73
72
|
hammad/genai/models/model_provider.py,sha256=2RdOeqr7KpjyrMqq4YH4OYy1pk6sjzf2CPu1ZHa1Pdk,75
|
74
73
|
hammad/genai/models/multimodal.py,sha256=KXUyLXqM1eBgBGZFEbMw3dYbakZFAXoko2xYprronxY,1276
|
@@ -82,14 +81,14 @@ hammad/genai/models/embeddings/types/embedding_model_response.py,sha256=V2H_VTl1
|
|
82
81
|
hammad/genai/models/embeddings/types/embedding_model_run_params.py,sha256=ZGhCXrEEzMF5y-V8neF2a73Gh1emzrYUHVxWkybg5uE,1570
|
83
82
|
hammad/genai/models/embeddings/types/embedding_model_settings.py,sha256=KEwvoElXhPMSVCKW2uKwqqT2lSAAthQXmGXaV7Qk5cU,1268
|
84
83
|
hammad/genai/models/language/__init__.py,sha256=jyn5GIT0J7gcDQAbKlcW25pU7jzUY-Jl-VT4Nc8Tleg,1915
|
85
|
-
hammad/genai/models/language/model.py,sha256=
|
86
|
-
hammad/genai/models/language/run.py,sha256=
|
84
|
+
hammad/genai/models/language/model.py,sha256=se0Lflc1d9Vw-T0SlWLxIKDqNv01QkSfOR3VETNNRFw,42027
|
85
|
+
hammad/genai/models/language/run.py,sha256=7h5EOD6ar1ITrs3GiktQa7ZT5kda7rY1-XK4osQ8ADw,22031
|
87
86
|
hammad/genai/models/language/types/__init__.py,sha256=cdLnoCiVmK6T86-5CZrUJg2rxXKoSk-svyCSviUdgao,1534
|
88
87
|
hammad/genai/models/language/types/language_model_instructor_mode.py,sha256=7ywBaY24m-UKRynnX6XsfVf_hsQrM2xHAHugTgV0Vho,1008
|
89
88
|
hammad/genai/models/language/types/language_model_messages.py,sha256=e-HZ_YKXq17gwmMlpOmYUYUpBFm7Mu3aRawtjSslWXs,504
|
90
89
|
hammad/genai/models/language/types/language_model_name.py,sha256=2V70cZ47L9yIcug6LCcMHcvEJaee7gRN6DUPhLUBlsE,8056
|
91
90
|
hammad/genai/models/language/types/language_model_request.py,sha256=ZtzhCx8o6zkEBS3uTFXFLf_poDD7MnIp1y7MbKckOmI,3911
|
92
|
-
hammad/genai/models/language/types/language_model_response.py,sha256=
|
91
|
+
hammad/genai/models/language/types/language_model_response.py,sha256=uUmcaSBBb0-CrWOx1axZ-INHmgyac5ktiAbR-HyW-fk,7520
|
93
92
|
hammad/genai/models/language/types/language_model_response_chunk.py,sha256=wIzGZw732KsI-a1-uASjATA6qvBuq-7rupWoFjsAgQo,1796
|
94
93
|
hammad/genai/models/language/types/language_model_settings.py,sha256=C0EvLXZoOLgPZ4bX7mVFs_CWP-jam27qkseJRGsBAfQ,2794
|
95
94
|
hammad/genai/models/language/types/language_model_stream.py,sha256=XgJ83JSbtTdf7jeLQMrDhMfI7zp0pRrdY7JWYbZV_h0,22043
|
@@ -99,10 +98,10 @@ hammad/genai/models/language/utils/structured_outputs.py,sha256=Va7pie9AOvLbJOaD
|
|
99
98
|
hammad/genai/types/__init__.py,sha256=W0fzUnKhDynt4TkwZX8LCRYfgRTAVomSuWqPmhGu8sg,25
|
100
99
|
hammad/genai/types/base.py,sha256=VnGL45w8oR-6rWl2GfGgWX4SjMC-23RGWuN0_H2bH_I,5437
|
101
100
|
hammad/genai/types/history.py,sha256=zsfBvGMoFTHZCT7Igae-5_jszu409dVJ_wEmNw7alCk,10208
|
102
|
-
hammad/genai/types/tools.py,sha256=
|
101
|
+
hammad/genai/types/tools.py,sha256=Te4WU-MOTCoFvpMw0ddHB9NjlXvpeAYZ99Cd6pcchi4,16563
|
103
102
|
hammad/logging/__init__.py,sha256=VtskZx0bKEAJ9FHTMflhB1CzeFUxLpDT5HPgcecAXUo,701
|
104
103
|
hammad/logging/decorators.py,sha256=VbI1x3P4ft0-0BGjXq7nQgiuNqcXAA51CGmoSn47iSw,30122
|
105
|
-
hammad/logging/logger.py,sha256=
|
104
|
+
hammad/logging/logger.py,sha256=60SrmxESlE4cd_iJr6tKwjUaOkvtqQcbUCjCCeh3Nog,31987
|
106
105
|
hammad/mcp/__init__.py,sha256=5oTU-BLYjfz6fBHDH9cyWg3DpQ6Qar-jodbCR05SuWo,1123
|
107
106
|
hammad/mcp/client/__init__.py,sha256=_SfnKvd5Za-FfFoE5GcXkBY9WcwprZND9SyZ6RY--no,795
|
108
107
|
hammad/mcp/client/client.py,sha256=auKCiIJfcZkuVFRapTpqYP4PxoyIfx40gVbMYLBdTzI,20565
|
@@ -126,7 +125,7 @@ hammad/web/openapi/__init__.py,sha256=JhJQ6_laBmB2djIYFc0vgGha2GsdUe4FP1LDdZCQ5J
|
|
126
125
|
hammad/web/openapi/client.py,sha256=1pXz7KAO_0pN4kQZoWKWskXDYGiJ535TsPO1GGCiC0E,26816
|
127
126
|
hammad/web/search/__init__.py,sha256=e9A6znPIiZCz-4secyHbUs0uUGf5yAqW6wGacgx961U,24
|
128
127
|
hammad/web/search/client.py,sha256=LIx2MsHhn6cRTuq5i1mWowRTdIhPobY4GQV3S3bk9lk,36694
|
129
|
-
hammad_python-0.0.
|
130
|
-
hammad_python-0.0.
|
131
|
-
hammad_python-0.0.
|
132
|
-
hammad_python-0.0.
|
128
|
+
hammad_python-0.0.24.dist-info/METADATA,sha256=aJPgdYoABndPWZn6gLJ1aQObIHsupEBf2itoFKutXjA,6755
|
129
|
+
hammad_python-0.0.24.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
130
|
+
hammad_python-0.0.24.dist-info/licenses/LICENSE,sha256=h74yFUWjbBaodcWG5wNmm30npjl8obVcxD-1nQfUp2I,1069
|
131
|
+
hammad_python-0.0.24.dist-info/RECORD,,
|
hammad/_main/__init__.py
DELETED
hammad/_main/_fn.py
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
"""hammad._fn
|
2
|
-
|
3
|
-
Namespace resource for **DECORATORS** used at the top level
|
4
|
-
of the `hammad` package."""
|
5
|
-
|
6
|
-
|
7
|
-
class fn:
|
8
|
-
"""Top level namespace resource for decorators. This can
|
9
|
-
be used as `@hammad.fn.cached`, hammad.fn...`. All functions within
|
10
|
-
this module are decorators."""
|
11
|
-
|
12
|
-
from ..cache import cached, auto_cached
|
13
|
-
from ..genai import define_tool
|
14
|
-
from ..logging import trace, trace_cls, trace_function, trace_http
|
15
|
-
from ..service import (
|
16
|
-
serve,
|
17
|
-
)
|
18
|
-
|
19
|
-
|
20
|
-
__all__ = "fn"
|
hammad/_main/_new.py
DELETED
@@ -1,52 +0,0 @@
|
|
1
|
-
"""hammad._new
|
2
|
-
|
3
|
-
Main entrypoint for the `new` resource.
|
4
|
-
"""
|
5
|
-
|
6
|
-
|
7
|
-
class new:
|
8
|
-
"""Global factory resource for creating various objects available
|
9
|
-
throughout the package. You can find most things in here."""
|
10
|
-
|
11
|
-
from ..cache import create_cache as cache
|
12
|
-
from ..data.configurations import (
|
13
|
-
read_configuration_from_dotenv as configuration_from_dotenv,
|
14
|
-
read_configuration_from_file as configuration_from_file,
|
15
|
-
read_configuration_from_url as configuration_from_url,
|
16
|
-
read_configuration_from_os_vars as configuration_from_os_vars,
|
17
|
-
read_configuration_from_os_prefix as configuration_from_os_prefix,
|
18
|
-
)
|
19
|
-
from ..data.collections import (
|
20
|
-
create_collection as collection,
|
21
|
-
)
|
22
|
-
from ..data.sql import (
|
23
|
-
create_database as database,
|
24
|
-
)
|
25
|
-
from ..data.types import Text as text, Audio as audio, Image as image, File as file
|
26
|
-
from ..genai import (
|
27
|
-
create_embedding_model as embedding_model,
|
28
|
-
create_language_model as language_model,
|
29
|
-
create_agent as agent,
|
30
|
-
)
|
31
|
-
from ..logging import create_logger as logger
|
32
|
-
from ..mcp import (
|
33
|
-
MCPClient as mcp_client,
|
34
|
-
MCPServerSseSettings as mcp_server_sse_settings,
|
35
|
-
MCPClientSseSettings as mcp_client_sse_settings,
|
36
|
-
MCPClientStreamableHttpSettings as mcp_client_http_settings,
|
37
|
-
MCPServerStreamableHttpSettings as mcp_server_streamable_http_settings,
|
38
|
-
MCPServerStdioSettings as mcp_server_stdio_settings,
|
39
|
-
MCPClientStdioSettings as mcp_client_stdio_settings,
|
40
|
-
)
|
41
|
-
from ..service import (
|
42
|
-
create_service as service,
|
43
|
-
async_create_service as async_service,
|
44
|
-
)
|
45
|
-
from ..web import (
|
46
|
-
create_http_client as http_client,
|
47
|
-
create_openapi_client as openapi_client,
|
48
|
-
create_search_client as search_client,
|
49
|
-
)
|
50
|
-
|
51
|
-
|
52
|
-
__all__ = "new"
|
hammad/_main/_run.py
DELETED
@@ -1,50 +0,0 @@
|
|
1
|
-
"""hammad._run
|
2
|
-
|
3
|
-
Main entrypoint for the `run` command and resource at the
|
4
|
-
top level of the hammad package.
|
5
|
-
"""
|
6
|
-
|
7
|
-
|
8
|
-
class run:
|
9
|
-
"""Top level namespace resource for running various things and stuff."""
|
10
|
-
|
11
|
-
from ..genai import (
|
12
|
-
# agents
|
13
|
-
run_agent as agent,
|
14
|
-
run_agent_iter as agent_iter,
|
15
|
-
async_run_agent as async_agent,
|
16
|
-
async_run_agent_iter as async_agent_iter,
|
17
|
-
# models
|
18
|
-
run_embedding_model as embedding_model,
|
19
|
-
async_run_embedding_model as async_embedding_model,
|
20
|
-
run_language_model as language_model,
|
21
|
-
async_run_language_model as async_language_model,
|
22
|
-
run_image_edit_model as image_edit_model,
|
23
|
-
async_run_image_edit_model as async_image_edit_model,
|
24
|
-
run_image_generation_model as image_generation_model,
|
25
|
-
async_run_image_generation_model as async_image_generation_model,
|
26
|
-
run_image_variation_model as image_variation_model,
|
27
|
-
async_run_image_variation_model as async_image_variation_model,
|
28
|
-
run_reranking_model as reranking_model,
|
29
|
-
async_run_reranking_model as async_reranking_model,
|
30
|
-
run_transcription_model as transcription_model,
|
31
|
-
async_run_transcription_model as async_transcription_model,
|
32
|
-
run_tts_model as tts_model,
|
33
|
-
async_run_tts_model as async_tts_model,
|
34
|
-
)
|
35
|
-
from ..mcp import launch_mcp_servers as mcp_servers
|
36
|
-
from ..runtime import (
|
37
|
-
run_parallel as parallel,
|
38
|
-
run_sequentially as sequentially,
|
39
|
-
run_with_retry as with_retry,
|
40
|
-
)
|
41
|
-
from ..web import (
|
42
|
-
read_web_page as web_reader,
|
43
|
-
read_web_pages as web_reader_batch,
|
44
|
-
run_web_search as web_search,
|
45
|
-
run_news_search as news_search,
|
46
|
-
run_web_request as web_request,
|
47
|
-
)
|
48
|
-
|
49
|
-
|
50
|
-
__all__ = ["run"]
|
hammad/_main/_to.py
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
"""hammad._to
|
2
|
-
|
3
|
-
Top level namspace resource for converters."""
|
4
|
-
|
5
|
-
|
6
|
-
class to:
|
7
|
-
"""Converter resource"""
|
8
|
-
|
9
|
-
from ..data import (
|
10
|
-
convert_to_pydantic_field as pydantic_field,
|
11
|
-
convert_to_pydantic_model as pydantic_model,
|
12
|
-
)
|
13
|
-
from ..formatting.json import (
|
14
|
-
convert_to_json_schema as json_schema,
|
15
|
-
)
|
16
|
-
from ..formatting.text import convert_to_text as text
|
17
|
-
|
18
|
-
|
19
|
-
__all__ = "to"
|
File without changes
|
File without changes
|