# # Copyright 2024 The InfiniFlow Authors. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # from typing import Optional, Dict, Any from pydantic import BaseModel, Field class SetApiKeyRequest(BaseModel): """设置API密钥请求模型""" llm_factory: str = Field(..., description="LLM工厂名称") api_key: str = Field(..., description="API密钥") base_url: Optional[str] = Field(None, description="基础URL") class AddLLMRequest(BaseModel): """添加LLM请求模型""" llm_factory: str = Field(..., description="LLM工厂名称") api_key: Optional[str] = Field("x", description="API密钥") llm_name: Optional[str] = Field(None, description="LLM名称") model_type: Optional[str] = Field(None, description="模型类型") api_base: Optional[str] = Field(None, description="API基础URL") max_tokens: Optional[int] = Field(None, description="最大token数") # VolcEngine specific fields ark_api_key: Optional[str] = Field(None, description="VolcEngine ARK API密钥") endpoint_id: Optional[str] = Field(None, description="VolcEngine端点ID") # Tencent Hunyuan specific fields hunyuan_sid: Optional[str] = Field(None, description="腾讯混元SID") hunyuan_sk: Optional[str] = Field(None, description="腾讯混元SK") # Tencent Cloud specific fields tencent_cloud_sid: Optional[str] = Field(None, description="腾讯云SID") tencent_cloud_sk: Optional[str] = Field(None, description="腾讯云SK") # Bedrock specific fields bedrock_ak: Optional[str] = Field(None, description="Bedrock访问密钥") bedrock_sk: Optional[str] = Field(None, description="Bedrock秘密密钥") bedrock_region: Optional[str] = Field(None, description="Bedrock区域") # XunFei Spark specific fields spark_api_password: Optional[str] = Field(None, description="讯飞Spark API密码") spark_app_id: Optional[str] = Field(None, description="讯飞Spark应用ID") spark_api_secret: Optional[str] = Field(None, description="讯飞Spark API密钥") spark_api_key: Optional[str] = Field(None, description="讯飞Spark API密钥") # BaiduYiyan specific fields yiyan_ak: Optional[str] = Field(None, description="百度文心一言AK") yiyan_sk: Optional[str] = Field(None, description="百度文心一言SK") # Fish Audio specific fields fish_audio_ak: Optional[str] = Field(None, description="Fish Audio AK") fish_audio_refid: Optional[str] = Field(None, description="Fish Audio参考ID") # Google Cloud specific fields google_project_id: Optional[str] = Field(None, description="Google Cloud项目ID") google_region: Optional[str] = Field(None, description="Google Cloud区域") google_service_account_key: Optional[str] = Field(None, description="Google Cloud服务账户密钥") # Azure OpenAI specific fields api_version: Optional[str] = Field(None, description="Azure OpenAI API版本") class DeleteLLMRequest(BaseModel): """删除LLM请求模型""" llm_factory: str = Field(..., description="LLM工厂名称") llm_name: str = Field(..., description="LLM名称") class DeleteFactoryRequest(BaseModel): """删除工厂请求模型""" llm_factory: str = Field(..., description="LLM工厂名称")