Saltar al contenido

LangChain

La integración de OpenAI de LangChain funciona con Inferray: apunta ChatOpenAI y OpenAIEmbeddings a la URL base de Inferray y usa cualquier modelo del catálogo.

Python

pip install langchain-openai
import os
from langchain_openai import ChatOpenAI, OpenAIEmbeddings

llm = ChatOpenAI(
    model="claude-sonnet-4-6",
    base_url="https://api.inferray.com/v1",
    api_key=os.environ["INFERRAY_API_KEY"],
)

print(llm.invoke("What is a vector database?").content)

embeddings = OpenAIEmbeddings(
    model="text-embedding-3-small",
    base_url="https://api.inferray.com/v1",
    api_key=os.environ["INFERRAY_API_KEY"],
)
vector = embeddings.embed_query("What is a vector database?")

JavaScript

npm install @langchain/openai
import { ChatOpenAI, OpenAIEmbeddings } from "@langchain/openai";

const llm = new ChatOpenAI({
  model: "claude-sonnet-4-6",
  apiKey: process.env.INFERRAY_API_KEY,
  configuration: { baseURL: "https://api.inferray.com/v1" },
});

const reply = await llm.invoke("What is a vector database?");

const embeddings = new OpenAIEmbeddings({
  model: "text-embedding-3-small",
  apiKey: process.env.INFERRAY_API_KEY,
  configuration: { baseURL: "https://api.inferray.com/v1" },
});

Herramientas, salida estructurada y streaming

llm.bind_tools(...), llm.with_structured_output(Schema) y llm.stream(...) funcionan como siempre en los modelos que admiten herramientas y salidas estructuradas. Los agentes de LangGraph construidos sobre ChatOpenAI funcionan de la misma manera.

Consejos

  • Define base_url de forma explícita en lugar de depender de OPENAI_API_BASE, para que otros clientes de OpenAI en el mismo proceso no se redirijan por accidente.
  • Pasa check_embedding_ctx_length=False a OpenAIEmbeddings cuando uses un modelo de embeddings distinto de los de OpenAI, para que LangChain envíe texto en lugar de IDs de tokens específicos de OpenAI.