From 49ca025b955135cf16f057d9ac55cb4cedf7ea6b Mon Sep 17 00:00:00 2001 From: zk Date: Thu, 23 Apr 2026 15:19:25 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=A8=A1=E5=9E=8B=E9=85=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/ai/models.py | 18 +++++++++++++----- app/ai/resume_diagnoser/diagnoser.py | 6 +++--- app/ai/resume_extractor/extractor.py | 2 +- app/ai/skill_gap_analyzer/analyzer.py | 8 ++++---- app/config/settings.py | 8 ++++---- 5 files changed, 25 insertions(+), 17 deletions(-) diff --git a/app/ai/models.py b/app/ai/models.py index a0d4795..7184d48 100644 --- a/app/ai/models.py +++ b/app/ai/models.py @@ -15,7 +15,7 @@ from app.config import settings # 供应商连接配置 _VOLCENGINE = (lambda: settings.volcengine_api_key, lambda: settings.volcengine_base_url) -_CARDIAC = (lambda: settings.cardiacBrder_api_key, lambda: settings.cardiacBrder_base_url) +_JIAYU = (lambda: settings.jiayu_api_key, lambda: settings.jiayu_base_url) _JIEKOU = (lambda: settings.jiekou_api_key, lambda: settings.jiekou_base_url) @@ -31,12 +31,20 @@ class LLM(Enum): DOUBAO_SEED_LITE = ("doubao-seed-2-0-lite-260215", *_VOLCENGINE) DOUBAO_SEED_PRO = ("doubao-seed-2-0-pro-260215", *_VOLCENGINE) - # 心缘 - GPT_4O = ("gpt-4o", *_CARDIAC) - GPT_4O_MINI = ("gpt-4o-mini", *_CARDIAC) - CLAUDE_SONNET_4 = ("claude-sonnet-4-20250514", *_JIEKOU) + # jiekou + GPT_4O = ("gpt-4o", *_JIAYU) + GPT_4O_MINI = ("gpt-4o-mini", *_JIEKOU) GEMINI_FLASH = ("gemini-2.5-flash", *_JIEKOU) + # 加鱼 + JIAYU_CLAUDE_SONNET_4_5 = ("claude-sonnet-4.5", *_JIAYU) + JIAYU_CLAUDE_HAIKU_4_5 = ("claude-haiku-4.5", *_JIAYU) + JIAYU_DEEPSEEK_3_2 = ("deepseek-3.2", *_JIAYU) + JIAYU_GLM_5 = ("glm-5", *_JIAYU) + JIAYU_QWEN3_CODER_NEXT = ("qwen3-coder-next", *_JIAYU) + JIAYU_MINIMAX_M2_5 = ("minimax-m2.5", *_JIAYU) + + def __init__(self, model_name: str, api_key_fn, base_url_fn): self.model_name = model_name self._api_key_fn = api_key_fn diff --git a/app/ai/resume_diagnoser/diagnoser.py b/app/ai/resume_diagnoser/diagnoser.py index 94067dd..b70bf74 100644 --- a/app/ai/resume_diagnoser/diagnoser.py +++ b/app/ai/resume_diagnoser/diagnoser.py @@ -23,14 +23,14 @@ def _parse_json(text: str) -> dict: # 诊断链(StrOutputParser 拿原始文本,再手动解析 JSON,避免 markdown 代码块导致解析失败) _diagnose_chain = ( ChatPromptTemplate.from_messages([("system", DIAGNOSE_MODULE_PROMPT), ("human", "请开始诊断。")]) - | LLM.CLAUDE_SONNET_4.create(temperature=0) + | LLM.JIAYU_CLAUDE_SONNET_4_5.create(temperature=0) | StrOutputParser() ) # 汇总评价链(纯文本输出) _summary_chain = ( ChatPromptTemplate.from_messages([("system", SUMMARY_PROMPT), ("human", "请生成整体评价。")]) - | LLM.CLAUDE_SONNET_4.create(temperature=0.3) + | LLM.JIAYU_CLAUDE_SONNET_4_5.create(temperature=0.3) | StrOutputParser() ) @@ -64,7 +64,7 @@ async def generate_summary(grade: str, urgent_total: int, important_total: int, _polish_chain = ( ChatPromptTemplate.from_messages([("system", POLISH_PROMPT), ("human", "请开始优化。")]) - | LLM.CLAUDE_SONNET_4.create(temperature=0.3) + | LLM.JIAYU_CLAUDE_SONNET_4_5.create(temperature=0.3) | StrOutputParser() ) diff --git a/app/ai/resume_extractor/extractor.py b/app/ai/resume_extractor/extractor.py index 87490ef..0093900 100644 --- a/app/ai/resume_extractor/extractor.py +++ b/app/ai/resume_extractor/extractor.py @@ -17,7 +17,7 @@ def _build_chain(prompt: str): """构建单个提取链:prompt → LLM → JSON解析""" return ( ChatPromptTemplate.from_messages([("system", prompt), ("human", "{text}")]) - | LLM.CLAUDE_SONNET_4.create(temperature=0) + | LLM.JIAYU_CLAUDE_SONNET_4_5.create(temperature=0) | JsonOutputParser() ) diff --git a/app/ai/skill_gap_analyzer/analyzer.py b/app/ai/skill_gap_analyzer/analyzer.py index ad1580f..cf4f894 100644 --- a/app/ai/skill_gap_analyzer/analyzer.py +++ b/app/ai/skill_gap_analyzer/analyzer.py @@ -52,7 +52,7 @@ async def analyze_skill_gap(skill_tags: list[str], resume_json: str) -> list[str _summary_optimize_chain = ( ChatPromptTemplate.from_messages([("system", SUMMARY_OPTIMIZE_PROMPT), ("human", "请开始优化。")]) - | LLM.GPT_4O.create(temperature=0.3) + | LLM.JIAYU_CLAUDE_SONNET_4_5.create(temperature=0.3) | StrOutputParser() ) @@ -73,7 +73,7 @@ async def optimize_summary(job_title: str, add_skills: list[str], original_summa _experience_optimize_chain = ( ChatPromptTemplate.from_messages([("system", EXPERIENCE_OPTIMIZE_PROMPT), ("human", "请开始优化。")]) - | LLM.GPT_4O.create(temperature=0.3) + | LLM.JIAYU_CLAUDE_SONNET_4_5.create(temperature=0.3) | StrOutputParser() ) @@ -120,7 +120,7 @@ async def plan_edit(job_title: str, job_description: str, resume_json: str, _record_edit_chain = ( ChatPromptTemplate.from_messages([("system", AGENT_MODULE_EDIT_PROMPT), ("human", "请执行修改。")]) - | LLM.GPT_4O.create(temperature=0.3) + | LLM.JIAYU_CLAUDE_SONNET_4_5.create(temperature=0.3) | StrOutputParser() ) @@ -145,7 +145,7 @@ async def execute_record_edit(job_title: str, job_description: str, instruction: _record_add_chain = ( ChatPromptTemplate.from_messages([("system", AGENT_MODULE_ADD_PROMPT), ("human", "请生成新记录。")]) - | LLM.GPT_4O.create(temperature=0.3) + | LLM.JIAYU_CLAUDE_SONNET_4_5.create(temperature=0.3) | StrOutputParser() ) diff --git a/app/config/settings.py b/app/config/settings.py index 269084d..272ddeb 100644 --- a/app/config/settings.py +++ b/app/config/settings.py @@ -38,14 +38,14 @@ class Settings(BaseSettings): volcengine_api_key: str = "fd065993-bee2-4f31-8bf2-56d5d3012c02" volcengine_base_url: str = "https://ark.cn-beijing.volces.com/api/v3" - # 心缘 - cardiacBrder_api_key: str = "sk-8NxoLe7ZTJveGSmtPENBm4NwN9ai4YLGw8y6fqueZrPTo4Uu" - cardiacBrder_base_url: str = "https://api-i.xykjy.com/v1" - # jiekou jiekou_api_key: str = "sk_4BXi4_yvwx-NW4_zuVt2LufrrlGyhs2q9qMN5Vq_j7Q" jiekou_base_url: str = "https://api.jiekou.ai/openai" + # jiayu + jiayu_api_key: str = "Aa123123" + jiayu_base_url: str = "http://192.168.31.133:8800/v1" + # JWT jwt_secret: str = "Aa123123" token_expire_seconds: int = 5184000