TokenLab

Frameworks et plateformes

LangChain

Intégrez TokenLab à LangChain à l’aide du chat et des embeddings standard compatibles OpenAI

Vue d’ensemble

TokenLab fonctionne bien avec les intégrations ChatOpenAI et OpenAIEmbeddings de LangChain lorsque vous restez sur la surface standard de chat et d’embeddings compatible OpenAI.

La documentation actuelle de LangChain indique que ChatOpenAI cible les formats standard de requête/réponse compatibles avec OpenAI. Si vous avez besoin de champs de réponse spécifiques à un fournisseur et non standard, utilisez plutôt une intégration LangChain spécifique à ce fournisseur au lieu de vous appuyer sur ChatOpenAI.

Cette page couvre volontairement uniquement la surface standard compatible OpenAI de LangChain, et non les fonctionnalités LangChain propres à un fournisseur au-delà de cette surface.

Installation

pip install langchain langchain-openai langchain-community faiss-cpu

Configuration de base

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)

Utilisation de différents modèles

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",
)

Historique des messages

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)

Diffusion en continu

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])

Exemple simple 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 prend en charge les intégrations compatibles OpenAI."
]

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)

Agents

Pour les nouveaux projets agentiques, LangChain recommande d’envisager LangGraph afin d’obtenir un contrôle plus explicite sur les flux de travail de longue durée et utilisant des outils.

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)

Bonnes pratiques

Sur cette page