orq-ai-sdk 4.2.0rc28__py3-none-any.whl → 4.2.6__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.
- orq_ai_sdk/_hooks/globalhook.py +0 -1
- orq_ai_sdk/_version.py +3 -3
- orq_ai_sdk/audio.py +30 -0
- orq_ai_sdk/basesdk.py +20 -6
- orq_ai_sdk/chat.py +22 -0
- orq_ai_sdk/completions.py +332 -0
- orq_ai_sdk/contacts.py +43 -855
- orq_ai_sdk/deployments.py +61 -0
- orq_ai_sdk/edits.py +258 -0
- orq_ai_sdk/embeddings.py +238 -0
- orq_ai_sdk/generations.py +272 -0
- orq_ai_sdk/identities.py +1037 -0
- orq_ai_sdk/images.py +28 -0
- orq_ai_sdk/models/__init__.py +5341 -737
- orq_ai_sdk/models/actionreviewedstreamingevent.py +18 -1
- orq_ai_sdk/models/actionreviewrequestedstreamingevent.py +44 -1
- orq_ai_sdk/models/agenterroredstreamingevent.py +18 -1
- orq_ai_sdk/models/agentinactivestreamingevent.py +168 -70
- orq_ai_sdk/models/agentmessagecreatedstreamingevent.py +18 -2
- orq_ai_sdk/models/agentresponsemessage.py +18 -2
- orq_ai_sdk/models/agentstartedstreamingevent.py +127 -2
- orq_ai_sdk/models/agentthoughtstreamingevent.py +178 -211
- orq_ai_sdk/models/conversationresponse.py +31 -20
- orq_ai_sdk/models/conversationwithmessagesresponse.py +31 -20
- orq_ai_sdk/models/createagentrequestop.py +1922 -384
- orq_ai_sdk/models/createagentresponse.py +147 -91
- orq_ai_sdk/models/createagentresponserequestop.py +111 -2
- orq_ai_sdk/models/createchatcompletionop.py +1375 -861
- orq_ai_sdk/models/createchunkop.py +46 -19
- orq_ai_sdk/models/createcompletionop.py +1890 -0
- orq_ai_sdk/models/createcontactop.py +45 -56
- orq_ai_sdk/models/createconversationop.py +61 -39
- orq_ai_sdk/models/createconversationresponseop.py +68 -4
- orq_ai_sdk/models/createdatasetitemop.py +424 -80
- orq_ai_sdk/models/createdatasetop.py +19 -2
- orq_ai_sdk/models/createdatasourceop.py +92 -26
- orq_ai_sdk/models/createembeddingop.py +384 -0
- orq_ai_sdk/models/createevalop.py +552 -24
- orq_ai_sdk/models/createidentityop.py +176 -0
- orq_ai_sdk/models/createimageeditop.py +504 -0
- orq_ai_sdk/models/createimageop.py +208 -117
- orq_ai_sdk/models/createimagevariationop.py +486 -0
- orq_ai_sdk/models/createknowledgeop.py +186 -121
- orq_ai_sdk/models/creatememorydocumentop.py +50 -1
- orq_ai_sdk/models/creatememoryop.py +34 -21
- orq_ai_sdk/models/creatememorystoreop.py +34 -1
- orq_ai_sdk/models/createmoderationop.py +521 -0
- orq_ai_sdk/models/createpromptop.py +2748 -1252
- orq_ai_sdk/models/creatererankop.py +416 -0
- orq_ai_sdk/models/createresponseop.py +2567 -0
- orq_ai_sdk/models/createspeechop.py +316 -0
- orq_ai_sdk/models/createtoolop.py +537 -12
- orq_ai_sdk/models/createtranscriptionop.py +562 -0
- orq_ai_sdk/models/createtranslationop.py +540 -0
- orq_ai_sdk/models/datapart.py +18 -1
- orq_ai_sdk/models/deletechunksop.py +34 -1
- orq_ai_sdk/models/{deletecontactop.py → deleteidentityop.py} +9 -9
- orq_ai_sdk/models/deletepromptop.py +26 -0
- orq_ai_sdk/models/deploymentcreatemetricop.py +362 -76
- orq_ai_sdk/models/deploymentgetconfigop.py +635 -194
- orq_ai_sdk/models/deploymentinvokeop.py +168 -173
- orq_ai_sdk/models/deploymentsop.py +195 -58
- orq_ai_sdk/models/deploymentstreamop.py +652 -304
- orq_ai_sdk/models/errorpart.py +18 -1
- orq_ai_sdk/models/filecontentpartschema.py +18 -1
- orq_ai_sdk/models/filegetop.py +19 -2
- orq_ai_sdk/models/filelistop.py +35 -2
- orq_ai_sdk/models/filepart.py +50 -1
- orq_ai_sdk/models/fileuploadop.py +51 -2
- orq_ai_sdk/models/generateconversationnameop.py +31 -20
- orq_ai_sdk/models/get_v2_evaluators_id_versionsop.py +34 -1
- orq_ai_sdk/models/get_v2_tools_tool_id_versions_version_id_op.py +18 -1
- orq_ai_sdk/models/get_v2_tools_tool_id_versionsop.py +34 -1
- orq_ai_sdk/models/getallmemoriesop.py +34 -21
- orq_ai_sdk/models/getallmemorydocumentsop.py +42 -1
- orq_ai_sdk/models/getallmemorystoresop.py +34 -1
- orq_ai_sdk/models/getallpromptsop.py +1690 -230
- orq_ai_sdk/models/getalltoolsop.py +325 -8
- orq_ai_sdk/models/getchunkscountop.py +34 -1
- orq_ai_sdk/models/getevalsop.py +395 -43
- orq_ai_sdk/models/getonechunkop.py +14 -19
- orq_ai_sdk/models/getoneknowledgeop.py +116 -96
- orq_ai_sdk/models/getonepromptop.py +1673 -230
- orq_ai_sdk/models/getpromptversionop.py +1670 -216
- orq_ai_sdk/models/imagecontentpartschema.py +50 -1
- orq_ai_sdk/models/internal/globals.py +18 -1
- orq_ai_sdk/models/invokeagentop.py +140 -2
- orq_ai_sdk/models/invokedeploymentrequest.py +418 -80
- orq_ai_sdk/models/invokeevalop.py +160 -131
- orq_ai_sdk/models/listagentsop.py +793 -166
- orq_ai_sdk/models/listchunksop.py +32 -19
- orq_ai_sdk/models/listchunkspaginatedop.py +46 -19
- orq_ai_sdk/models/listconversationsop.py +18 -1
- orq_ai_sdk/models/listdatasetdatapointsop.py +252 -42
- orq_ai_sdk/models/listdatasetsop.py +35 -2
- orq_ai_sdk/models/listdatasourcesop.py +35 -26
- orq_ai_sdk/models/{listcontactsop.py → listidentitiesop.py} +89 -79
- orq_ai_sdk/models/listknowledgebasesop.py +132 -96
- orq_ai_sdk/models/listmodelsop.py +1 -0
- orq_ai_sdk/models/listpromptversionsop.py +1684 -216
- orq_ai_sdk/models/parseop.py +161 -17
- orq_ai_sdk/models/partdoneevent.py +19 -2
- orq_ai_sdk/models/post_v2_router_ocrop.py +408 -0
- orq_ai_sdk/models/publiccontact.py +27 -4
- orq_ai_sdk/models/publicidentity.py +62 -0
- orq_ai_sdk/models/reasoningpart.py +19 -2
- orq_ai_sdk/models/refusalpartschema.py +18 -1
- orq_ai_sdk/models/remoteconfigsgetconfigop.py +34 -1
- orq_ai_sdk/models/responsedoneevent.py +114 -84
- orq_ai_sdk/models/responsestartedevent.py +18 -1
- orq_ai_sdk/models/retrieveagentrequestop.py +787 -166
- orq_ai_sdk/models/retrievedatapointop.py +236 -42
- orq_ai_sdk/models/retrievedatasetop.py +19 -2
- orq_ai_sdk/models/retrievedatasourceop.py +17 -26
- orq_ai_sdk/models/{retrievecontactop.py → retrieveidentityop.py} +38 -41
- orq_ai_sdk/models/retrievememorydocumentop.py +18 -1
- orq_ai_sdk/models/retrievememoryop.py +18 -21
- orq_ai_sdk/models/retrievememorystoreop.py +18 -1
- orq_ai_sdk/models/retrievetoolop.py +309 -8
- orq_ai_sdk/models/runagentop.py +1451 -197
- orq_ai_sdk/models/searchknowledgeop.py +108 -1
- orq_ai_sdk/models/security.py +18 -1
- orq_ai_sdk/models/streamagentop.py +93 -2
- orq_ai_sdk/models/streamrunagentop.py +1428 -195
- orq_ai_sdk/models/textcontentpartschema.py +34 -1
- orq_ai_sdk/models/thinkingconfigenabledschema.py +18 -1
- orq_ai_sdk/models/toolcallpart.py +18 -1
- orq_ai_sdk/models/tooldoneevent.py +18 -1
- orq_ai_sdk/models/toolexecutionfailedstreamingevent.py +50 -1
- orq_ai_sdk/models/toolexecutionfinishedstreamingevent.py +34 -1
- orq_ai_sdk/models/toolexecutionstartedstreamingevent.py +34 -1
- orq_ai_sdk/models/toolresultpart.py +18 -1
- orq_ai_sdk/models/toolreviewrequestedevent.py +18 -1
- orq_ai_sdk/models/toolstartedevent.py +18 -1
- orq_ai_sdk/models/updateagentop.py +1951 -404
- orq_ai_sdk/models/updatechunkop.py +46 -19
- orq_ai_sdk/models/updateconversationop.py +61 -39
- orq_ai_sdk/models/updatedatapointop.py +424 -80
- orq_ai_sdk/models/updatedatasetop.py +51 -2
- orq_ai_sdk/models/updatedatasourceop.py +17 -26
- orq_ai_sdk/models/updateevalop.py +577 -16
- orq_ai_sdk/models/{updatecontactop.py → updateidentityop.py} +78 -68
- orq_ai_sdk/models/updateknowledgeop.py +234 -190
- orq_ai_sdk/models/updatememorydocumentop.py +50 -1
- orq_ai_sdk/models/updatememoryop.py +50 -21
- orq_ai_sdk/models/updatememorystoreop.py +66 -1
- orq_ai_sdk/models/updatepromptop.py +2844 -1450
- orq_ai_sdk/models/updatetoolop.py +592 -9
- orq_ai_sdk/models/usermessagerequest.py +18 -2
- orq_ai_sdk/moderations.py +218 -0
- orq_ai_sdk/orq_completions.py +660 -0
- orq_ai_sdk/orq_responses.py +398 -0
- orq_ai_sdk/prompts.py +28 -36
- orq_ai_sdk/rerank.py +232 -0
- orq_ai_sdk/router.py +89 -641
- orq_ai_sdk/sdk.py +3 -0
- orq_ai_sdk/speech.py +251 -0
- orq_ai_sdk/transcriptions.py +326 -0
- orq_ai_sdk/translations.py +298 -0
- orq_ai_sdk/utils/__init__.py +13 -1
- orq_ai_sdk/variations.py +254 -0
- orq_ai_sdk-4.2.6.dist-info/METADATA +888 -0
- orq_ai_sdk-4.2.6.dist-info/RECORD +263 -0
- {orq_ai_sdk-4.2.0rc28.dist-info → orq_ai_sdk-4.2.6.dist-info}/WHEEL +2 -1
- orq_ai_sdk-4.2.6.dist-info/top_level.txt +1 -0
- orq_ai_sdk-4.2.0rc28.dist-info/METADATA +0 -867
- orq_ai_sdk-4.2.0rc28.dist-info/RECORD +0 -233
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
|
-
from orq_ai_sdk.types import BaseModel
|
|
4
|
+
from orq_ai_sdk.types import BaseModel, UNSET_SENTINEL
|
|
5
5
|
from orq_ai_sdk.utils import FieldMetadata, PathParamMetadata, RequestMetadata
|
|
6
6
|
import pydantic
|
|
7
|
+
from pydantic import model_serializer
|
|
7
8
|
from typing import Any, Dict, List, Literal, Optional, Union
|
|
8
9
|
from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict
|
|
9
10
|
|
|
@@ -620,6 +621,22 @@ class SearchOptions(BaseModel):
|
|
|
620
621
|
include_scores: Optional[bool] = None
|
|
621
622
|
r"""Whether to include the scores in the chunk"""
|
|
622
623
|
|
|
624
|
+
@model_serializer(mode="wrap")
|
|
625
|
+
def serialize_model(self, handler):
|
|
626
|
+
optional_fields = set(["include_vectors", "include_metadata", "include_scores"])
|
|
627
|
+
serialized = handler(self)
|
|
628
|
+
m = {}
|
|
629
|
+
|
|
630
|
+
for n, f in type(self).model_fields.items():
|
|
631
|
+
k = f.alias or n
|
|
632
|
+
val = serialized.get(k)
|
|
633
|
+
|
|
634
|
+
if val != UNSET_SENTINEL:
|
|
635
|
+
if val is not None or k not in optional_fields:
|
|
636
|
+
m[k] = val
|
|
637
|
+
|
|
638
|
+
return m
|
|
639
|
+
|
|
623
640
|
|
|
624
641
|
class RerankConfigTypedDict(TypedDict):
|
|
625
642
|
r"""Override the rerank configuration for this search. If not provided, will use the knowledge base configured rerank settings."""
|
|
@@ -644,6 +661,22 @@ class RerankConfig(BaseModel):
|
|
|
644
661
|
top_k: Optional[int] = 10
|
|
645
662
|
r"""The number of top results to return after reranking. If not provided, will default to the knowledge base configured `top_k`."""
|
|
646
663
|
|
|
664
|
+
@model_serializer(mode="wrap")
|
|
665
|
+
def serialize_model(self, handler):
|
|
666
|
+
optional_fields = set(["threshold", "top_k"])
|
|
667
|
+
serialized = handler(self)
|
|
668
|
+
m = {}
|
|
669
|
+
|
|
670
|
+
for n, f in type(self).model_fields.items():
|
|
671
|
+
k = f.alias or n
|
|
672
|
+
val = serialized.get(k)
|
|
673
|
+
|
|
674
|
+
if val != UNSET_SENTINEL:
|
|
675
|
+
if val is not None or k not in optional_fields:
|
|
676
|
+
m[k] = val
|
|
677
|
+
|
|
678
|
+
return m
|
|
679
|
+
|
|
647
680
|
|
|
648
681
|
class AgenticRagConfigTypedDict(TypedDict):
|
|
649
682
|
r"""Override the agentic RAG configuration for this search. If not provided, will use the knowledge base configured agentic RAG settings."""
|
|
@@ -707,6 +740,32 @@ class SearchKnowledgeRequestBody(BaseModel):
|
|
|
707
740
|
agentic_rag_config: Optional[AgenticRagConfig] = None
|
|
708
741
|
r"""Override the agentic RAG configuration for this search. If not provided, will use the knowledge base configured agentic RAG settings."""
|
|
709
742
|
|
|
743
|
+
@model_serializer(mode="wrap")
|
|
744
|
+
def serialize_model(self, handler):
|
|
745
|
+
optional_fields = set(
|
|
746
|
+
[
|
|
747
|
+
"top_k",
|
|
748
|
+
"threshold",
|
|
749
|
+
"search_type",
|
|
750
|
+
"filter_by",
|
|
751
|
+
"search_options",
|
|
752
|
+
"rerank_config",
|
|
753
|
+
"agentic_rag_config",
|
|
754
|
+
]
|
|
755
|
+
)
|
|
756
|
+
serialized = handler(self)
|
|
757
|
+
m = {}
|
|
758
|
+
|
|
759
|
+
for n, f in type(self).model_fields.items():
|
|
760
|
+
k = f.alias or n
|
|
761
|
+
val = serialized.get(k)
|
|
762
|
+
|
|
763
|
+
if val != UNSET_SENTINEL:
|
|
764
|
+
if val is not None or k not in optional_fields:
|
|
765
|
+
m[k] = val
|
|
766
|
+
|
|
767
|
+
return m
|
|
768
|
+
|
|
710
769
|
|
|
711
770
|
class SearchKnowledgeRequestTypedDict(TypedDict):
|
|
712
771
|
knowledge_id: str
|
|
@@ -727,6 +786,22 @@ class SearchKnowledgeRequest(BaseModel):
|
|
|
727
786
|
] = None
|
|
728
787
|
r"""A search request for chunks in a knowledge base"""
|
|
729
788
|
|
|
789
|
+
@model_serializer(mode="wrap")
|
|
790
|
+
def serialize_model(self, handler):
|
|
791
|
+
optional_fields = set(["RequestBody"])
|
|
792
|
+
serialized = handler(self)
|
|
793
|
+
m = {}
|
|
794
|
+
|
|
795
|
+
for n, f in type(self).model_fields.items():
|
|
796
|
+
k = f.alias or n
|
|
797
|
+
val = serialized.get(k)
|
|
798
|
+
|
|
799
|
+
if val != UNSET_SENTINEL:
|
|
800
|
+
if val is not None or k not in optional_fields:
|
|
801
|
+
m[k] = val
|
|
802
|
+
|
|
803
|
+
return m
|
|
804
|
+
|
|
730
805
|
|
|
731
806
|
class ScoresTypedDict(TypedDict):
|
|
732
807
|
rerank_score: NotRequired[float]
|
|
@@ -738,6 +813,22 @@ class Scores(BaseModel):
|
|
|
738
813
|
|
|
739
814
|
search_score: Optional[float] = None
|
|
740
815
|
|
|
816
|
+
@model_serializer(mode="wrap")
|
|
817
|
+
def serialize_model(self, handler):
|
|
818
|
+
optional_fields = set(["rerank_score", "search_score"])
|
|
819
|
+
serialized = handler(self)
|
|
820
|
+
m = {}
|
|
821
|
+
|
|
822
|
+
for n, f in type(self).model_fields.items():
|
|
823
|
+
k = f.alias or n
|
|
824
|
+
val = serialized.get(k)
|
|
825
|
+
|
|
826
|
+
if val != UNSET_SENTINEL:
|
|
827
|
+
if val is not None or k not in optional_fields:
|
|
828
|
+
m[k] = val
|
|
829
|
+
|
|
830
|
+
return m
|
|
831
|
+
|
|
741
832
|
|
|
742
833
|
class MatchesTypedDict(TypedDict):
|
|
743
834
|
id: str
|
|
@@ -758,6 +849,22 @@ class Matches(BaseModel):
|
|
|
758
849
|
|
|
759
850
|
scores: Optional[Scores] = None
|
|
760
851
|
|
|
852
|
+
@model_serializer(mode="wrap")
|
|
853
|
+
def serialize_model(self, handler):
|
|
854
|
+
optional_fields = set(["vector", "metadata", "scores"])
|
|
855
|
+
serialized = handler(self)
|
|
856
|
+
m = {}
|
|
857
|
+
|
|
858
|
+
for n, f in type(self).model_fields.items():
|
|
859
|
+
k = f.alias or n
|
|
860
|
+
val = serialized.get(k)
|
|
861
|
+
|
|
862
|
+
if val != UNSET_SENTINEL:
|
|
863
|
+
if val is not None or k not in optional_fields:
|
|
864
|
+
m[k] = val
|
|
865
|
+
|
|
866
|
+
return m
|
|
867
|
+
|
|
761
868
|
|
|
762
869
|
class SearchKnowledgeResponseBodyTypedDict(TypedDict):
|
|
763
870
|
r"""Search knowledge base"""
|
orq_ai_sdk/models/security.py
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
|
-
from orq_ai_sdk.types import BaseModel
|
|
4
|
+
from orq_ai_sdk.types import BaseModel, UNSET_SENTINEL
|
|
5
5
|
from orq_ai_sdk.utils import FieldMetadata, SecurityMetadata
|
|
6
|
+
from pydantic import model_serializer
|
|
6
7
|
from typing import Optional
|
|
7
8
|
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
8
9
|
|
|
@@ -23,3 +24,19 @@ class Security(BaseModel):
|
|
|
23
24
|
)
|
|
24
25
|
),
|
|
25
26
|
] = None
|
|
27
|
+
|
|
28
|
+
@model_serializer(mode="wrap")
|
|
29
|
+
def serialize_model(self, handler):
|
|
30
|
+
optional_fields = set(["ApiKey"])
|
|
31
|
+
serialized = handler(self)
|
|
32
|
+
m = {}
|
|
33
|
+
|
|
34
|
+
for n, f in type(self).model_fields.items():
|
|
35
|
+
k = f.alias or n
|
|
36
|
+
val = serialized.get(k)
|
|
37
|
+
|
|
38
|
+
if val != UNSET_SENTINEL:
|
|
39
|
+
if val is not None or k not in optional_fields:
|
|
40
|
+
m[k] = val
|
|
41
|
+
|
|
42
|
+
return m
|
|
@@ -70,7 +70,7 @@ from .toolresultpart import ToolResultPart, ToolResultPartTypedDict
|
|
|
70
70
|
from dataclasses import dataclass, field
|
|
71
71
|
import httpx
|
|
72
72
|
from orq_ai_sdk.models import OrqError
|
|
73
|
-
from orq_ai_sdk.types import BaseModel
|
|
73
|
+
from orq_ai_sdk.types import BaseModel, UNSET_SENTINEL
|
|
74
74
|
from orq_ai_sdk.utils import (
|
|
75
75
|
FieldMetadata,
|
|
76
76
|
PathParamMetadata,
|
|
@@ -78,7 +78,7 @@ from orq_ai_sdk.utils import (
|
|
|
78
78
|
get_discriminator,
|
|
79
79
|
)
|
|
80
80
|
import pydantic
|
|
81
|
-
from pydantic import Discriminator, Tag
|
|
81
|
+
from pydantic import Discriminator, Tag, model_serializer
|
|
82
82
|
from typing import Any, Dict, List, Literal, Optional, Union
|
|
83
83
|
from typing_extensions import (
|
|
84
84
|
Annotated,
|
|
@@ -157,6 +157,22 @@ class StreamAgentA2AMessage(BaseModel):
|
|
|
157
157
|
message_id: Annotated[Optional[str], pydantic.Field(alias="messageId")] = None
|
|
158
158
|
r"""Optional A2A message ID in ULID format"""
|
|
159
159
|
|
|
160
|
+
@model_serializer(mode="wrap")
|
|
161
|
+
def serialize_model(self, handler):
|
|
162
|
+
optional_fields = set(["messageId"])
|
|
163
|
+
serialized = handler(self)
|
|
164
|
+
m = {}
|
|
165
|
+
|
|
166
|
+
for n, f in type(self).model_fields.items():
|
|
167
|
+
k = f.alias or n
|
|
168
|
+
val = serialized.get(k)
|
|
169
|
+
|
|
170
|
+
if val != UNSET_SENTINEL:
|
|
171
|
+
if val is not None or k not in optional_fields:
|
|
172
|
+
m[k] = val
|
|
173
|
+
|
|
174
|
+
return m
|
|
175
|
+
|
|
160
176
|
|
|
161
177
|
class StreamAgentIdentityTypedDict(TypedDict):
|
|
162
178
|
r"""Information about the identity making the request. If the identity does not exist, it will be created automatically."""
|
|
@@ -196,6 +212,22 @@ class StreamAgentIdentity(BaseModel):
|
|
|
196
212
|
tags: Optional[List[str]] = None
|
|
197
213
|
r"""A list of tags associated with the contact"""
|
|
198
214
|
|
|
215
|
+
@model_serializer(mode="wrap")
|
|
216
|
+
def serialize_model(self, handler):
|
|
217
|
+
optional_fields = set(["display_name", "email", "metadata", "logo_url", "tags"])
|
|
218
|
+
serialized = handler(self)
|
|
219
|
+
m = {}
|
|
220
|
+
|
|
221
|
+
for n, f in type(self).model_fields.items():
|
|
222
|
+
k = f.alias or n
|
|
223
|
+
val = serialized.get(k)
|
|
224
|
+
|
|
225
|
+
if val != UNSET_SENTINEL:
|
|
226
|
+
if val is not None or k not in optional_fields:
|
|
227
|
+
m[k] = val
|
|
228
|
+
|
|
229
|
+
return m
|
|
230
|
+
|
|
199
231
|
|
|
200
232
|
@deprecated(
|
|
201
233
|
"warning: ** DEPRECATED ** - This will be removed in a future release, please migrate away from it as soon as possible."
|
|
@@ -241,6 +273,22 @@ class StreamAgentContact(BaseModel):
|
|
|
241
273
|
tags: Optional[List[str]] = None
|
|
242
274
|
r"""A list of tags associated with the contact"""
|
|
243
275
|
|
|
276
|
+
@model_serializer(mode="wrap")
|
|
277
|
+
def serialize_model(self, handler):
|
|
278
|
+
optional_fields = set(["display_name", "email", "metadata", "logo_url", "tags"])
|
|
279
|
+
serialized = handler(self)
|
|
280
|
+
m = {}
|
|
281
|
+
|
|
282
|
+
for n, f in type(self).model_fields.items():
|
|
283
|
+
k = f.alias or n
|
|
284
|
+
val = serialized.get(k)
|
|
285
|
+
|
|
286
|
+
if val != UNSET_SENTINEL:
|
|
287
|
+
if val is not None or k not in optional_fields:
|
|
288
|
+
m[k] = val
|
|
289
|
+
|
|
290
|
+
return m
|
|
291
|
+
|
|
244
292
|
|
|
245
293
|
class StreamAgentThreadTypedDict(TypedDict):
|
|
246
294
|
r"""Thread information to group related requests"""
|
|
@@ -260,6 +308,22 @@ class StreamAgentThread(BaseModel):
|
|
|
260
308
|
tags: Optional[List[str]] = None
|
|
261
309
|
r"""Optional tags to differentiate or categorize threads"""
|
|
262
310
|
|
|
311
|
+
@model_serializer(mode="wrap")
|
|
312
|
+
def serialize_model(self, handler):
|
|
313
|
+
optional_fields = set(["tags"])
|
|
314
|
+
serialized = handler(self)
|
|
315
|
+
m = {}
|
|
316
|
+
|
|
317
|
+
for n, f in type(self).model_fields.items():
|
|
318
|
+
k = f.alias or n
|
|
319
|
+
val = serialized.get(k)
|
|
320
|
+
|
|
321
|
+
if val != UNSET_SENTINEL:
|
|
322
|
+
if val is not None or k not in optional_fields:
|
|
323
|
+
m[k] = val
|
|
324
|
+
|
|
325
|
+
return m
|
|
326
|
+
|
|
263
327
|
|
|
264
328
|
class StreamAgentMemoryTypedDict(TypedDict):
|
|
265
329
|
r"""Memory configuration for the agent execution. Used to associate memory stores with specific entities like users or sessions."""
|
|
@@ -329,6 +393,33 @@ class StreamAgentRequestBody(BaseModel):
|
|
|
329
393
|
stream_timeout_seconds: Optional[float] = None
|
|
330
394
|
r"""Stream timeout in seconds (1-3600). Default: 1800 (30 minutes)"""
|
|
331
395
|
|
|
396
|
+
@model_serializer(mode="wrap")
|
|
397
|
+
def serialize_model(self, handler):
|
|
398
|
+
optional_fields = set(
|
|
399
|
+
[
|
|
400
|
+
"task_id",
|
|
401
|
+
"variables",
|
|
402
|
+
"identity",
|
|
403
|
+
"contact",
|
|
404
|
+
"thread",
|
|
405
|
+
"memory",
|
|
406
|
+
"metadata",
|
|
407
|
+
"stream_timeout_seconds",
|
|
408
|
+
]
|
|
409
|
+
)
|
|
410
|
+
serialized = handler(self)
|
|
411
|
+
m = {}
|
|
412
|
+
|
|
413
|
+
for n, f in type(self).model_fields.items():
|
|
414
|
+
k = f.alias or n
|
|
415
|
+
val = serialized.get(k)
|
|
416
|
+
|
|
417
|
+
if val != UNSET_SENTINEL:
|
|
418
|
+
if val is not None or k not in optional_fields:
|
|
419
|
+
m[k] = val
|
|
420
|
+
|
|
421
|
+
return m
|
|
422
|
+
|
|
332
423
|
|
|
333
424
|
class StreamAgentRequestTypedDict(TypedDict):
|
|
334
425
|
key: str
|