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_urlde forma explícita en lugar de depender deOPENAI_API_BASE, para que otros clientes de OpenAI en el mismo proceso no se redirijan por accidente. - Pasa
check_embedding_ctx_length=FalseaOpenAIEmbeddingscuando 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.