remove gitignore
This commit is contained in:
94
.venv/lib/python3.10/site-packages/zhipuai/_client.py
Normal file
94
.venv/lib/python3.10/site-packages/zhipuai/_client.py
Normal file
@@ -0,0 +1,94 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import Union, Mapping
|
||||
|
||||
from typing_extensions import override
|
||||
|
||||
from .core import _jwt_token
|
||||
from .core import ZhipuAIError
|
||||
from .core import HttpClient, ZHIPUAI_DEFAULT_MAX_RETRIES
|
||||
from .core import NotGiven, NOT_GIVEN
|
||||
from . import api_resource
|
||||
import os
|
||||
import httpx
|
||||
from httpx import Timeout
|
||||
|
||||
|
||||
class ZhipuAI(HttpClient):
|
||||
chat: api_resource.chat.Chat
|
||||
api_key: str
|
||||
_disable_token_cache: bool = True
|
||||
source_channel: str
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
*,
|
||||
api_key: str | None = None,
|
||||
base_url: str | httpx.URL | None = None,
|
||||
timeout: Union[float, Timeout, None, NotGiven] = NOT_GIVEN,
|
||||
max_retries: int = ZHIPUAI_DEFAULT_MAX_RETRIES,
|
||||
http_client: httpx.Client | None = None,
|
||||
custom_headers: Mapping[str, str] | None = None,
|
||||
disable_token_cache: bool = True,
|
||||
_strict_response_validation: bool = False,
|
||||
source_channel: str | None = None
|
||||
) -> None:
|
||||
if api_key is None:
|
||||
api_key = os.environ.get("ZHIPUAI_API_KEY")
|
||||
if api_key is None:
|
||||
raise ZhipuAIError("未提供api_key,请通过参数或环境变量提供")
|
||||
self.api_key = api_key
|
||||
self.source_channel = source_channel
|
||||
self._disable_token_cache = disable_token_cache
|
||||
|
||||
if base_url is None:
|
||||
base_url = os.environ.get("ZHIPUAI_BASE_URL")
|
||||
if base_url is None:
|
||||
base_url = f"https://open.bigmodel.cn/api/paas/v4"
|
||||
from .__version__ import __version__
|
||||
super().__init__(
|
||||
version=__version__,
|
||||
base_url=base_url,
|
||||
max_retries=max_retries,
|
||||
timeout=timeout,
|
||||
custom_httpx_client=http_client,
|
||||
custom_headers=custom_headers,
|
||||
_strict_response_validation=_strict_response_validation,
|
||||
)
|
||||
self.chat = api_resource.chat.Chat(self)
|
||||
self.images = api_resource.images.Images(self)
|
||||
self.embeddings = api_resource.embeddings.Embeddings(self)
|
||||
self.files = api_resource.files.Files(self)
|
||||
self.fine_tuning = api_resource.fine_tuning.FineTuning(self)
|
||||
self.batches = api_resource.Batches(self)
|
||||
self.knowledge = api_resource.Knowledge(self)
|
||||
self.tools = api_resource.Tools(self)
|
||||
self.videos = api_resource.Videos(self)
|
||||
self.assistant = api_resource.Assistant(self)
|
||||
self.web_search = api_resource.WebSearchApi(self)
|
||||
self.audio = api_resource.audio.Audio(self)
|
||||
self.moderations = api_resource.moderation.Moderations(self)
|
||||
self.agents = api_resource.agents.Agents(self)
|
||||
self.file_parser = api_resource.file_parser.FileParser(self)
|
||||
|
||||
@property
|
||||
@override
|
||||
def auth_headers(self) -> dict[str, str]:
|
||||
api_key = self.api_key
|
||||
source_channel = self.source_channel or "python-sdk"
|
||||
if self._disable_token_cache:
|
||||
return {"Authorization": f"Bearer {api_key}","x-source-channel": source_channel}
|
||||
else:
|
||||
return {"Authorization": f"Bearer {_jwt_token.generate_token(api_key)}","x-source-channel": source_channel}
|
||||
|
||||
def __del__(self) -> None:
|
||||
if (not hasattr(self, "_has_custom_http_client")
|
||||
or not hasattr(self, "close")
|
||||
or not hasattr(self, "_client")):
|
||||
# if the '__init__' method raised an error, self would not have client attr
|
||||
return
|
||||
|
||||
if self._has_custom_http_client:
|
||||
return
|
||||
|
||||
self.close()
|
||||
Reference in New Issue
Block a user