LangChain 接入
在 LangChain 中配置 UniGateway 作为大模型提供方。
前置条件
- 已安装 Python 3.8+ 和 pip
- 已获取 UniGateway API Key
LangChain 通过 ChatOpenAI 类对接 OpenAI 兼容接口,仅需修改 base_url 即可。
安装依赖
pip install langchain-openai
配置环境变量
export OPENAI_API_KEY="<YOUR_UNIGATEWAY_API_KEY>"
export OPENAI_API_BASE="https://api.unigateway.ai/v1"
创建聊天模型
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(
model="gpt-5.4",
base_url="https://api.unigateway.ai/v1",
api_key="<YOUR_UNIGATEWAY_API_KEY>"
)
发送消息验证
from langchain_core.messages import HumanMessage
response = llm.invoke([HumanMessage(content="你好,请用一句话介绍你自己")])
print(response.content)
收到正常回复即表示配置完成。
流式响应
from langchain_openai import ChatOpenAI
from langchain_core.messages import HumanMessage
llm = ChatOpenAI(
model="gpt-5.4",
base_url="https://api.unigateway.ai/v1",
api_key="<YOUR_UNIGATEWAY_API_KEY>"
)
for chunk in llm.stream([HumanMessage(content="写一首关于编程的短诗")]):
print(chunk.content, end="", flush=True)
Embeddings 配置
from langchain_openai import OpenAIEmbeddings
embeddings = OpenAIEmbeddings(
model="text-embedding-3-small",
base_url="https://api.unigateway.ai/v1",
api_key="<YOUR_UNIGATEWAY_API_KEY>"
)
# 验证 embedding 是否可用
result = embeddings.embed_query("测试文本")
print(f"向量维度: {len(result)}")
工具调用
from langchain_openai import ChatOpenAI
from langchain_core.tools import tool
from langchain_core.messages import HumanMessage
@tool
def get_weather(city: str) -> str:
"""获取指定城市的天气信息"""
return f"{city} 今天晴天,25°C"
llm = ChatOpenAI(
model="gpt-5.4",
base_url="https://api.unigateway.ai/v1",
api_key="<YOUR_UNIGATEWAY_API_KEY>"
)
llm_with_tools = llm.bind_tools([get_weather])
response = llm_with_tools.invoke([
HumanMessage(content="北京今天天气怎么样?")
])
print(response.tool_calls)
常见问题
| 问题 | 处理方式 |
|---|---|
ModuleNotFoundError | 确认已安装 langchain-openai |
| API Key 未生效 | 检查 api_key 参数是否传入 |
| 流式响应无输出 | 确认使用 stream() 而非 invoke() |
| 工具调用不生效 | 确认模型支持 tool_use 功能 |