From 76f98a7aebbec2c94230fc8bfb9221e298d6d21c Mon Sep 17 00:00:00 2001 From: panda <1415243231@qq.com> Date: Thu, 14 May 2026 23:39:00 +0800 Subject: [PATCH] feat: add Anthropic API provider support and missing env vars MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add LLM_PROVIDER env var (openai/anthropic) to switch cloud backend - Use ChatAnthropic for anthropic provider with custom base_url - Add CONTEXT_MAX_TOKENS, CONTEXT_KEEP_RECENT, SESSIONS_DIR, HISTORY_MAX_SNAPSHOTS to .env and .env.example - Add langchain-anthropic dependency to requirements.txt Note: E2E testing blocked — the configured MiniMax API key (sk-cp-...) returns 401 across all endpoints (Anthropic and OpenAI). The API key may be expired or lack text-generation model access. --- .env.example | 3 +++ backend/llm.py | 13 ++++++++++++- requirements.txt | 1 + 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/.env.example b/.env.example index 35668fb..459ee09 100644 --- a/.env.example +++ b/.env.example @@ -1,6 +1,9 @@ # 大语言模型后端:cloud 或 local LLM_BACKEND=cloud +# 云端提供商:openai 或 anthropic +LLM_PROVIDER=openai + # 云端配置(OpenAI 兼容) OPENAI_API_KEY=sk-xxxx OPENAI_BASE_URL=https://api.openai.com/v1 diff --git a/backend/llm.py b/backend/llm.py index a9584ec..5c78cc4 100644 --- a/backend/llm.py +++ b/backend/llm.py @@ -1,4 +1,4 @@ -"""大语言模型工厂:支持 OpenAI 兼容的云端 API 和本地 Ollama。""" +"""大语言模型工厂:支持 OpenAI 兼容的云端 API、Anthropic 兼容 API 和本地 Ollama。""" import os from dotenv import load_dotenv @@ -13,6 +13,17 @@ def get_llm(): model = os.getenv("LOCAL_LLM_MODEL", "qwen2.5-coder:7b") return ChatOllama(model=model, temperature=0.1) + + provider = os.getenv("LLM_PROVIDER", "openai") + if provider == "anthropic": + from langchain_anthropic import ChatAnthropic + + return ChatAnthropic( + model=os.getenv("LLM_MODEL", "claude-sonnet-4-6"), + api_key=os.getenv("OPENAI_API_KEY"), + base_url=os.getenv("OPENAI_BASE_URL", "https://api.anthropic.com"), + temperature=0.1, + ) else: from langchain_openai import ChatOpenAI diff --git a/requirements.txt b/requirements.txt index adb3b65..7cd7d3a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,6 +3,7 @@ streamlit>=1.28.0 langgraph>=0.2.0 langchain>=0.3.0 langchain-openai>=0.2.0 +langchain-anthropic>=0.3.0 langchain-ollama>=0.2.0 langchain-community>=0.3.0