{"repo": "aobing-code/fishrouter", "files": {"app/platforms.py": {"192cac6690d376134b8a4c58090f0ffe584df96a": {"t": 1785674528.0607116, "n": 6534, "h": "68388e6a11f9fddd", "c": "\"\"\"Common API Platform Presets\"\"\"\n\nAPI_PLATFORMS = [\n {\n \"name\": \"OpenAI\",\n \"type\": \"openai\",\n \"url\": \"https://api.openai.com/v1\",\n \"icon\": \"🟢\",\n \"description\": \"GPT-4, GPT-3.5, DALL-E, Whisper\",\n \"models_url\": \"/models\",\n \"auth_type\": \"bearer\",\n \"docs_url\": \"https://platform.openai.com/docs/api-reference\"\n },\n {\n \"name\": \"Azure OpenAI\",\n \"type\": \"openai\",\n \"url\": \"https://{resource}.openai.azure.com/openai\",\n \"icon\": \"🔵\",\n \"description\": \"Azure-hosted OpenAI models\",\n \"models_url\": \"/deployments?api-version=2022-12-01\",\n \"auth_type\": \"api-key\",\n \"docs_url\": \"https://learn.microsoft.com/azure/ai-services/openai/\"\n },\n {\n \"name\": \"Anthropic Claude\",\n \"type\": \"anthropic\",\n \"url\": \"https://api.anthropic.com\",\n \"icon\": \"🟣\",\n \"description\": \"Claude 3.5 Sonnet, Haiku, Opus\",\n \"models_url\": \"/v1/models\",\n \"auth_type\": \"x-api-key\",\n \"docs_url\": \"https://docs.anthropic.com/claude/reference\"\n },\n {\n \"name\": \"Google Gemini\",\n \"type\": \"google\",\n \"url\": \"https://generativelanguage.googleapis.com\",\n \"icon\": \"🔴\",\n \"description\": \"Gemini 1.5 Pro, Flash, Embeddings\",\n \"models_url\": \"/v1beta/models\",\n \"auth_type\": \"query-param\",\n \"docs_url\": \"https://ai.google.dev/docs\"\n },\n {\n \"name\": \"Ollama (本地)\",\n \"type\": \"ollama\",\n \"url\": \"http://localhost:11434\",\n \"icon\": \"🦙\",\n \"description\": \"本地运行 Llama, Qwen, Mistral 等\",\n \"models_url\": \"/api/tags\",\n \"auth_type\": \"none\",\n \"docs_url\": \"https://ollama.ai\"\n },\n {\n \"name\": \"DeepSeek\",\n \"type\": \"openai\",\n \"url\": \"https://api.deepseek.com\",\n \"icon\": \"🐋\",\n \"description\": \"DeepSeek-V3, DeepSeek-R1\",\n \"models_url\": \"/models\",\n \"auth_type\": \"bearer\",\n \"docs_url\": \"https://platform.deepseek.com\"\n },\n {\n \"name\": \"SiliconFlow (硅基流动)\",\n \"type\": \"openai\",\n \"url\": \"https://api.siliconflow.cn/v1\",\n \"icon\": \"🔶\",\n \"description\": \"国内可用,支持多种开源模型\",\n \"models_url\": \"/models\",\n \"auth_type\": \"bearer\",\n \"docs_url\": \"https://cloud.siliconflow.cn\"\n },\n {\n \"name\": \"OpenRouter\",\n \"type\": \"openai\",\n \"url\": \"https://openrouter.ai/api/v1\",\n \"icon\": \"🌐\",\n \"description\": \"聚合多种模型,支持免费模型\",\n \"models_url\": \"/models\",\n \"auth_type\": \"bearer\",\n \"docs_url\": \"https://openrouter.ai/docs\"\n },\n {\n \"name\": \"智谱 AI (Zhipu)\",\n \"type\": \"openai\",\n \"url\": \"https://open.bigmodel.cn/api/paas/v4\",\n \"icon\": \"🧠\",\n \"description\": \"GLM-4, GLM-3-Turbo, CogView\",\n \"models_url\": \"/models\",\n \"auth_type\": \"bearer\",\n \"docs_url\": \"https://open.bigmodel.cn/dev/api\"\n },\n {\n \"name\": \"通义千问 (DashScope)\",\n \"type\": \"openai\",\n \"url\": \"https://dashscope.aliyuncs.com/compatible-mode/v1\",\n \"icon\": \"💎\",\n \"description\": \"Qwen-Max, Qwen-Plus, Qwen-Turbo\",\n \"models_url\": \"/models\",\n \"auth_type\": \"bearer\",\n \"docs_url\": \"https://help.aliyun.com/zh/dashscope\"\n },\n {\n \"name\": \"Moonshot (月之暗面)\",\n \"type\": \"openai\",\n \"url\": \"https://api.moonshot.cn/v1\",\n \"icon\": \"🌙\",\n \"description\": \"Moonshot-V1-8K/32K/128K\",\n \"models_url\": \"/models\",\n \"auth_type\": \"bearer\",\n \"docs_url\": \"https://platform.moonshot.cn/docs\"\n },\n {\n \"name\": \"MiniMax\",\n \"type\": \"openai\",\n \"url\": \"https://api.minimax.chat/v1\",\n \"icon\": \"🤖\",\n \"description\": \"abab6, abab5.5 系列\",\n \"models_url\": \"/models\",\n \"auth_type\": \"bearer\",\n \"docs_url\": \"https://platform.minimaxi.com\"\n },\n {\n \"name\": \"百川智能 (Baichuan)\",\n \"type\": \"openai\",\n \"url\": \"https://api.baichuan-ai.com/v1\",\n \"icon\": \"🌊\",\n \"description\": \"Baichuan2-Turbo, Baichuan3-Turbo\",\n \"models_url\": \"/models\",\n \"auth_type\": \"bearer\",\n \"docs_url\": \"https://platform.baichuan-ai.com\"\n },\n {\n \"name\": \"零一万物 (Yi)\",\n \"type\": \"openai\",\n \"url\": \"https://api.lingyiwanwu.com/v1\",\n \"icon\": \"🌟\",\n \"description\": \"Yi-Large, Yi-Medium, Yi-Sparks\",\n \"models_url\": \"/models\",\n \"auth_type\": \"bearer\",\n \"docs_url\": \"https://platform.lingyiwanwu.com\"\n },\n {\n \"name\": \"vLLM (自部署)\",\n \"type\": \"openai\",\n \"url\": \"http://localhost:8000/v1\",\n \"icon\": \"⚡\",\n \"description\": \"自部署 vLLM 服务\",\n \"models_url\": \"/models\",\n \"auth_type\": \"bearer\",\n \"docs_url\": \"https://docs.vllm.ai\"\n },\n {\n \"name\": \"LM Studio (本地)\",\n \"type\": \"openai\",\n \"url\": \"http://localhost:1234/v1\",\n \"icon\": \"🏠\",\n \"description\": \"本地 LM Studio 服务\",\n \"models_url\": \"/models\",\n \"auth_type\": \"none\",\n \"docs_url\": \"https://lmstudio.ai\"\n },\n {\n \"name\": \"Groq\",\n \"type\": \"openai\",\n \"url\": \"https://api.groq.com/openai/v1\",\n \"icon\": \"⚡\",\n \"description\": \"超快速推理,Llama, Mixtral, Gemma\",\n \"models_url\": \"/models\",\n \"auth_type\": \"bearer\",\n \"docs_url\": \"https://console.groq.com/docs\"\n },\n {\n \"name\": \"Together AI\",\n \"type\": \"openai\",\n \"url\": \"https://api.together.xyz/v1\",\n \"icon\": \"🔗\",\n \"description\": \"多种开源模型托管服务\",\n \"models_url\": \"/models\",\n \"auth_type\": \"bearer\",\n \"docs_url\": \"https://docs.together.ai\"\n },\n {\n \"name\": \"NVIDIA NIM\",\n \"type\": \"openai\",\n \"url\": \"https://integrate.api.nvidia.com/v1\",\n \"icon\": \"🟩\",\n \"description\": \"NVIDIA 加速的推理服务\",\n \"models_url\": \"/models\",\n \"auth_type\": \"bearer\",\n \"docs_url\": \"https://build.nvidia.com\"\n },\n {\n \"name\": \"Mistral AI\",\n \"type\": \"openai\",\n \"url\": \"https://api.mistral.ai/v1\",\n \"icon\": \"💨\",\n \"description\": \"Mistral Large, Small, Codestral\",\n \"models_url\": \"/models\",\n \"auth_type\": \"bearer\",\n \"docs_url\": \"https://docs.mistral.ai\"\n },\n]\n\n\ndef get_platform_by_name(name):\n \"\"\"Get platform config by name\"\"\"\n for p in API_PLATFORMS:\n if p[\"name\"] == name:\n return p\n return None\n\n\ndef get_platform_names():\n \"\"\"Get list of platform names\"\"\"\n return [p[\"name\"] for p in API_PLATFORMS]\n"}}}}