ChatAnthropic

This commit is contained in:
zk
2026-06-22 20:21:41 +08:00
parent 10000b3711
commit 300b9d9dc5
6 changed files with 43 additions and 21 deletions
+4 -4
View File
@@ -9,14 +9,14 @@ from app.ai.models import LLM
class JobCleanModel:
"""岗位清洗模块"""
# 第一次AI:结构化提取岗位信息
STRUCTURE = LLM.DOUBAO_SEED_LITE.create(temperature=0)
STRUCTURE = LLM.CLAUDE_OPUS.create(temperature=0)
# 第二次AI:专业匹配
MAJOR_MATCH = LLM.DOUBAO_SEED_LITE.create(temperature=0)
MAJOR_MATCH = LLM.CLAUDE_OPUS.create(temperature=0)
# 第三次AI:技能提取
SKILL_EXTRACT = LLM.DOUBAO_SEED_LITE.create(temperature=0)
SKILL_EXTRACT = LLM.CLAUDE_OPUS.create(temperature=0)
class CompanyCleanModel:
"""公司补充模块"""
# 公司信息补充
ENRICH = LLM.DOUBAO_SEED_LITE.create(temperature=0)
ENRICH = LLM.CLAUDE_OPUS.create(temperature=0)
+24 -12
View File
@@ -4,36 +4,48 @@ Usage:
from app.ai.models import LLM
llm = LLM.DOUBAO_SEED_LITE.create(temperature=0)
llm = LLM.CLAUDE_OPUS.create(temperature=0)
"""
from enum import Enum
from langchain_anthropic import ChatAnthropic
from langchain_core.language_models import BaseChatModel
from langchain_openai import ChatOpenAI
from app.config import settings
# 供应商连接配置
# 供应商连接配置 = (api_key函数, base_url函数)
_VOLCENGINE = (lambda: settings.volcengine_api_key, lambda: settings.volcengine_base_url)
_ANTHROPIC = (lambda: settings.anthropic_api_key, lambda: settings.anthropic_base_url)
class LLM(Enum):
"""所有可用模型,每个枚举值 = (模型名, api_key函数, base_url函数)"""
"""所有可用模型,每个枚举值 = (模型名, 封装类, api_key函数, base_url函数)"""
# 火山引擎
DOUBAO_PRO_32K = ("doubao-1-5-pro-32k-250115", *_VOLCENGINE)
DOUBAO_LITE_32K = ("doubao-1-5-lite-32k-250115", *_VOLCENGINE)
DOUBAO_SEED_LITE = ("doubao-seed-2-0-lite-260215", *_VOLCENGINE)
DOUBAO_SEED_PRO = ("doubao-seed-2-0-pro-260215", *_VOLCENGINE)
DEEPSEEK_V4_FLASH = ("deepseek-v4-flash-260425", *_VOLCENGINE)
# 火山引擎OpenAI 兼容)
DOUBAO_PRO_32K = ("doubao-1-5-pro-32k-250115", ChatOpenAI, *_VOLCENGINE)
DOUBAO_LITE_32K = ("doubao-1-5-lite-32k-250115", ChatOpenAI, *_VOLCENGINE)
DOUBAO_SEED_LITE = ("doubao-seed-2-0-lite-260215", ChatOpenAI, *_VOLCENGINE)
DOUBAO_SEED_PRO = ("doubao-seed-2-0-pro-260215", ChatOpenAI, *_VOLCENGINE)
DEEPSEEK_V4_FLASH = ("deepseek-v4-flash-260425", ChatOpenAI, *_VOLCENGINE)
def __init__(self, model_name: str, api_key_fn, base_url_fn):
# ClaudeAnthropic 风格)
CLAUDE_OPUS = ("claude-opus-4-6", ChatAnthropic, *_ANTHROPIC)
def __init__(self, model_name: str, cls, api_key_fn, base_url_fn):
self.model_name = model_name
self._cls = cls
self._api_key_fn = api_key_fn
self._base_url_fn = base_url_fn
def create(self, **kwargs) -> ChatOpenAI:
"""创建 LLM 实例,kwargs 透传给 ChatOpenAItemperature, max_tokens 等)"""
return ChatOpenAI(
def create(self, **kwargs) -> BaseChatModel:
"""创建 LLM 实例,kwargs 透传给底层封装temperature, max_tokens 等)
封装类(ChatOpenAI / ChatAnthropic)均实现 langchain BaseChatModel 接口,
对上层调用方完全透明。
"""
return self._cls(
model=self.model_name,
api_key=self._api_key_fn(),
base_url=self._base_url_fn(),