Usamos cookies. Cookies e o armazenamento do navegador mantêm você conectado e lembram suas preferências. Com sua permissão, também medimos como o site é usado. Você pode a qualquer momento. Veja nossa política de cookies.

LangChain

Guias de SDK

LangChain

Use a api14 com LangChain em Python e JavaScript apenas definindo a base URL e a chave, incluindo streaming, tools, saída estruturada e embeddings.

A integração da LangChain com a OpenAI funciona com a api14 sem alterações: defina a base URL e a chave e use qualquer id de modelo (por exemplo openai/gpt-5-mini). Os exemplos são mostrados para Python (langchain-openai) e JavaScript (@langchain/openai).

Instalação

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

Configuração (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)

Configuração (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));
}

Tools e saída estruturada

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

A maioria dos modelos de embeddings da api14 não é da OpenAI, então desative a verificação de tamanho com tiktoken feita no 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 do gateway

Passe os campos específicos do gateway por extra_body (Python) ou 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"}},
)

Erros

A LangChain expõe as exceções do SDK da OpenAI. Um 402 insufficient_balance gera openai.APIStatusError; um 429 rate_limited gera openai.RateLimitError após as novas tentativas integradas (max_retries= em ChatOpenAI). Veja Erros.