Integraciones

LangChain

Corre cadenas y agentes de LangChain en tu stack con el modelo de chat ChatOpenAI, en Python o JavaScript.

LangChain es un framework para construir cadenas y agentes sobre modelos de lenguaje. Su modelo de chat ChatOpenAI acepta una base URL personalizada, así que corre en tu stack sin ningún paquete específico de Stac.

Requisitos previos

  • Una clave de la página Claves de API de tu stack, exportada como STAC_API_KEY. Consulta Autenticación.
  • El id del modelo que quieres llamar — consulta Modelos. Los ejemplos de abajo usan qwen/qwen3.5-9b.
bash
export STAC_API_KEY="your-stac-api-key"

Configura el modelo de chat

  1. Instala la integración de OpenAI

    langchain-openai para Python, @langchain/openai para JavaScript.

    Pythonbash
    pip install langchain-openai
    JavaScriptbash
    npm install @langchain/openai @langchain/core
  2. Apunta ChatOpenAI a Stac

    Pasa la clave y la base URL de forma explícita. En Python son api_key y base_url; en JavaScript la base URL va dentro de configuration.

  3. Úsalo como cualquier otro modelo de chat

    Las cadenas, los agentes y los grafos de LangGraph reciben el objeto llm igual que recibirían uno de OpenAI.

Ejemplo

main.pypython
import os
from langchain_openai import ChatOpenAI
 
llm = ChatOpenAI(
    model="qwen/qwen3.5-9b",
    api_key=os.environ["STAC_API_KEY"],
    base_url="https://api.trystac.com/v1",
)
 
print(llm.invoke("Name three primary colors.").content)

Salida esperada (la redacción cambia de una ejecución a otra):

Red, blue, and yellow.

Para respuestas largas, usa streaming en lugar de esperar el mensaje completo:

python
for chunk in llm.stream("Write a short paragraph about primary colors."):
    print(chunk.content, end="", flush=True)

Limitaciones

  • El id del modelo debe estar en tu plan. Pasa como model el valor exacto de Modelos; un modelo que el plan de tu clave no incluye devuelve 403.
  • Las tools dependen del modelo. bind_tools y los agentes con tool calling solo funcionan con un modelo que admite tool calling.
  • Las llamadas sin streaming tienen una ventana de tiempo. invoke espera la respuesta completa en una sola respuesta; una generación que pasa de unos 90 segundos falla con 503. Usa stream para salidas largas.
  • Una completación por solicitud, logit_bias se descarta y el límite de tasa es por clave — dale a cada servicio su propia clave. Consulta Diferencias importantes.

Próximos pasos