cohere-python
276 строк · 12.2 Кб
1# This file was auto-generated by Fern from our API Definition.
2
3import typing4import urllib.parse5from json.decoder import JSONDecodeError6
7from ..core.api_error import ApiError8from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper9from ..core.jsonable_encoder import jsonable_encoder10from ..core.remove_none_from_dict import remove_none_from_dict11from ..core.request_options import RequestOptions12from ..errors.bad_request_error import BadRequestError13from ..errors.internal_server_error import InternalServerError14from ..errors.too_many_requests_error import TooManyRequestsError15from ..types.compatible_endpoint import CompatibleEndpoint16from ..types.get_model_response import GetModelResponse17from ..types.list_models_response import ListModelsResponse18
19try:20import pydantic.v1 as pydantic # type: ignore21except ImportError:22import pydantic # type: ignore23
24
25class ModelsClient:26def __init__(self, *, client_wrapper: SyncClientWrapper):27self._client_wrapper = client_wrapper28
29def get(self, model: str, *, request_options: typing.Optional[RequestOptions] = None) -> GetModelResponse:30"""31Returns the details of a model, provided its name.
32
33Parameters:
34- model: str.
35
36- request_options: typing.Optional[RequestOptions]. Request-specific configuration.
37---
38from cohere.client import Client
39
40client = Client(
41client_name="YOUR_CLIENT_NAME",
42token="YOUR_TOKEN",
43)
44client.models.get(
45model="model",
46)
47"""
48_response = self._client_wrapper.httpx_client.request(49"GET",50urllib.parse.urljoin(f"{self._client_wrapper.get_base_url()}/", f"models/{jsonable_encoder(model)}"),51params=jsonable_encoder(52request_options.get("additional_query_parameters") if request_options is not None else None53),54headers=jsonable_encoder(55remove_none_from_dict(56{57**self._client_wrapper.get_headers(),58**(request_options.get("additional_headers", {}) if request_options is not None else {}),59}60)61),62timeout=request_options.get("timeout_in_seconds")63if request_options is not None and request_options.get("timeout_in_seconds") is not None64else self._client_wrapper.get_timeout(),65retries=0,66max_retries=request_options.get("max_retries") if request_options is not None else 0, # type: ignore67)68if 200 <= _response.status_code < 300:69return pydantic.parse_obj_as(GetModelResponse, _response.json()) # type: ignore70if _response.status_code == 400:71raise BadRequestError(pydantic.parse_obj_as(typing.Any, _response.json())) # type: ignore72if _response.status_code == 429:73raise TooManyRequestsError(pydantic.parse_obj_as(typing.Any, _response.json())) # type: ignore74if _response.status_code == 500:75raise InternalServerError(pydantic.parse_obj_as(typing.Any, _response.json())) # type: ignore76try:77_response_json = _response.json()78except JSONDecodeError:79raise ApiError(status_code=_response.status_code, body=_response.text)80raise ApiError(status_code=_response.status_code, body=_response_json)81
82def list(83self,84*,85page_size: typing.Optional[float] = None,86page_token: typing.Optional[str] = None,87endpoint: typing.Optional[CompatibleEndpoint] = None,88request_options: typing.Optional[RequestOptions] = None,89) -> ListModelsResponse:90"""91Returns a list of models available for use. The list contains models from Cohere as well as your fine-tuned models.
92
93Parameters:
94- page_size: typing.Optional[float]. Maximum number of models to include in a page
95Defaults to `20`, min value of `1`, max value of `1000`.
96- page_token: typing.Optional[str]. Page token provided in the `next_page_token` field of a previous response.
97
98- endpoint: typing.Optional[CompatibleEndpoint]. When provided, filters the list of models to only those that are compatible with the specified endpoint.
99
100- request_options: typing.Optional[RequestOptions]. Request-specific configuration.
101---
102from cohere.client import Client
103
104client = Client(
105client_name="YOUR_CLIENT_NAME",
106token="YOUR_TOKEN",
107)
108client.models.list()
109"""
110_response = self._client_wrapper.httpx_client.request(111"GET",112urllib.parse.urljoin(f"{self._client_wrapper.get_base_url()}/", "models"),113params=jsonable_encoder(114remove_none_from_dict(115{116"page_size": page_size,117"page_token": page_token,118"endpoint": endpoint,119**(120request_options.get("additional_query_parameters", {})121if request_options is not None122else {}123),124}125)126),127headers=jsonable_encoder(128remove_none_from_dict(129{130**self._client_wrapper.get_headers(),131**(request_options.get("additional_headers", {}) if request_options is not None else {}),132}133)134),135timeout=request_options.get("timeout_in_seconds")136if request_options is not None and request_options.get("timeout_in_seconds") is not None137else self._client_wrapper.get_timeout(),138retries=0,139max_retries=request_options.get("max_retries") if request_options is not None else 0, # type: ignore140)141if 200 <= _response.status_code < 300:142return pydantic.parse_obj_as(ListModelsResponse, _response.json()) # type: ignore143if _response.status_code == 429:144raise TooManyRequestsError(pydantic.parse_obj_as(typing.Any, _response.json())) # type: ignore145try:146_response_json = _response.json()147except JSONDecodeError:148raise ApiError(status_code=_response.status_code, body=_response.text)149raise ApiError(status_code=_response.status_code, body=_response_json)150
151
152class AsyncModelsClient:153def __init__(self, *, client_wrapper: AsyncClientWrapper):154self._client_wrapper = client_wrapper155
156async def get(self, model: str, *, request_options: typing.Optional[RequestOptions] = None) -> GetModelResponse:157"""158Returns the details of a model, provided its name.
159
160Parameters:
161- model: str.
162
163- request_options: typing.Optional[RequestOptions]. Request-specific configuration.
164---
165from cohere.client import AsyncClient
166
167client = AsyncClient(
168client_name="YOUR_CLIENT_NAME",
169token="YOUR_TOKEN",
170)
171await client.models.get(
172model="model",
173)
174"""
175_response = await self._client_wrapper.httpx_client.request(176"GET",177urllib.parse.urljoin(f"{self._client_wrapper.get_base_url()}/", f"models/{jsonable_encoder(model)}"),178params=jsonable_encoder(179request_options.get("additional_query_parameters") if request_options is not None else None180),181headers=jsonable_encoder(182remove_none_from_dict(183{184**self._client_wrapper.get_headers(),185**(request_options.get("additional_headers", {}) if request_options is not None else {}),186}187)188),189timeout=request_options.get("timeout_in_seconds")190if request_options is not None and request_options.get("timeout_in_seconds") is not None191else self._client_wrapper.get_timeout(),192retries=0,193max_retries=request_options.get("max_retries") if request_options is not None else 0, # type: ignore194)195if 200 <= _response.status_code < 300:196return pydantic.parse_obj_as(GetModelResponse, _response.json()) # type: ignore197if _response.status_code == 400:198raise BadRequestError(pydantic.parse_obj_as(typing.Any, _response.json())) # type: ignore199if _response.status_code == 429:200raise TooManyRequestsError(pydantic.parse_obj_as(typing.Any, _response.json())) # type: ignore201if _response.status_code == 500:202raise InternalServerError(pydantic.parse_obj_as(typing.Any, _response.json())) # type: ignore203try:204_response_json = _response.json()205except JSONDecodeError:206raise ApiError(status_code=_response.status_code, body=_response.text)207raise ApiError(status_code=_response.status_code, body=_response_json)208
209async def list(210self,211*,212page_size: typing.Optional[float] = None,213page_token: typing.Optional[str] = None,214endpoint: typing.Optional[CompatibleEndpoint] = None,215request_options: typing.Optional[RequestOptions] = None,216) -> ListModelsResponse:217"""218Returns a list of models available for use. The list contains models from Cohere as well as your fine-tuned models.
219
220Parameters:
221- page_size: typing.Optional[float]. Maximum number of models to include in a page
222Defaults to `20`, min value of `1`, max value of `1000`.
223- page_token: typing.Optional[str]. Page token provided in the `next_page_token` field of a previous response.
224
225- endpoint: typing.Optional[CompatibleEndpoint]. When provided, filters the list of models to only those that are compatible with the specified endpoint.
226
227- request_options: typing.Optional[RequestOptions]. Request-specific configuration.
228---
229from cohere.client import AsyncClient
230
231client = AsyncClient(
232client_name="YOUR_CLIENT_NAME",
233token="YOUR_TOKEN",
234)
235await client.models.list()
236"""
237_response = await self._client_wrapper.httpx_client.request(238"GET",239urllib.parse.urljoin(f"{self._client_wrapper.get_base_url()}/", "models"),240params=jsonable_encoder(241remove_none_from_dict(242{243"page_size": page_size,244"page_token": page_token,245"endpoint": endpoint,246**(247request_options.get("additional_query_parameters", {})248if request_options is not None249else {}250),251}252)253),254headers=jsonable_encoder(255remove_none_from_dict(256{257**self._client_wrapper.get_headers(),258**(request_options.get("additional_headers", {}) if request_options is not None else {}),259}260)261),262timeout=request_options.get("timeout_in_seconds")263if request_options is not None and request_options.get("timeout_in_seconds") is not None264else self._client_wrapper.get_timeout(),265retries=0,266max_retries=request_options.get("max_retries") if request_options is not None else 0, # type: ignore267)268if 200 <= _response.status_code < 300:269return pydantic.parse_obj_as(ListModelsResponse, _response.json()) # type: ignore270if _response.status_code == 429:271raise TooManyRequestsError(pydantic.parse_obj_as(typing.Any, _response.json())) # type: ignore272try:273_response_json = _response.json()274except JSONDecodeError:275raise ApiError(status_code=_response.status_code, body=_response.text)276raise ApiError(status_code=_response.status_code, body=_response_json)277