跳转到主要内容
LangChain 是目前应用最广泛的大语言模型应用开发框架之一。本文档介绍如何在 LangChain 项目中接入AIHubMix,涵盖凭据配置、模型切换、检索增强生成(RAG)场景实践与生产环境建议。

环境准备

接入 AIHubMix 前,需满足以下条件:
pip install langchain langchain-openai openai
  • 已在 aihubmix.com 完成账号注册,并在控制台创建 API 凭据(以 sk- 开头的字符串)

最简单的配置方式:直接设置环境变量代码如下

API_SECRET_KEY = "sk-pvMtoVO******66249058b93C766F2D70167"
BASE_URL = "https://aihubmix.com/v1"; #aihubmix的base-url

os.environ["OPENAI_API_KEY"] = API_SECRET_KEY
os.environ["OPENAI_BASE_URL"] = BASE_URL
注意:openai_api_base 的末尾要加上 /v1,
langchain.chat_models import ChatOpenAI

llm = ChatOpenAI(
    openai_api_base="https://aihubmix.com/v1", # 注意,末尾要加 /v1
    openai_api_key="sk-3133f******fee269b71d",
)

res = llm.predict("hello")

print(res)
示例代码,使用LLM进行预测
核心其实在于key和url的设置
方法有:
  1. 使用环境变量来设置
  2. 使用变量来传入
  3. 使用手动设置环境变量
Python
import os
import requests
import time
import json
import time

from langchain.llms import OpenAI

API_SECRET_KEY = "你在aihubmix的key";
BASE_URL = "https://aihubmix.com/v1"; #aihubmix的base-url

os.environ["OPENAI_API_KEY"] = API_SECRET_KEY
os.environ["OPENAI_API_BASE"] = BASE_URL

def text():
    llm = OpenAI(temperature=0.9)
    text = "What would be a good company name for a company that makes colorful socks?"
    print(llm(text))

if __name__ == '__main__':
    text();
    
运行后可以看到返回:
Lively Socks.

检索增强生成(RAG)场景实践

LangChain 在 RAG 应用中通常涉及两类调用:向量化(Embedding)与生成(Chat Completion)。由于向量化调用频次远高于生成调用,但单次成本远低于生成,因此在成本敏感的生产场景中,可通过混搭策略显著降低总体支出。 AIHubMix 的统一入口设计使该策略实现成本极低:
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://aihubmix.com/v1",
    openai_api_key="sk-xxx",
)

llm = ChatOpenAI(
    model="claude-sonnet-4-6",
    openai_api_base="https://aihubmix.com/v1",
    openai_api_key="sk-xxx",
)

vectorstore = FAISS.from_documents(documents, embeddings)
qa = RetrievalQA.from_chain_type(llm=llm, retriever=vectorstore.as_retriever())

response = qa.invoke("公司年报中第三季度营收数据是多少?")
print(response)
上述代码使用 text-embedding-3-small 处理向量化、claude-sonnet-4-6 处理最终生成。

LangChain 0.1 之后的导入路径变更

自 LangChain 0.1 版本起,官方将 OpenAI 集成拆分至独立包 langchain-openai。旧版导入路径虽仍可运行,但已被标记为弃用(deprecated),并在每次导入时输出告警。
# 弃用写法
from langchain.llms import OpenAI
from langchain.chat_models import ChatOpenAI

# 推荐写法
from langchain_openai import ChatOpenAI, OpenAI, OpenAIEmbeddings
新项目应直接采用新版导入路径;存量项目建议在常规升级窗口内迁移完成。

生产环境实践建议

将 LangChain 应用部署至生产环境时,以下三项配套实践与 AiHubMix 协同效果良好。

成本可观测性

LangChain 提供 get_openai_callback 上下文管理器,可实时统计每次调用的 token 用量与费用。结合 AiHubMix 控制台的账单明细,可在代码层与平台层形成双向核对:
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}")

多模型容错

任何单一上游均可能出现短时不可用。LangChain 的 with_fallbacks 方法支持声明降级链路,确保关键业务的可用性:
primary  = ChatOpenAI(model="claude-opus-4-7", openai_api_base="https://aihubmix.com/v1")
fallback = ChatOpenAI(model="gpt-5.5",         openai_api_base="https://aihubmix.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://aihubmix.com/v1"),
)

常见问题

端点返回 404 Not Found
通常由 OPENAI_BASE_URL 缺失 /v1 后缀引起。请确认配置值为 https://aihubmix.com/v1
返回 401 Unauthorized
请依次确认 API 凭据是否完整复制、AIHubMix 账户余额是否充足、凭据是否已在控制台启用。
LangGraph 与 LangSmith 是否兼容
完全兼容。LangGraph 的节点底层仍调用 ChatOpenAI,配置方式一致;LangSmith 作为观测平台,独立于上游模型链路,不受影响。

参考资源


更新时间:2026-06-01