Перейти к содержимому
AI Gateway

LangChain

Подключите Clipia AI Gateway к LangChain через ChatOpenAI с base_url Clipia — чат, инструменты и tool-агенты на Claude, GPT и Gemini.

Clipia AI Gateway совместим с OpenAI-контрактом, поэтому подключается к LangChain через стандартный класс ChatOpenAI — достаточно указать наш base_url и ключ Clipia. Дальше работают все привычные возможности LangChain: чат, инструменты, агенты и структурированный вывод.

Инициализация

pip install langchain-openai
import os
from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    model="claude-opus-5",
    base_url="https://api.clipia.ai/v1",
    api_key=os.environ["CLIPIA_API_KEY"],
    temperature=0.7,
)

print(llm.invoke("Назови три факта о Марсе.").content)
npm install @langchain/openai @langchain/core
import { ChatOpenAI } from "@langchain/openai";

const llm = new ChatOpenAI({
  model: "claude-opus-5",
  apiKey: process.env.CLIPIA_API_KEY,
  configuration: { baseURL: "https://api.clipia.ai/v1" },
  temperature: 0.7,
});

const res = await llm.invoke("Назови три факта о Марсе.");
console.log(res.content);

Один параметр на смену провайдера

Если у вас уже есть код на ChatOpenAI, для перехода достаточно задать base_url (configuration.baseURL в Node.js) и подставить ключ Clipia. Поле model — строка из каталога.

Tool-агент

Привяжите инструменты через bind_tools или соберите готового ReAct-агента из langgraph. Пример с одной функцией-инструментом:

import os
from langchain_openai import ChatOpenAI
from langchain_core.tools import tool
from langgraph.prebuilt import create_react_agent

@tool
def get_weather(city: str) -> str:
    """Вернуть текущую погоду в городе."""
    return f"В городе {city}: 14°C, облачно"

llm = ChatOpenAI(
    model="claude-opus-5",
    base_url="https://api.clipia.ai/v1",
    api_key=os.environ["CLIPIA_API_KEY"],
)

agent = create_react_agent(llm, tools=[get_weather])

result = agent.invoke(
    {"messages": [{"role": "user", "content": "Какая погода в Москве?"}]}
)
print(result["messages"][-1].content)

Агент сам пройдёт полный цикл: запросит вызов инструмента, получит результат и сформирует финальный ответ.

Структурированный вывод

with_structured_output использует response_format под капотом — модель вернёт данные строго по схеме (Pydantic-модель или JSON-схема):

from pydantic import BaseModel

class Person(BaseModel):
    name: str
    age: int

structured = llm.with_structured_output(Person)
person = structured.invoke("Извлеки имя и возраст: Анне 30 лет.")
print(person.name, person.age)  # Анна 30

Стриминг

Потоковый ответ доступен через llm.stream(...) (Python) и await llm.stream(...) (Node.js) — gateway отдаёт SSE-чанки в OpenAI-формате. Подробнее о стриминге и инструментах — на странице Chat Completions.