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.
export STAC_API_KEY="your-stac-api-key"Configure o modelo de chat
Instale a integração OpenAI
langchain-openaipara Python,@langchain/openaipara JavaScript.Pythonbashpip install langchain-openaiJavaScriptbashnpm install @langchain/openai @langchain/coreAponte o ChatOpenAI para o Stac
Passe a chave e a base URL explicitamente. Em Python elas são
api_keyebase_url; em JavaScript a base URL vai dentro deconfiguration.Use como qualquer outro modelo de chat
Chains, agentes e grafos do LangGraph recebem o objeto
llmdo mesmo jeito que receberiam um da OpenAI.
Exemplo
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)import { ChatOpenAI } from "@langchain/openai";
const llm = new ChatOpenAI({
model: "qwen/qwen3.5-9b",
apiKey: process.env.STAC_API_KEY,
configuration: { baseURL: "https://api.trystac.com/v1" },
});
const response = await llm.invoke("Name three primary colors.");
console.log(response.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:
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
modelo valor exato de Modelos; um modelo que o plano da sua chave não inclui devolve403. - Tools dependem do modelo.
bind_toolse agentes com tool calling só funcionam com um modelo que suporta tool calling. - Chamadas sem streaming têm uma janela de tempo. O
invokeespera a resposta inteira de uma vez; uma geração que passa de cerca de 90 segundos falha com503. Usestreampara 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
- Compatibilidade OpenAI — com o que o
ChatOpenAIestá conversando, e o que difere da OpenAI. - Respostas em streaming — o formato SSE por trás
do
stream. - Base de conhecimento — fundamente as respostas nos seus próprios documentos sem um retriever na chain.