model_gateway.py 925 B

12345678910111213141516171819202122232425262728293031
  1. """模型供应商适配层,Agent Kernel 不直接依赖 DeepSeek SDK 配置。"""
  2. from typing import Protocol
  3. from langchain_core.language_models.chat_models import BaseChatModel
  4. from langchain_openai import ChatOpenAI
  5. from pydantic import SecretStr
  6. from app.core.config import Settings
  7. class ModelGateway(Protocol):
  8. def chat_model(self, persona: str) -> BaseChatModel: ...
  9. class DeepSeekModelGateway:
  10. """通过 OpenAI 兼容协议连接真实 DeepSeek。"""
  11. def __init__(self, settings: Settings) -> None:
  12. self._settings = settings
  13. def chat_model(self, persona: str) -> BaseChatModel:
  14. del persona
  15. return ChatOpenAI(
  16. model=self._settings.deepseek_model,
  17. api_key=SecretStr(self._settings.deepseek_api_key),
  18. base_url=self._settings.deepseek_base_url,
  19. temperature=0,
  20. max_retries=2,
  21. timeout=60,
  22. )