diff --git a/app/services/providers/adapter_factory.py b/app/services/providers/adapter_factory.py index a77b1b6..c12fc44 100644 --- a/app/services/providers/adapter_factory.py +++ b/app/services/providers/adapter_factory.py @@ -15,6 +15,7 @@ from .vertex_adapter import VertexAdapter from .gemini_openai_adapter import GeminiOpenAIAdapter from .alibaba_adapter import AlibabaAdapter +from .zai_adapter import ZAIAdapter class ProviderAdapterFactory: @@ -181,6 +182,10 @@ class ProviderAdapterFactory: "base_url": "https://open.bigmodel.cn/api/paas/v4", "adapter": ZhipuAdapter, }, + "z.ai": { + "base_url": "https://api.z.ai/api/paas/v4", + "adapter": ZAIAdapter, + }, "azure": { "adapter": AzureAdapter, }, diff --git a/app/services/providers/zai_adapter.py b/app/services/providers/zai_adapter.py new file mode 100644 index 0000000..8dad872 --- /dev/null +++ b/app/services/providers/zai_adapter.py @@ -0,0 +1,18 @@ +from .openai_adapter import OpenAIAdapter + +# https://docs.z.ai/api-reference/llm/chat-completion#body-model +ZAI_MODELS = [ + "glm-4.5", + "glm-4.5-air", + "glm-4.5-x", + "glm-4.5-airx", + "glm-4.5-flash", + "glm-4-32b-0414-128k", +] + + +class ZAIAdapter(OpenAIAdapter): + """Adapter for Zai API""" + + async def list_models(self, api_key: str) -> list[str]: + return ZAI_MODELS \ No newline at end of file