MaoMaoToken 文档

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 独立于上游模型链路。


参考资源

On this page

LangChain