集成/LangChain 接入

通过 OpenAI 兼容的 langchain-openai 包把 UniGateway 接入 LangChain。

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 功能