跳到正文

编排框架 ​

编排框架在官方 SDK 之上再包一层抽象。经网关用它们的共同点:把框架底层的 chat model / LLM 指到网关的 OpenAI 兼容端点。每个框架都有一个「怎么改 base_url / 怎么声明模型」的特定入口,本节逐个给最小示例与各自的坑。

LangChain(Python / TypeScript) ​

bash
pip install langchain-openai langchain-anthropic     # Python
npm i @langchain/openai @langchain/anthropic         # Node
python
from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    base_url="http://localhost:7890/v1",
    api_key="<你的访问密钥>",
    model="gpt-5.4-mini",
)
print(llm.invoke("用一句话介绍你自己").content)
ts
import { ChatOpenAI } from "@langchain/openai";

const llm = new ChatOpenAI({
  configuration: { baseURL: "http://localhost:7890/v1" },
  apiKey: "<你的访问密钥>",
  model: "gpt-5.4-mini",
});

const resp = await llm.invoke("用一句话介绍你自己");
console.log(resp.content);

调 Claude 用 ChatAnthropic(anthropic_api_url 指到根),或用 init_chat_model 按 model 名自动选 provider:

python
from langchain.chat_models import init_chat_model

llm = init_chat_model(
    "gpt-5.4-mini",                       # 网关模型名
    model_provider="openai",
    base_url="http://localhost:7890/v1",  # 透传给 OpenAI provider
    api_key="<你的访问密钥>",
)

LangGraph ​

LangGraph 的「模型」就是 LangChain 的 chat model——把上面的 llm 传进图即可,网关对其无感知(LangGraph 只负责图编排,网络请求仍走 chat model 的 base_url):

python
from langgraph.graph import StateGraph, MessagesState

graph = StateGraph(MessagesState)
# ... 定义节点,节点内用上面的 llm 调用 ...

LlamaIndex(Python / TypeScript) ​

bash
pip install llama-index-llms-openai-like        # Python
npm i @llamaindex/openai                         # Node

坑:OpenAI 类会按模型名白名单校验。LlamaIndex 的 OpenAI 类只认 gpt-* 等它认识的家族,遇到网关里自定义的模型名会拒绝。要用 OpenAILike(Python)/ 显式声明 model 信息,绕开白名单:

python
from llama_index.llms.openai_like import OpenAILike

llm = OpenAILike(
    model="gpt-5.4-mini",
    api_base="http://localhost:7890/v1",
    api_key="<你的访问密钥>",
    is_chat_model=True,                 # 声明是 chat 模型
    is_function_calling_model=True,     # 支持 function calling
)
print(llm.complete("用一句话介绍你自己").text)

CrewAI(Python) ​

坑:CrewAI 底层由 LiteLLM 驱动。所以 base_url 不是框架参数,而是环境变量 OPENAI_API_BASE;model 要带 openai/ 前缀:

bash
pip install crewai
python
import os
os.environ["OPENAI_API_BASE"] = "http://localhost:7890/v1"
os.environ["OPENAI_API_KEY"] = "<你的访问密钥>"

from crewai import Agent, Task, Crew

agent = Agent(
    role="助手",
    goal="回答用户问题",
    backstory="一个友好的助手",
    llm="openai/gpt-5.4-mini",   # LiteLLM 前缀 + 网关模型名
)

AutoGen / AG2(Python) ​

坑:未知模型名需显式 model_info。经典 ConversableAgent API 对不在它默认清单里的模型名会报错,要显式声明。

注意:AutoGen 已分裂成两线——微软的 autogen-agentchat(autogen_agentchat,即 Microsoft Agent Framework 的 Python 线)与社区 fork AG2(延续经典 ConversableAgent API)。下方示例按经典 API 编写,from autogen import ConversableAgent 的 import 路径随版本变化(AG2 1.x 已改为 from ag2 import …),本节按官方文档编写、未在本环境实跑:

python
from autogen import ConversableAgent

config_list = [{
    "model": "gpt-5.4-mini",
    "base_url": "http://localhost:7890/v1",
    "api_key": "<你的访问密钥>",
}]

agent = ConversableAgent(
    "assistant",
    llm_config={
        "config_list": config_list,
        "model_info": {   # 显式声明,绕过模型名清单校验
            "gpt-5.4-mini": {"function_calling": True, "json_output": False},
        },
    },
)

DSPy(Python) ​

bash
pip install dspy
python
import dspy

lm = dspy.LM("openai/gpt-5.4-mini", api_base="http://localhost:7890/v1", api_key="<你的访问密钥>")
dspy.configure(lm=lm)

qa = dspy.Predict("question -> answer")
print(qa(question="用一句话介绍你自己"))

本节按官方文档编写、未在本环境实跑;LM 构造器的 api_base/api_key 参数名随 DSPy 版本变化。

Haystack(Python) ​

bash
pip install haystack-ai
python
from haystack.components.generators.chat import OpenAIChatGenerator
from haystack.dataclasses import ChatMessage

generator = OpenAIChatGenerator(
    model="gpt-5.4-mini",
    api_base_url="http://localhost:7890/v1",
    api_key="<你的访问密钥>",
)
resp = generator.run([ChatMessage.from_user("用一句话介绍你自己")])
print(resp["replies"][0].content)

本节按官方文档编写、未在本环境实跑。

Llama Stack ​

Llama Stack 是 Meta 的 Llama 工具链,其远程推理 provider 可指向 OpenAI 兼容端点。把它的 OPENAI_BASE_URL / OPENAI_API_KEY 指向网关即可接自托管或云端 Llama 模型;接法随其 provider 配置版本变化,以 Llama Stack 官方文档 为准(本节未在本环境实跑)。

下一步 ​

  • Agent 专用框架(OpenAI Agents / Claude Agent / Pydantic AI…):看 Agent SDK。
  • 这些框架底层的模型能力(图像/向量/重排):看 官方厂商 SDK。