Files
BiliNote/backend/app/gpt/gpt_factory.py
yangyuguang ab8cdc416a feat: 添加硅基流动(SiliconFlow)支持和错误处理优化
## 主要更新

### 新增功能
- 新增 SiliconFlow_provider.py 专用提供商
- 添加硅基流动 API 集成文档
- 实现 Cherry Studio 风格的连接测试

### 错误处理优化
- 修复前端 Form.tsx 错误显示问题
- 改进 universal_gpt.py 异常处理逻辑
- 统一 URL 格式处理,避免路径重复

### 兼容性改进
- 优化 OpenAI 兼容提供商 URL 处理
- 增强模型列表获取的容错性
- 添加详细的调试日志

### 安全性提升
- 更新 .gitignore 保护敏感信息
- 移除示例配置文件

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-13 09:53:39 +08:00

27 lines
999 B
Python

from openai import OpenAI
from app.gpt.base import GPT
from app.gpt.provider.OpenAI_compatible_provider import OpenAICompatibleProvider
from app.gpt.provider.SiliconFlow_provider import SiliconFlowProvider
from app.gpt.universal_gpt import UniversalGPT
from app.models.model_config import ModelConfig
class GPTFactory:
@staticmethod
def from_config(config: ModelConfig) -> GPT:
# 检查是否是硅基流动,使用专门的提供商类
if "siliconflow" in config.base_url.lower():
client = SiliconFlowProvider(
api_key=config.api_key,
base_url=config.base_url,
model=config.model_name
).get_client
else:
# 其他提供商使用通用兼容类
client = OpenAICompatibleProvider(
api_key=config.api_key,
base_url=config.base_url
).get_client
return UniversalGPT(client=client, model=config.model_name)