Frameworks e plataformas
LangChain
Integre o TokenLab com LangChain usando chat e embeddings padrão compatíveis com OpenAI
Visão geral
O TokenLab funciona bem com as integrações ChatOpenAI e OpenAIEmbeddings do LangChain quando você permanece na superfície padrão de chat e embeddings compatível com OpenAI.
A documentação atual do LangChain observa que ChatOpenAI tem como alvo os formatos oficiais de requisição/resposta compatíveis com OpenAI. Se você precisar de campos de resposta não padrão e específicos do provedor, use uma integração específica do provedor no LangChain em vez de depender de ChatOpenAI.
Esta página cobre deliberadamente apenas a superfície padrão compatível com OpenAI do LangChain, e não os recursos nativos do fornecedor do LangChain além desse escopo.
Instalação
pip install langchain langchain-openai langchain-community faiss-cpuConfiguração básica
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(
model="gpt-5.6-terra",
api_key="sk-your-tokenlab-key",
base_url="https://api.tokenlab.sh/v1",
)
response = llm.invoke("Explain TokenLab in one sentence.")
print(response.content)Usando modelos diferentes
from langchain_openai import ChatOpenAI
gpt = ChatOpenAI(
model="gpt-5.6-terra",
api_key="sk-your-key",
base_url="https://api.tokenlab.sh/v1",
)
claude = ChatOpenAI(
model="claude-sonnet-5",
api_key="sk-your-key",
base_url="https://api.tokenlab.sh/v1",
)
gemini = ChatOpenAI(
model="gemini-3.5-flash",
api_key="sk-your-key",
base_url="https://api.tokenlab.sh/v1",
)
deepseek = ChatOpenAI(
model="deepseek-reasoner",
api_key="sk-your-key",
base_url="https://api.tokenlab.sh/v1",
)Histórico de mensagens
from langchain_core.messages import HumanMessage, SystemMessage
messages = [
SystemMessage(content="You are a helpful assistant."),
HumanMessage(content="What is the capital of France?")
]
response = llm.invoke(messages)
print(response.content)Streaming
for chunk in llm.stream("Write a short poem about coding."):
if chunk.content:
print(chunk.content, end="", flush=True)Embeddings
from langchain_openai import OpenAIEmbeddings
embeddings = OpenAIEmbeddings(
model="text-embedding-3-small",
api_key="sk-your-key",
base_url="https://api.tokenlab.sh/v1",
)
vector = embeddings.embed_query("Hello world")
print(vector[:5])Exemplo simples de RAG
from langchain_openai import OpenAIEmbeddings
from langchain_community.vectorstores import FAISS
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.runnables import RunnablePassthrough
embeddings = OpenAIEmbeddings(
model="text-embedding-3-small",
api_key="sk-your-key",
base_url="https://api.tokenlab.sh/v1",
)
texts = [
"TokenLab provides one API for many AI models.",
"TokenLab supports OpenAI-compatible integrations."
]
vectorstore = FAISS.from_texts(texts, embeddings)
retriever = vectorstore.as_retriever()
prompt = ChatPromptTemplate.from_template(
"Answer using the context below.\\n\\nContext:\\n{context}\\n\\nQuestion:\\n{question}"
)
rag_chain = (
{"context": retriever, "question": RunnablePassthrough()}
| prompt
| llm
)
response = rag_chain.invoke("What does TokenLab provide?")
print(response.content)Agentes
Para novos projetos agênticos, o LangChain recomenda considerar o LangGraph para um controle mais explícito sobre fluxos de trabalho de longa duração e com uso de ferramentas.
from langchain.agents import create_agent
from langchain_core.tools import tool
@tool
def search(query: str) -> str:
"""Search for information."""
return f"Search results for: {query}"
tools = [search]
agent = create_agent(
model=llm,
tools=tools,
system_prompt="You are a helpful assistant with access to tools.",
)
result = agent.invoke({
"messages": [{"role": "user", "content": "Search for TokenLab pricing"}]
})
print(result["messages"][-1].content)