"""大语言模型工厂:支持 OpenAI 兼容的云端 API、Anthropic 兼容 API 和本地 Ollama。""" import os from dotenv import load_dotenv load_dotenv() def get_llm(): backend = os.getenv("LLM_BACKEND", "cloud") if backend == "local": from langchain_ollama import ChatOllama 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 return ChatOpenAI( model=os.getenv("LLM_MODEL", "gpt-4o"), api_key=os.getenv("OPENAI_API_KEY"), base_url=os.getenv("OPENAI_BASE_URL", "https://api.openai.com/v1"), temperature=0.1, ) def get_llm_for_correction(): return get_llm()