diff --git a/.env b/.env index 4688642..dcebc6e 100644 --- a/.env +++ b/.env @@ -30,6 +30,10 @@ VOLCENGINE_BASE_URL=https://ark.cn-beijing.volces.com/api/v3 ANTHROPIC_API_KEY=sk-43ccdb29caa7e9ebe0db8ac0958c63f6d3a2d62e59064d3d26d94332055a9bc9 ANTHROPIC_BASE_URL=https://code.warpdevloper.cloud +# Claude 备用中转(Anthropic 风格) +ANTHROPIC_ALT_API_KEY=sk-ac5544257dcf843de887fa153c4f4a11fa5007cbae4b8f4eec895a354c89ff7b +ANTHROPIC_ALT_BASE_URL=http://98.142.250.143:8080 + # OpenAI(OpenAI 兼容风格) OPENAI_API_KEY=sk-12663c3a1ae5db0bc9aee78ffa64e7a0b95bcf7a15541040dd2bce573130f5c8 OPENAI_BASE_URL=https://re.94xy.cn/v1 diff --git a/.env.prod b/.env.prod index 0130cf5..9c361bc 100644 --- a/.env.prod +++ b/.env.prod @@ -30,6 +30,10 @@ VOLCENGINE_BASE_URL=https://ark.cn-beijing.volces.com/api/v3 ANTHROPIC_API_KEY=sk-43ccdb29caa7e9ebe0db8ac0958c63f6d3a2d62e59064d3d26d94332055a9bc9 ANTHROPIC_BASE_URL=https://code.warpdevloper.cloud +# Claude 备用中转(Anthropic 风格) +ANTHROPIC_ALT_API_KEY=sk-ac5544257dcf843de887fa153c4f4a11fa5007cbae4b8f4eec895a354c89ff7b +ANTHROPIC_ALT_BASE_URL=http://98.142.250.143:8080 + # OpenAI(OpenAI 兼容风格) OPENAI_API_KEY=sk-12663c3a1ae5db0bc9aee78ffa64e7a0b95bcf7a15541040dd2bce573130f5c8 OPENAI_BASE_URL=https://re.94xy.cn/v1 diff --git a/.env.test b/.env.test index 46891ea..a023a96 100644 --- a/.env.test +++ b/.env.test @@ -26,6 +26,10 @@ DB_POOL_TIMEOUT=30 VOLCENGINE_API_KEY=fd065993-bee2-4f31-8bf2-56d5d3012c02 VOLCENGINE_BASE_URL=https://ark.cn-beijing.volces.com/api/v3 +# Claude 备用中转(Anthropic 风格) +ANTHROPIC_ALT_API_KEY=sk-ac5544257dcf843de887fa153c4f4a11fa5007cbae4b8f4eec895a354c89ff7b +ANTHROPIC_ALT_BASE_URL=http://98.142.250.143:8080 + # OpenAI(OpenAI 兼容风格) OPENAI_API_KEY=sk-12663c3a1ae5db0bc9aee78ffa64e7a0b95bcf7a15541040dd2bce573130f5c8 OPENAI_BASE_URL=https://re.94xy.cn/v1 diff --git a/app/ai/model_config.py b/app/ai/model_config.py index 3601ffb..6c141e6 100644 --- a/app/ai/model_config.py +++ b/app/ai/model_config.py @@ -9,14 +9,14 @@ from app.ai.models import LLM class JobCleanModel: """岗位清洗模块""" # 第一次AI:结构化提取岗位信息 - STRUCTURE = LLM.GPT_5_4_MINI.create(temperature=0) + STRUCTURE = LLM.CLAUDE_SONNET_4_5.create(temperature=0) # 第二次AI:专业匹配 - MAJOR_MATCH = LLM.GPT_5_4_MINI.create(temperature=0) + MAJOR_MATCH = LLM.CLAUDE_SONNET_4_5.create(temperature=0) # 第三次AI:技能提取 - SKILL_EXTRACT = LLM.GPT_5_4_MINI.create(temperature=0) + SKILL_EXTRACT = LLM.CLAUDE_SONNET_4_5.create(temperature=0) class CompanyCleanModel: """公司补充模块""" # 公司信息补充 - ENRICH = LLM.GPT_5_4_MINI.create(temperature=0) + ENRICH = LLM.CLAUDE_SONNET_4_5.create(temperature=0) diff --git a/app/ai/models.py b/app/ai/models.py index 8e55267..ef843c9 100644 --- a/app/ai/models.py +++ b/app/ai/models.py @@ -18,6 +18,7 @@ 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) +_ANTHROPIC_ALT = (lambda: settings.anthropic_alt_api_key, lambda: settings.anthropic_alt_base_url) _OPENAI = (lambda: settings.openai_api_key, lambda: settings.openai_base_url) @@ -33,6 +34,7 @@ class LLM(Enum): # Claude(Anthropic 风格) CLAUDE_OPUS = ("claude-opus-4-6", ChatAnthropic, *_ANTHROPIC) + CLAUDE_SONNET_4_5 = ("claude-sonnet-4-5-20250929", ChatAnthropic, *_ANTHROPIC_ALT) # OpenAI(OpenAI 兼容) GPT_5_4_MINI = ("gpt-5.4-mini", ChatOpenAI, *_OPENAI) diff --git a/app/config/settings.py b/app/config/settings.py index 4d5ece6..435e472 100644 --- a/app/config/settings.py +++ b/app/config/settings.py @@ -37,6 +37,10 @@ class Settings(BaseSettings): anthropic_api_key: str = "sk-43ccdb29caa7e9ebe0db8ac0958c63f6d3a2d62e59064d3d26d94332055a9bc9" anthropic_base_url: str = "https://code.warpdevloper.cloud" + # Claude 备用中转(Anthropic 风格) + anthropic_alt_api_key: str = "sk-ac5544257dcf843de887fa153c4f4a11fa5007cbae4b8f4eec895a354c89ff7b" + anthropic_alt_base_url: str = "http://98.142.250.143:8080" + # OpenAI(OpenAI 兼容风格) openai_api_key: str = "sk-12663c3a1ae5db0bc9aee78ffa64e7a0b95bcf7a15541040dd2bce573130f5c8" openai_base_url: str = "https://re.94xy.cn/v1"