Usamos cookies. Las cookies y el almacenamiento del navegador mantienen tu sesión iniciada y recuerdan tus preferencias. Con tu permiso, también medimos cómo se usa el sitio. Puedes en cualquier momento. Consulta nuestra política de cookies.

LangChain

Guías de SDK

LangChain

Usa los modelos de api14 en LangChain para Python y JavaScript: URL base, streaming, herramientas, salida estructurada, embeddings y parámetros de la pasarela.

La integración de LangChain con OpenAI funciona con api14 sin cambios: establece la URL base y la clave, y usa cualquier id de modelo (por ejemplo openai/gpt-5-mini). Los ejemplos se muestran para Python (langchain-openai) y JavaScript (@langchain/openai).

Instalación

pip install langchain-openai
# o
npm install @langchain/openai @langchain/core
export API14_API_KEY="sk-api14-..."

Configuración (Python)

import os
from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    model="anthropic/claude-sonnet-4.5",
    base_url="https://api14.com/api/v1",
    api_key=os.environ["API14_API_KEY"],
)
print(llm.invoke("Explain vector databases in two sentences.").content)

Configuración (JavaScript)

import { ChatOpenAI } from "@langchain/openai";

const llm = new ChatOpenAI({
  model: "openai/gpt-5-mini",
  apiKey: process.env.API14_API_KEY,
  configuration: { baseURL: "https://api14.com/api/v1" },
});

const res = await llm.invoke("Explain vector databases in two sentences.");
console.log(res.content);

Streaming

for chunk in llm.stream("Write a haiku about APIs."):
    print(chunk.content, end="", flush=True)
for await (const chunk of await llm.stream("Write a haiku about APIs.")) {
  process.stdout.write(String(chunk.content));
}

Herramientas y salida estructurada

from pydantic import BaseModel
from langchain_core.tools import tool

@tool
def get_weather(city: str) -> str:
    """Get the current weather for a city."""
    return f"21°C in {city}"

msg = llm.bind_tools([get_weather]).invoke("What is the weather in Istanbul?")
print(msg.tool_calls)

class Place(BaseModel):
    city: str
    country: str

place = llm.with_structured_output(Place).invoke('I live in Lisbon, Portugal.')
print(place)

Embeddings

La mayoría de los modelos de embeddings de api14 no son de OpenAI, así que desactiva la comprobación de longitud con tiktoken en el cliente:

from langchain_openai import OpenAIEmbeddings

embeddings = OpenAIEmbeddings(
    model="openai/text-embedding-3-small",
    base_url="https://api14.com/api/v1",
    api_key=os.environ["API14_API_KEY"],
    check_embedding_ctx_length=False,
)
vectors = embeddings.embed_documents(["The quick brown fox", "Lorem ipsum"])

Parámetros de la pasarela

Pasa los campos específicos de la pasarela mediante extra_body (Python) o modelKwargs (JS):

llm = ChatOpenAI(
    model="openai/gpt-5-mini",
    base_url="https://api14.com/api/v1",
    api_key=os.environ["API14_API_KEY"],
    extra_body={"models": ["anthropic/claude-sonnet-4.5"], "provider": {"sort": "price"}},
)

Errores

LangChain expone las excepciones del SDK de OpenAI. Un 402 insufficient_balance lanza openai.APIStatusError; un 429 rate_limited lanza openai.RateLimitError tras los reintentos integrados (max_retries= en ChatOpenAI). Consulta Errores.