Integrações

LangChain

Rode chains e agentes do LangChain no seu stack com o modelo de chat ChatOpenAI, em Python ou JavaScript.

O LangChain é um framework para montar chains e agentes sobre modelos de linguagem. O modelo de chat ChatOpenAI aceita uma base URL personalizada, então ele roda no seu stack sem nenhum pacote específico do Stac.

Pré-requisitos

  • Uma chave da página Chaves de API do seu stack, exportada como STAC_API_KEY. Veja Autenticação.
  • O id do modelo que você quer chamar — veja Modelos. Os exemplos abaixo usam qwen/qwen3.5-9b.
bash
export STAC_API_KEY="your-stac-api-key"

Configure o modelo de chat

  1. Instale a integração OpenAI

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

    Pythonbash
    pip install langchain-openai
    JavaScriptbash
    npm install @langchain/openai @langchain/core
  2. Aponte o ChatOpenAI para o Stac

    Passe a chave e a base URL explicitamente. Em Python elas são api_key e base_url; em JavaScript a base URL vai dentro de configuration.

  3. Use como qualquer outro modelo de chat

    Chains, agentes e grafos do LangGraph recebem o objeto llm do mesmo jeito que receberiam um da OpenAI.

Exemplo

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)

Saída esperada (o texto muda de uma execução para outra):

Red, blue, and yellow.

Para respostas longas, use streaming em vez de esperar a mensagem inteira:

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

Limitações

  • O id do modelo precisa estar no seu plano. Passe em model o valor exato de Modelos; um modelo que o plano da sua chave não inclui devolve 403.
  • Tools dependem do modelo. bind_tools e agentes com tool calling só funcionam com um modelo que suporta tool calling.
  • Chamadas sem streaming têm uma janela de tempo. O invoke espera a resposta inteira de uma vez; uma geração que passa de cerca de 90 segundos falha com 503. Use stream para saídas longas.
  • Uma completude por requisição, logit_bias é descartado e o rate limit é por chave — dê a cada serviço a sua própria chave. Veja Diferenças que importam.

Próximos passos