mirror of
https://github.com/JefferyHcool/BiliNote.git
synced 2026-05-24 17:50:18 +08:00
## 主要更新 ### 新增功能 - 新增 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>
27 lines
999 B
Python
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) |