LangChain 调用 Qwen 与 Ollama 的环境变量笔记

📅 2026/7/2 1:31:50
LangChain 调用 Qwen 与 Ollama 的环境变量笔记
技术、模型名称、SDK 参数和云厂商入口都会更新。本文记录的是本次排查得到的理解与当前写法后续一定以官方文档为准。1. 先区分三类配置调用大模型时经常会混在一起的其实是三层东西层级作用示例模型名称指定调用哪个模型qwen3.7-max、deepseek-r1:7bAPI Key证明你有权限调用服务DASHSCOPE_API_KEYBase URL / Host指定请求发到哪个服务地址阿里云百炼 Workspace URL、http://127.0.0.1:11434模型名称一般看官网模型列表Base URL 要看你使用的是默认公共入口、工作空间入口还是本地服务。2. Qwen / 阿里云百炼调用LangChain 官方 Qwen 示例通常只写fromlangchain_qwqimportChatQwen llmChatQwen(modelqwen-flash)这是因为示例默认使用库内置的默认接口地址并且要求你提前配置好DASHSCOPE_API_KEY。但如果你使用阿里云百炼 OpenAI 兼容接口.env里可能会有工作空间专属地址DASHSCOPE_BASE_URLhttps://你的WorkspaceId.cn-beijing.maas.aliyuncs.com/compatible-mode/v1这种情况下如果代码不传base_url库可能会走默认地址导致 API Key 和服务入口不匹配报401 invalid_api_key3.langchain_qwq默认认识的环境变量你本机源码关键位置D:\Users\26730\miniconda3\envs\python-stu\Lib\site-packages\langchain_qwq\base.py源码含义是api_key-DASHSCOPE_API_KEY api_base-DASHSCOPE_API_BASE也就是说库默认认识DASHSCOPE_API_KEY DASHSCOPE_API_BASE不是DASHSCOPE_BASE_URL如果.env写成DASHSCOPE_API_KEYsk-xxx DASHSCOPE_API_BASEhttps://你的WorkspaceId.cn-beijing.maas.aliyuncs.com/compatible-mode/v1 DASHSCOPE_MODEL_NAMEqwen3.7-max代码可以简化为importosfromdotenvimportload_dotenv,find_dotenvfromlangchain_qwqimportChatQwen load_dotenv(find_dotenv(),overrideTrue)modelChatQwen(modelos.getenv(DASHSCOPE_MODEL_NAME),)resmodel.invoke(你是谁)print(res.content)注意DASHSCOPE_MODEL_NAME不是ChatQwen默认自动读取的变量这里仍然是我们自己用os.getenv(...)读取后传进去。如果.env写的是DASHSCOPE_BASE_URL...那么需要手动传modelChatQwen(modelos.getenv(DASHSCOPE_MODEL_NAME),api_keyos.getenv(DASHSCOPE_API_KEY),base_urlos.getenv(DASHSCOPE_BASE_URL),)4. 推荐写法学习阶段推荐写清楚一点importosfromdotenvimportload_dotenv,find_dotenvfromlangchain_qwqimportChatQwen load_dotenv(find_dotenv(),overrideTrue)base_urlos.getenv(DASHSCOPE_BASE_URL)oros.getenv(DASHSCOPE_API_BASE)modelChatQwen(modelos.getenv(DASHSCOPE_MODEL_NAME),api_keyos.getenv(DASHSCOPE_API_KEY),base_urlbase_url,)resmodel.invoke(你是谁)print(res.content)如果以后确认.env统一使用DASHSCOPE_API_BASE也可以省略base_url参数。5. Ollama 本地模型调用LangChain 调 Ollamafromlangchain_ollamaimportChatOllama llmChatOllama(modeldeepseek-r1:7b)resllm.invoke(你是谁)print(res.content)这类代码默认连接本机 Ollama 服务http://127.0.0.1:11434所以一般不需要传base_url。前提是Ollama 服务已经启动ollama list能看到这个模型检查模型ollama list如果没有目标模型就先拉取ollama pull deepseek-r1:7b或者把代码里的模型名改成ollama list中已有的模型。6. Ollama 软件、服务和模型目录Ollama 分三层LangChain / Python ↓ HTTP 请求 Ollama 服务http://127.0.0.1:11434 ↓ 读取模型 本地模型目录例如 D:\Users\26730\.ollama\models打开 Ollama 软件时它通常会帮你启动后台服务。不打开软件也可以手动启动ollama serve服务启动后另开一个 PowerShellollama list7. 为什么手动ollama serve看不到 D 盘模型看ollama serve日志里的这一项OLLAMA_MODELS:C:\\Users\\26730\\.ollama\\models这说明当前手动启动的服务读取的是 C 盘默认目录不是D:\Users\26730\.ollama\models临时指定 D 盘目录$env:OLLAMA_MODELSD:\Users\26730\.ollama\modelsollama serve永久指定用户环境变量[Environment]::SetEnvironmentVariable(OLLAMA_MODELS,D:\Users\26730\.ollama\models,User)然后关闭 Ollama、关闭终端、结束残留ollama.exe重新打开终端再启动。启动日志里要看到OLLAMA_MODELS:D:\\Users\\26730\\.ollama\\models才说明服务真的在读 D 盘模型目录。8. LangSmith 是什么LangSmith 是 LangChain 官方的观测和调试平台。文档里的os.environ[LANGSMITH_TRACING]trueos.environ[LANGSMITH_API_KEY]getpass.getpass(Enter your LangSmith API key: )作用是开启模型调用追踪把 prompt、模型输出、Chain/RAG 每一步输入输出等上传到 LangSmith 后台查看。它不是 Ollama 必需项也不是 Qwen 必需项。学习本地 Ollama 或简单调用时可以先不配置。涉及敏感数据时也要注意开启追踪可能上传调用内容。9. 常见报错判断报错常见原因排查方式401 invalid_api_keyAPI Key 错或 API Key 与 Base URL 不匹配检查DASHSCOPE_API_KEY、DASHSCOPE_API_BASE/base_urlmodel not foundOllama 本地没有该模型ollama list、ollama pull 模型名Ollama502服务刚启动、代理/云模型异常、服务端临时异常先用ollama list和/api/tags确认服务Ollama 云模型提示订阅调用了:cloud模型但账号无权限换本地模型或升级云服务ollama list看不到模型服务读错模型目录看ollama serve日志里的OLLAMA_MODELS10. 官方文档入口后续如果版本变了以这些官方页面为准LangChain Qwen 集成文档https://docs.langchain.com/oss/python/integrations/chat/qwenLangChain Ollama 集成文档https://docs.langchain.com/oss/python/integrations/chat/ollamaLangSmith Observabilityhttps://docs.langchain.com/langsmith/observability阿里云百炼 OpenAI 兼容接口https://help.aliyun.com/zh/model-studio/compatibility-of-openai-with-dashscope阿里云百炼模型列表https://help.aliyun.com/zh/model-studio/models阿里云百炼错误码https://help.aliyun.com/zh/model-studio/error-codeOllama Windows 文档https://github.com/ollama/ollama/blob/main/docs/windows.mdOllama FAQhttps://github.com/ollama/ollama/blob/main/docs/faq.md11. 最后记一句云模型优先确认模型名 API Key Base URL本地 Ollama 优先确认ollama serve 是否启动 ollama list 是否有模型 OLLAMA_MODELS 是否指向正确目录