集成 · LANGCHAIN

LangChain 接入 全部模型。

OminiGate 在 https://api.ominigate.ai/v1 暴露 OpenAI 兼容接口,LangChain 的 ChatOpenAI、OpenAIEmbeddings、Agent 和 RAG 链路只需替换两个值——base URL 和 API key——即可接入。

开发者为什么把 LangChain 接入 OminiGate

你已经在用的 LangChain 抽象层,背后由一个统一、可预测的 API 网关支撑。

一把 key,一份余额

一把 sk-omg- key 通用所有模型、所有链路、所有 Agent。一次充值,不再分别管理每个供应商的 key 和账号。

OpenAI 兼容即插即用

LangChain 的 ChatOpenAI 和 OpenAIEmbeddings 类原生使用 OpenAI 协议。把 base URL 指向 https://api.ominigate.ai/v1,目录里的每个模型都用同一种方式响应。

覆盖范围超越 LLM

在同一个应用里混合调用文本、图像、视频模型。今天链路里跑 openai/gpt-5,明天就能用同一份余额接入视频生成模型。

用量透明可追踪

每一次链路调用、Agent 步骤和 embedding 请求都会在 OminiGate Dashboard 中按模型和单次费用逐条列出,不必在多个账单页之间反复对账。

真实可运行的 LangChain 示例

原样复制以下代码,替换为自己的 sk-omg- key,即可直接运行。

1. 基础 ChatOpenAI 客户端

最短路径:改写 base_url 或 configuration.baseURL,传入 OminiGate key。LangChain 的其他代码无需改动。

# pip install langchain langchain-openai
from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    model="openai/gpt-5",
    base_url="https://api.ominigate.ai/v1",
    api_key="sk-omg-your-api-key",
    temperature=0.2,
)

print(llm.invoke("Summarise the OminiGate value proposition in two sentences."))

2. 带工具调用的 LangChain Agent

工具调用 Agent 之所以能直接工作,是因为 OminiGate 透明转发 OpenAI 格式的函数/工具定义。任何支持工具的对话模型(Anthropic、OpenAI、Google 等)都可以通过 slug 选用。

from langchain_openai import ChatOpenAI
from langchain.agents import create_tool_calling_agent, AgentExecutor
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.tools import tool

@tool
def get_pricing(model_slug: str) -> str:
    """Look up published per-million-token pricing for an OminiGate model."""
    # call your own pricing service here
    return f"placeholder pricing for {model_slug}"

llm = ChatOpenAI(
    model="anthropic/claude-sonnet-4",
    base_url="https://api.ominigate.ai/v1",
    api_key="sk-omg-your-api-key",
)

prompt = ChatPromptTemplate.from_messages([
    ("system", "You are a helpful pricing assistant."),
    ("human", "{input}"),
    ("placeholder", "{agent_scratchpad}"),
])

agent = create_tool_calling_agent(llm, [get_pricing], prompt)
executor = AgentExecutor(agent=agent, tools=[get_pricing], verbose=True)

executor.invoke({"input": "How much is openai/gpt-5 per million tokens?"})

3. 检索增强生成(RAG)

用 OminiGate 的 embeddings 模型构建向量库,再用对话模型生成最终答案。两端调用共享同一把 key 和余额,并出现在同一个 Dashboard 视图中。

from langchain_openai import ChatOpenAI, OpenAIEmbeddings
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.runnables import RunnablePassthrough
from langchain_core.output_parsers import StrOutputParser
from langchain_community.vectorstores import FAISS

embeddings = OpenAIEmbeddings(
    model="openai/text-embedding-3-large",
    base_url="https://api.ominigate.ai/v1",
    api_key="sk-omg-your-api-key",
)

vectorstore = FAISS.from_texts(
    ["OminiGate exposes one OpenAI-compatible API for text, image, and video."],
    embedding=embeddings,
)
retriever = vectorstore.as_retriever()

llm = ChatOpenAI(
    model="openai/gpt-5",
    base_url="https://api.ominigate.ai/v1",
    api_key="sk-omg-your-api-key",
)

prompt = ChatPromptTemplate.from_template(
    "Answer using only the context.\n\nContext: {context}\n\nQuestion: {question}",
)

chain = (
    {"context": retriever, "question": RunnablePassthrough()}
    | prompt
    | llm
    | StrOutputParser()
)

