LangChain
LangChain 是目前应用最广泛的大语言模型应用开发框架之一。本文介绍如何在 LangChain 项目中接入 MaomaoToken,涵盖凭据配置、模型切换、RAG 场景实践与生产环境建议。
环境准备
- Python >= 3.9
- 安装依赖:
pip install langchain langchain-openai openai- 已在 MaomaoToken 控制台创建 API Key(以
sk-开头)
配置方式
方式一:环境变量
import os
os.environ["OPENAI_API_KEY"] = "sk-***"
os.environ["OPENAI_BASE_URL"] = "https://api.maomaotoken.com/v1"方式二:直接传入参数
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(
openai_api_base="https://api.maomaotoken.com/v1", # 末尾需加 /v1
openai_api_key="sk-***",
)
res = llm.invoke("hello")
print(res)完整示例
import os
from langchain_openai import ChatOpenAI
os.environ["OPENAI_API_KEY"] = "sk-***"
os.environ["OPENAI_API_BASE"] = "https://api.maomaotoken.com/v1"
llm = ChatOpenAI(temperature=0.9)
result = llm.invoke("What would be a good company name for a company that makes colorful socks?")
print(result.content)RAG 场景实践
LangChain 的 RAG 应用通常涉及向量化(Embedding)和生成(Chat Completion)两类调用。MaomaoToken 的统一入口让混搭策略实现成本极低:
from langchain_openai import ChatOpenAI, OpenAIEmbeddings
from langchain_community.vectorstores import FAISS
from langchain.chains import RetrievalQA
embeddings = OpenAIEmbeddings(
model="text-embedding-3-small",
openai_api_base="https://api.maomaotoken.com/v1",
openai_api_key="sk-***",
)
llm = ChatOpenAI(
model="claude-sonnet-4-6",
openai_api_base="https://api.maomaotoken.com/v1",
openai_api_key="sk-***",
)
vectorstore = FAISS.from_documents(documents, embeddings)
qa = RetrievalQA.from_chain_type(llm=llm, retriever=vectorstore.as_retriever())
response = qa.invoke("公司年报中第三季度营收数据是多少?")
print(response)LangChain 0.1+ 导入路径
自 LangChain 0.1 起,OpenAI 集成拆分至独立包 langchain-openai:
# 旧写法(已弃用)
from langchain.llms import OpenAI
from langchain.chat_models import ChatOpenAI
# 推荐写法
from langchain_openai import ChatOpenAI, OpenAI, OpenAIEmbeddings新项目直接用新版导入路径;存量项目建议在常规升级窗口内完成迁移。
生产环境建议
成本可观测性
from langchain_community.callbacks import get_openai_callback
with get_openai_callback() as cb:
response = llm.invoke("hello")
print(f"消耗 tokens: {cb.total_tokens}, 估算费用: ${cb.total_cost}")多模型容错
primary = ChatOpenAI(model="claude-opus-4-7", openai_api_base="https://api.maomaotoken.com/v1")
fallback = ChatOpenAI(model="gpt-5.5", openai_api_base="https://api.maomaotoken.com/v1")
llm = primary.with_fallbacks([fallback])配置外部化
llm = ChatOpenAI(
model=os.getenv("LLM_MODEL", "claude-sonnet-4-6"),
openai_api_base=os.getenv("LLM_BASE_URL", "https://api.maomaotoken.com/v1"),
)常见问题
端点返回 404 Not Found
通常由 OPENAI_BASE_URL 缺失 /v1 后缀引起,确认配置值为 https://api.maomaotoken.com/v1。
返回 401 Unauthorized 依次确认:API Key 是否完整复制、账户余额是否充足、Key 是否已在控制台启用。
LangGraph 与 LangSmith 是否兼容
完全兼容。LangGraph 节点底层仍调用 ChatOpenAI,配置方式一致;LangSmith 独立于上游模型链路。