From 7bec1b32b592bf0972793b2f1ab12e8a225e1f02 Mon Sep 17 00:00:00 2001 From: fern-api <115122769+fern-api[bot]@users.noreply.github.com> Date: Wed, 7 Feb 2024 07:06:37 +0000 Subject: [PATCH] Release v0.2.1 --- pyproject.toml | 2 +- src/superagent/__init__.py | 20 ++++++ src/superagent/core/client_wrapper.py | 2 +- src/superagent/resources/agent/client.py | 38 ++++++------ src/superagent/resources/api_user/client.py | 61 +++++++++++++++++-- src/superagent/resources/telemetry/client.py | 56 +++++++++++++++-- .../resources/workflow_config/client.py | 4 +- src/superagent/types/__init__.py | 22 +++++++ .../types/app_models_request_api_user.py | 32 ++++++++++ src/superagent/types/function_definition.py | 30 +++++++++ .../types/open_ai_assistant_parameters.py | 32 ++++++++++ ...open_ai_assistant_parameters_tools_item.py | 45 ++++++++++++++ .../types/tool_assistant_tools_code.py | 26 ++++++++ .../types/tool_assistant_tools_function.py | 29 +++++++++ .../types/tool_assistant_tools_retrieval.py | 26 ++++++++ 15 files changed, 393 insertions(+), 32 deletions(-) create mode 100644 src/superagent/types/app_models_request_api_user.py create mode 100644 src/superagent/types/function_definition.py create mode 100644 src/superagent/types/open_ai_assistant_parameters.py create mode 100644 src/superagent/types/open_ai_assistant_parameters_tools_item.py create mode 100644 src/superagent/types/tool_assistant_tools_code.py create mode 100644 src/superagent/types/tool_assistant_tools_function.py create mode 100644 src/superagent/types/tool_assistant_tools_retrieval.py diff --git a/pyproject.toml b/pyproject.toml index b05b9fe..58e6b3b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "superagent-py" -version = "v0.2.0" +version = "v0.2.1" description = "" readme = "README.md" authors = [] diff --git a/src/superagent/__init__.py b/src/superagent/__init__.py index 36e9346..51d8c5d 100644 --- a/src/superagent/__init__.py +++ b/src/superagent/__init__.py @@ -6,6 +6,7 @@ AgentRunList, AgentToolList, AgentType, + AppModelsRequestApiUser, AppModelsRequestDatasource, AppModelsRequestLlm, AppModelsRequestTool, @@ -24,11 +25,17 @@ DatasourceList, DatasourceStatus, DatasourceType, + FunctionDefinition, HttpValidationError, LlmList, LlmModel, LlmParams, LlmProvider, + OpenAiAssistantParameters, + OpenAiAssistantParametersToolsItem, + OpenAiAssistantParametersToolsItem_CodeInterpreter, + OpenAiAssistantParametersToolsItem_Function, + OpenAiAssistantParametersToolsItem_Retrieval, PrismaModelsAgent, PrismaModelsAgentDatasource, PrismaModelsAgentLlm, @@ -40,6 +47,9 @@ PrismaModelsVectorDb, PrismaModelsWorkflow, PrismaModelsWorkflowStep, + ToolAssistantToolsCode, + ToolAssistantToolsFunction, + ToolAssistantToolsRetrieval, ToolList, ToolType, ValidationError, @@ -60,6 +70,7 @@ "AgentRunList", "AgentToolList", "AgentType", + "AppModelsRequestApiUser", "AppModelsRequestDatasource", "AppModelsRequestLlm", "AppModelsRequestTool", @@ -78,11 +89,17 @@ "DatasourceList", "DatasourceStatus", "DatasourceType", + "FunctionDefinition", "HttpValidationError", "LlmList", "LlmModel", "LlmParams", "LlmProvider", + "OpenAiAssistantParameters", + "OpenAiAssistantParametersToolsItem", + "OpenAiAssistantParametersToolsItem_CodeInterpreter", + "OpenAiAssistantParametersToolsItem_Function", + "OpenAiAssistantParametersToolsItem_Retrieval", "PrismaModelsAgent", "PrismaModelsAgentDatasource", "PrismaModelsAgentLlm", @@ -95,6 +112,9 @@ "PrismaModelsWorkflow", "PrismaModelsWorkflowStep", "SuperagentEnvironment", + "ToolAssistantToolsCode", + "ToolAssistantToolsFunction", + "ToolAssistantToolsRetrieval", "ToolList", "ToolType", "UnprocessableEntityError", diff --git a/src/superagent/core/client_wrapper.py b/src/superagent/core/client_wrapper.py index 5699051..1de7b65 100644 --- a/src/superagent/core/client_wrapper.py +++ b/src/superagent/core/client_wrapper.py @@ -14,7 +14,7 @@ def get_headers(self) -> typing.Dict[str, str]: headers: typing.Dict[str, str] = { "X-Fern-Language": "Python", "X-Fern-SDK-Name": "superagent-py", - "X-Fern-SDK-Version": "v0.2.0", + "X-Fern-SDK-Version": "v0.2.1", } token = self._get_token() if token is not None: diff --git a/src/superagent/resources/agent/client.py b/src/superagent/resources/agent/client.py index 1ad3c9a..8c95bd4 100644 --- a/src/superagent/resources/agent/client.py +++ b/src/superagent/resources/agent/client.py @@ -12,11 +12,13 @@ from ...types.agent_datasosurce_list import AgentDatasosurceList from ...types.agent_list import AgentList from ...types.agent_tool_list import AgentToolList +from ...types.agent_type import AgentType from ...types.app_models_response_agent import AppModelsResponseAgent from ...types.app_models_response_agent_invoke import AppModelsResponseAgentInvoke from ...types.http_validation_error import HttpValidationError from ...types.llm_params import LlmParams from ...types.llm_provider import LlmProvider +from ...types.open_ai_assistant_parameters import OpenAiAssistantParameters try: import pydantic.v1 as pydantic # type: ignore @@ -62,14 +64,14 @@ def create( *, is_active: typing.Optional[bool] = OMIT, name: str, - type: typing.Optional[str] = OMIT, initial_message: typing.Optional[str] = OMIT, prompt: typing.Optional[str] = OMIT, llm_model: typing.Optional[str] = OMIT, llm_provider: typing.Optional[LlmProvider] = OMIT, description: typing.Optional[str] = OMIT, avatar: typing.Optional[str] = OMIT, - metadata: typing.Optional[typing.Dict[str, typing.Any]] = OMIT, + type: typing.Optional[AgentType] = OMIT, + parameters: typing.Optional[OpenAiAssistantParameters] = OMIT, ) -> AppModelsResponseAgent: """ Create a new agent @@ -79,8 +81,6 @@ def create( - name: str. - - type: typing.Optional[str]. - - initial_message: typing.Optional[str]. - prompt: typing.Optional[str]. @@ -93,13 +93,13 @@ def create( - avatar: typing.Optional[str]. - - metadata: typing.Optional[typing.Dict[str, typing.Any]]. + - type: typing.Optional[AgentType]. + + - parameters: typing.Optional[OpenAiAssistantParameters]. """ _request: typing.Dict[str, typing.Any] = {"name": name} if is_active is not OMIT: _request["isActive"] = is_active - if type is not OMIT: - _request["type"] = type if initial_message is not OMIT: _request["initialMessage"] = initial_message if prompt is not OMIT: @@ -112,8 +112,10 @@ def create( _request["description"] = description if avatar is not OMIT: _request["avatar"] = avatar - if metadata is not OMIT: - _request["metadata"] = metadata + if type is not OMIT: + _request["type"] = type.value + if parameters is not OMIT: + _request["parameters"] = parameters _response = self._client_wrapper.httpx_client.request( "POST", urllib.parse.urljoin(f"{self._client_wrapper.get_base_url()}/", "api/v1/agents"), @@ -540,14 +542,14 @@ async def create( *, is_active: typing.Optional[bool] = OMIT, name: str, - type: typing.Optional[str] = OMIT, initial_message: typing.Optional[str] = OMIT, prompt: typing.Optional[str] = OMIT, llm_model: typing.Optional[str] = OMIT, llm_provider: typing.Optional[LlmProvider] = OMIT, description: typing.Optional[str] = OMIT, avatar: typing.Optional[str] = OMIT, - metadata: typing.Optional[typing.Dict[str, typing.Any]] = OMIT, + type: typing.Optional[AgentType] = OMIT, + parameters: typing.Optional[OpenAiAssistantParameters] = OMIT, ) -> AppModelsResponseAgent: """ Create a new agent @@ -557,8 +559,6 @@ async def create( - name: str. - - type: typing.Optional[str]. - - initial_message: typing.Optional[str]. - prompt: typing.Optional[str]. @@ -571,13 +571,13 @@ async def create( - avatar: typing.Optional[str]. - - metadata: typing.Optional[typing.Dict[str, typing.Any]]. + - type: typing.Optional[AgentType]. + + - parameters: typing.Optional[OpenAiAssistantParameters]. """ _request: typing.Dict[str, typing.Any] = {"name": name} if is_active is not OMIT: _request["isActive"] = is_active - if type is not OMIT: - _request["type"] = type if initial_message is not OMIT: _request["initialMessage"] = initial_message if prompt is not OMIT: @@ -590,8 +590,10 @@ async def create( _request["description"] = description if avatar is not OMIT: _request["avatar"] = avatar - if metadata is not OMIT: - _request["metadata"] = metadata + if type is not OMIT: + _request["type"] = type.value + if parameters is not OMIT: + _request["parameters"] = parameters _response = await self._client_wrapper.httpx_client.request( "POST", urllib.parse.urljoin(f"{self._client_wrapper.get_base_url()}/", "api/v1/agents"), diff --git a/src/superagent/resources/api_user/client.py b/src/superagent/resources/api_user/client.py index 3cce6a1..e679e7c 100644 --- a/src/superagent/resources/api_user/client.py +++ b/src/superagent/resources/api_user/client.py @@ -8,6 +8,7 @@ from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper from ...core.jsonable_encoder import jsonable_encoder from ...errors.unprocessable_entity_error import UnprocessableEntityError +from ...types.app_models_request_api_user import AppModelsRequestApiUser from ...types.app_models_response_api_user import AppModelsResponseApiUser from ...types.http_validation_error import HttpValidationError @@ -24,17 +25,17 @@ class ApiUserClient: def __init__(self, *, client_wrapper: SyncClientWrapper): self._client_wrapper = client_wrapper - def create(self, *, email: str) -> AppModelsResponseApiUser: + def create(self, *, request: AppModelsRequestApiUser) -> AppModelsResponseApiUser: """ Create a new API user Parameters: - - email: str. + - request: AppModelsRequestApiUser. """ _response = self._client_wrapper.httpx_client.request( "POST", urllib.parse.urljoin(f"{self._client_wrapper.get_base_url()}/", "api/v1/api-users"), - json=jsonable_encoder({"email": email}), + json=jsonable_encoder(request), headers=self._client_wrapper.get_headers(), timeout=60, ) @@ -84,22 +85,46 @@ def delete(self) -> typing.Any: raise ApiError(status_code=_response.status_code, body=_response.text) raise ApiError(status_code=_response.status_code, body=_response_json) + def indentify(self, *, request: AppModelsRequestApiUser) -> typing.Any: + """ + Indentify an api user + + Parameters: + - request: AppModelsRequestApiUser. + """ + _response = self._client_wrapper.httpx_client.request( + "POST", + urllib.parse.urljoin(f"{self._client_wrapper.get_base_url()}/", "api/v1/api-users/identify"), + json=jsonable_encoder(request), + headers=self._client_wrapper.get_headers(), + timeout=60, + ) + if 200 <= _response.status_code < 300: + return pydantic.parse_obj_as(typing.Any, _response.json()) # type: ignore + if _response.status_code == 422: + raise UnprocessableEntityError(pydantic.parse_obj_as(HttpValidationError, _response.json())) # type: ignore + try: + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, body=_response.text) + raise ApiError(status_code=_response.status_code, body=_response_json) + class AsyncApiUserClient: def __init__(self, *, client_wrapper: AsyncClientWrapper): self._client_wrapper = client_wrapper - async def create(self, *, email: str) -> AppModelsResponseApiUser: + async def create(self, *, request: AppModelsRequestApiUser) -> AppModelsResponseApiUser: """ Create a new API user Parameters: - - email: str. + - request: AppModelsRequestApiUser. """ _response = await self._client_wrapper.httpx_client.request( "POST", urllib.parse.urljoin(f"{self._client_wrapper.get_base_url()}/", "api/v1/api-users"), - json=jsonable_encoder({"email": email}), + json=jsonable_encoder(request), headers=self._client_wrapper.get_headers(), timeout=60, ) @@ -148,3 +173,27 @@ async def delete(self) -> typing.Any: except JSONDecodeError: raise ApiError(status_code=_response.status_code, body=_response.text) raise ApiError(status_code=_response.status_code, body=_response_json) + + async def indentify(self, *, request: AppModelsRequestApiUser) -> typing.Any: + """ + Indentify an api user + + Parameters: + - request: AppModelsRequestApiUser. + """ + _response = await self._client_wrapper.httpx_client.request( + "POST", + urllib.parse.urljoin(f"{self._client_wrapper.get_base_url()}/", "api/v1/api-users/identify"), + json=jsonable_encoder(request), + headers=self._client_wrapper.get_headers(), + timeout=60, + ) + if 200 <= _response.status_code < 300: + return pydantic.parse_obj_as(typing.Any, _response.json()) # type: ignore + if _response.status_code == 422: + raise UnprocessableEntityError(pydantic.parse_obj_as(HttpValidationError, _response.json())) # type: ignore + try: + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, body=_response.text) + raise ApiError(status_code=_response.status_code, body=_response_json) diff --git a/src/superagent/resources/telemetry/client.py b/src/superagent/resources/telemetry/client.py index 350f7b5..1934f14 100644 --- a/src/superagent/resources/telemetry/client.py +++ b/src/superagent/resources/telemetry/client.py @@ -21,17 +21,41 @@ class TelemetryClient: def __init__(self, *, client_wrapper: SyncClientWrapper): self._client_wrapper = client_wrapper - def list_runs(self, *, agent_id: typing.Optional[str] = None) -> AgentRunList: + def list_runs( + self, + *, + agent_id: typing.Optional[str] = None, + from_page: typing.Optional[int] = None, + to_page: typing.Optional[int] = None, + limit: typing.Optional[int] = None, + workflow_id: typing.Optional[str] = None, + ) -> AgentRunList: """ List runs Parameters: - agent_id: typing.Optional[str]. + + - from_page: typing.Optional[int]. + + - to_page: typing.Optional[int]. + + - limit: typing.Optional[int]. + + - workflow_id: typing.Optional[str]. """ _response = self._client_wrapper.httpx_client.request( "GET", urllib.parse.urljoin(f"{self._client_wrapper.get_base_url()}/", "api/v1/runs"), - params=remove_none_from_dict({"agent_id": agent_id}), + params=remove_none_from_dict( + { + "agent_id": agent_id, + "from_page": from_page, + "to_page": to_page, + "limit": limit, + "workflow_id": workflow_id, + } + ), headers=self._client_wrapper.get_headers(), timeout=60, ) @@ -50,17 +74,41 @@ class AsyncTelemetryClient: def __init__(self, *, client_wrapper: AsyncClientWrapper): self._client_wrapper = client_wrapper - async def list_runs(self, *, agent_id: typing.Optional[str] = None) -> AgentRunList: + async def list_runs( + self, + *, + agent_id: typing.Optional[str] = None, + from_page: typing.Optional[int] = None, + to_page: typing.Optional[int] = None, + limit: typing.Optional[int] = None, + workflow_id: typing.Optional[str] = None, + ) -> AgentRunList: """ List runs Parameters: - agent_id: typing.Optional[str]. + + - from_page: typing.Optional[int]. + + - to_page: typing.Optional[int]. + + - limit: typing.Optional[int]. + + - workflow_id: typing.Optional[str]. """ _response = await self._client_wrapper.httpx_client.request( "GET", urllib.parse.urljoin(f"{self._client_wrapper.get_base_url()}/", "api/v1/runs"), - params=remove_none_from_dict({"agent_id": agent_id}), + params=remove_none_from_dict( + { + "agent_id": agent_id, + "from_page": from_page, + "to_page": to_page, + "limit": limit, + "workflow_id": workflow_id, + } + ), headers=self._client_wrapper.get_headers(), timeout=60, ) diff --git a/src/superagent/resources/workflow_config/client.py b/src/superagent/resources/workflow_config/client.py index ea577eb..49ce440 100644 --- a/src/superagent/resources/workflow_config/client.py +++ b/src/superagent/resources/workflow_config/client.py @@ -19,7 +19,7 @@ class WorkflowConfigClient: def __init__(self, *, client_wrapper: SyncClientWrapper): self._client_wrapper = client_wrapper - def parse_yaml(self, workflow_id: str) -> typing.Any: + def add_config(self, workflow_id: str) -> typing.Any: """ Parameters: - workflow_id: str. @@ -45,7 +45,7 @@ class AsyncWorkflowConfigClient: def __init__(self, *, client_wrapper: AsyncClientWrapper): self._client_wrapper = client_wrapper - async def parse_yaml(self, workflow_id: str) -> typing.Any: + async def add_config(self, workflow_id: str) -> typing.Any: """ Parameters: - workflow_id: str. diff --git a/src/superagent/types/__init__.py b/src/superagent/types/__init__.py index 9d65f46..45e8ce8 100644 --- a/src/superagent/types/__init__.py +++ b/src/superagent/types/__init__.py @@ -5,6 +5,7 @@ from .agent_run_list import AgentRunList from .agent_tool_list import AgentToolList from .agent_type import AgentType +from .app_models_request_api_user import AppModelsRequestApiUser from .app_models_request_datasource import AppModelsRequestDatasource from .app_models_request_llm import AppModelsRequestLlm from .app_models_request_tool import AppModelsRequestTool @@ -23,11 +24,19 @@ from .datasource_list import DatasourceList from .datasource_status import DatasourceStatus from .datasource_type import DatasourceType +from .function_definition import FunctionDefinition from .http_validation_error import HttpValidationError from .llm_list import LlmList from .llm_model import LlmModel from .llm_params import LlmParams from .llm_provider import LlmProvider +from .open_ai_assistant_parameters import OpenAiAssistantParameters +from .open_ai_assistant_parameters_tools_item import ( + OpenAiAssistantParametersToolsItem, + OpenAiAssistantParametersToolsItem_CodeInterpreter, + OpenAiAssistantParametersToolsItem_Function, + OpenAiAssistantParametersToolsItem_Retrieval, +) from .prisma_models_agent import PrismaModelsAgent from .prisma_models_agent_datasource import PrismaModelsAgentDatasource from .prisma_models_agent_llm import PrismaModelsAgentLlm @@ -39,6 +48,9 @@ from .prisma_models_vector_db import PrismaModelsVectorDb from .prisma_models_workflow import PrismaModelsWorkflow from .prisma_models_workflow_step import PrismaModelsWorkflowStep +from .tool_assistant_tools_code import ToolAssistantToolsCode +from .tool_assistant_tools_function import ToolAssistantToolsFunction +from .tool_assistant_tools_retrieval import ToolAssistantToolsRetrieval from .tool_list import ToolList from .tool_type import ToolType from .validation_error import ValidationError @@ -55,6 +67,7 @@ "AgentRunList", "AgentToolList", "AgentType", + "AppModelsRequestApiUser", "AppModelsRequestDatasource", "AppModelsRequestLlm", "AppModelsRequestTool", @@ -73,11 +86,17 @@ "DatasourceList", "DatasourceStatus", "DatasourceType", + "FunctionDefinition", "HttpValidationError", "LlmList", "LlmModel", "LlmParams", "LlmProvider", + "OpenAiAssistantParameters", + "OpenAiAssistantParametersToolsItem", + "OpenAiAssistantParametersToolsItem_CodeInterpreter", + "OpenAiAssistantParametersToolsItem_Function", + "OpenAiAssistantParametersToolsItem_Retrieval", "PrismaModelsAgent", "PrismaModelsAgentDatasource", "PrismaModelsAgentLlm", @@ -89,6 +108,9 @@ "PrismaModelsVectorDb", "PrismaModelsWorkflow", "PrismaModelsWorkflowStep", + "ToolAssistantToolsCode", + "ToolAssistantToolsFunction", + "ToolAssistantToolsRetrieval", "ToolList", "ToolType", "ValidationError", diff --git a/src/superagent/types/app_models_request_api_user.py b/src/superagent/types/app_models_request_api_user.py new file mode 100644 index 0000000..0da0115 --- /dev/null +++ b/src/superagent/types/app_models_request_api_user.py @@ -0,0 +1,32 @@ +# This file was auto-generated by Fern from our API Definition. + +import datetime as dt +import typing + +from ..core.datetime_utils import serialize_datetime + +try: + import pydantic.v1 as pydantic # type: ignore +except ImportError: + import pydantic # type: ignore + + +class AppModelsRequestApiUser(pydantic.BaseModel): + email: str + first_name: typing.Optional[str] = pydantic.Field(alias="firstName") + last_name: typing.Optional[str] = pydantic.Field(alias="lastName") + company: typing.Optional[str] + + def json(self, **kwargs: typing.Any) -> str: + kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} + return super().json(**kwargs_with_defaults) + + def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: + kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} + return super().dict(**kwargs_with_defaults) + + class Config: + frozen = True + smart_union = True + allow_population_by_field_name = True + json_encoders = {dt.datetime: serialize_datetime} diff --git a/src/superagent/types/function_definition.py b/src/superagent/types/function_definition.py new file mode 100644 index 0000000..c4431ef --- /dev/null +++ b/src/superagent/types/function_definition.py @@ -0,0 +1,30 @@ +# This file was auto-generated by Fern from our API Definition. + +import datetime as dt +import typing + +from ..core.datetime_utils import serialize_datetime + +try: + import pydantic.v1 as pydantic # type: ignore +except ImportError: + import pydantic # type: ignore + + +class FunctionDefinition(pydantic.BaseModel): + name: typing.Optional[str] + description: typing.Optional[str] + parameters: typing.Optional[typing.Dict[str, typing.Any]] + + def json(self, **kwargs: typing.Any) -> str: + kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} + return super().json(**kwargs_with_defaults) + + def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: + kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} + return super().dict(**kwargs_with_defaults) + + class Config: + frozen = True + smart_union = True + json_encoders = {dt.datetime: serialize_datetime} diff --git a/src/superagent/types/open_ai_assistant_parameters.py b/src/superagent/types/open_ai_assistant_parameters.py new file mode 100644 index 0000000..ad51c74 --- /dev/null +++ b/src/superagent/types/open_ai_assistant_parameters.py @@ -0,0 +1,32 @@ +# This file was auto-generated by Fern from our API Definition. + +import datetime as dt +import typing + +from ..core.datetime_utils import serialize_datetime +from .open_ai_assistant_parameters_tools_item import OpenAiAssistantParametersToolsItem + +try: + import pydantic.v1 as pydantic # type: ignore +except ImportError: + import pydantic # type: ignore + + +class OpenAiAssistantParameters(pydantic.BaseModel): + metadata: typing.Optional[typing.Dict[str, typing.Any]] + file_ids: typing.Optional[typing.List[str]] = pydantic.Field(alias="fileIds") + tools: typing.Optional[typing.List[OpenAiAssistantParametersToolsItem]] + + def json(self, **kwargs: typing.Any) -> str: + kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} + return super().json(**kwargs_with_defaults) + + def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: + kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} + return super().dict(**kwargs_with_defaults) + + class Config: + frozen = True + smart_union = True + allow_population_by_field_name = True + json_encoders = {dt.datetime: serialize_datetime} diff --git a/src/superagent/types/open_ai_assistant_parameters_tools_item.py b/src/superagent/types/open_ai_assistant_parameters_tools_item.py new file mode 100644 index 0000000..75a4895 --- /dev/null +++ b/src/superagent/types/open_ai_assistant_parameters_tools_item.py @@ -0,0 +1,45 @@ +# This file was auto-generated by Fern from our API Definition. + +from __future__ import annotations + +import typing + +import typing_extensions + +from .tool_assistant_tools_code import ToolAssistantToolsCode +from .tool_assistant_tools_function import ToolAssistantToolsFunction +from .tool_assistant_tools_retrieval import ToolAssistantToolsRetrieval + + +class OpenAiAssistantParametersToolsItem_CodeInterpreter(ToolAssistantToolsCode): + type: typing_extensions.Literal["code_interpreter"] + + class Config: + frozen = True + smart_union = True + allow_population_by_field_name = True + + +class OpenAiAssistantParametersToolsItem_Retrieval(ToolAssistantToolsRetrieval): + type: typing_extensions.Literal["retrieval"] + + class Config: + frozen = True + smart_union = True + allow_population_by_field_name = True + + +class OpenAiAssistantParametersToolsItem_Function(ToolAssistantToolsFunction): + type: typing_extensions.Literal["function"] + + class Config: + frozen = True + smart_union = True + allow_population_by_field_name = True + + +OpenAiAssistantParametersToolsItem = typing.Union[ + OpenAiAssistantParametersToolsItem_CodeInterpreter, + OpenAiAssistantParametersToolsItem_Retrieval, + OpenAiAssistantParametersToolsItem_Function, +] diff --git a/src/superagent/types/tool_assistant_tools_code.py b/src/superagent/types/tool_assistant_tools_code.py new file mode 100644 index 0000000..e02b361 --- /dev/null +++ b/src/superagent/types/tool_assistant_tools_code.py @@ -0,0 +1,26 @@ +# This file was auto-generated by Fern from our API Definition. + +import datetime as dt +import typing + +from ..core.datetime_utils import serialize_datetime + +try: + import pydantic.v1 as pydantic # type: ignore +except ImportError: + import pydantic # type: ignore + + +class ToolAssistantToolsCode(pydantic.BaseModel): + def json(self, **kwargs: typing.Any) -> str: + kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} + return super().json(**kwargs_with_defaults) + + def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: + kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} + return super().dict(**kwargs_with_defaults) + + class Config: + frozen = True + smart_union = True + json_encoders = {dt.datetime: serialize_datetime} diff --git a/src/superagent/types/tool_assistant_tools_function.py b/src/superagent/types/tool_assistant_tools_function.py new file mode 100644 index 0000000..b14a2b8 --- /dev/null +++ b/src/superagent/types/tool_assistant_tools_function.py @@ -0,0 +1,29 @@ +# This file was auto-generated by Fern from our API Definition. + +import datetime as dt +import typing + +from ..core.datetime_utils import serialize_datetime +from .function_definition import FunctionDefinition + +try: + import pydantic.v1 as pydantic # type: ignore +except ImportError: + import pydantic # type: ignore + + +class ToolAssistantToolsFunction(pydantic.BaseModel): + function: typing.Optional[FunctionDefinition] + + def json(self, **kwargs: typing.Any) -> str: + kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} + return super().json(**kwargs_with_defaults) + + def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: + kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} + return super().dict(**kwargs_with_defaults) + + class Config: + frozen = True + smart_union = True + json_encoders = {dt.datetime: serialize_datetime} diff --git a/src/superagent/types/tool_assistant_tools_retrieval.py b/src/superagent/types/tool_assistant_tools_retrieval.py new file mode 100644 index 0000000..e5c9627 --- /dev/null +++ b/src/superagent/types/tool_assistant_tools_retrieval.py @@ -0,0 +1,26 @@ +# This file was auto-generated by Fern from our API Definition. + +import datetime as dt +import typing + +from ..core.datetime_utils import serialize_datetime + +try: + import pydantic.v1 as pydantic # type: ignore +except ImportError: + import pydantic # type: ignore + + +class ToolAssistantToolsRetrieval(pydantic.BaseModel): + def json(self, **kwargs: typing.Any) -> str: + kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} + return super().json(**kwargs_with_defaults) + + def dict(self, **kwargs: typing.Any) -> typing.Dict[str, typing.Any]: + kwargs_with_defaults: typing.Any = {"by_alias": True, "exclude_unset": True, **kwargs} + return super().dict(**kwargs_with_defaults) + + class Config: + frozen = True + smart_union = True + json_encoders = {dt.datetime: serialize_datetime}