print(chain.invoke("What does OminiGate cover?"))

团队基于此构建什么

几种典型的 LangChain 模式,统一 API 网关让它们更省事。

多模型 Agent 编排

把推理步骤路由到高能力模型,把廉价子步骤交给小模型——无需管理多个 SDK、多份账单或多套限流面板。

私有语料库的 RAG

用 text-embedding-3-large 生成文档向量,本地存储,再选择最适合你领域的对话模型生成答案。一把 key 同时驱动链路的两端。

面向用户的 Copilot

在 LangChain 之上构建生产级聊天机器人和 Copilot。根据成本、延迟或能力按请求切换供应商——无需改代码,只需替换 model slug。

跨模态流水线

在同一个工作流中,把 LangChain 链路与图像或视频生成调用配合使用。同一份 OminiGate 余额支付,逐项计费。

迁移已有的 LangChain 项目

替换两行代码,链路、Agent 和 RAG 流水线就开始通过 OminiGate 运行。

从 OpenAI 直连迁移

增加 base_url,替换 API key 前缀,并将 model slug 加上 OminiGate 使用的供应商命名空间前缀(例如 openai/gpt-5)。

diff
- from langchain_openai import ChatOpenAI
-
- llm = ChatOpenAI(model="gpt-4o", api_key="sk-...")

+ from langchain_openai import ChatOpenAI
+
+ llm = ChatOpenAI(
+     model="openai/gpt-5",
+     base_url="https://api.ominigate.ai/v1",
+     api_key="sk-omg-your-api-key",
+ )

从 OpenRouter 迁移

替换 base URL 和 API key。Model slug 仍然沿用你已经熟悉的 provider/model 规范,大部分链路无需改动。

diff
- llm = ChatOpenAI(
-     model="openai/gpt-4o",
-     base_url="https://openrouter.ai/api/v1",
-     api_key="sk-or-...",
- )

+ llm = ChatOpenAI(
+     model="openai/gpt-5",
+     base_url="https://api.ominigate.ai/v1",
+     api_key="sk-omg-your-api-key",
+ )

常见问题

如何让 LangChain 指向 OminiGate?

在 ChatOpenAI / OpenAIEmbeddings 上把 base_url(Python)或 configuration.baseURL(TypeScript)设为 https://api.ominigate.ai/v1,并传入 sk-omg- API key。其他 ChatOpenAI 配置无需修改。

支持流式返回吗?

支持。和直连 OpenAI 一样使用 streaming=True(Python)或 .stream()(TypeScript)即可。OminiGate 对任何支持流式的模型透明转发 OpenAI 流式格式。

支持函数 / 工具调用吗?

支持。工具调用、结构化输出和 JSON 模式对所有支持这些能力的模型都直接可用——包括通过 OpenAI 兼容接口暴露的 OpenAI、Anthropic 和 Google 对话系列。

LangChain Agent 能在一轮内调用多个工具吗?

可以。create_tool_calling_agent 和 AgentExecutor 按设计正常工作。如果想让多个工具在一次往返中并行触发,请选用支持并行工具调用的模型。

错误码长什么样?

错误返回遵循 OpenAI 的错误结构,因此 LangChain 已有的重试和回退包装(例如 RunnableWithFallbacks)无需修改即可使用。鉴权失败会返回 401,并附带关于 key 的明确说明。

如何追踪 LangChain 调用的费用?

每个请求都会显示在 OminiGate Dashboard 的用量页中,包含 model slug、输入/输出 token 数和费用。你也可以继续使用 LangChain 的 get_openai_callback 上下文管理器——token 计数直接来自 OminiGate 的响应字段。

应该选哪一个 embeddings 模型?

openai/text-embedding-3-large 是英文和多语言检索的稳健默认选择。对成本敏感的场景可换用更小的 embedding 模型——只需替换 model slug,RAG 链路的其他部分不受影响。

能在链路里调用图像或视频模型吗?

可以。在 LangChain 的 @tool 或 Runnable 包装内调用 OminiGate 的图像或视频接口,再把结果回传给链路即可。同一把 API key 可对所有模态鉴权,无需额外配置。

把下一个 LangChain 应用部署到 OminiGate

在 Dashboard 中创建一把 key,把 ChatOpenAI 客户端指向 https://api.ominigate.ai/v1,已有的链路立即可用。