Frameworks & Plattformen

LangChain

Integrieren Sie TokenLab mit LangChain unter Verwendung standardmäßiger OpenAI-kompatibler Chat- und Embeddings-Funktionen

Überblick

TokenLab funktioniert gut mit den LangChain-Integrationen ChatOpenAI und OpenAIEmbeddings, wenn Sie bei der standardmäßigen OpenAI-kompatiblen Oberfläche für Chat und Embeddings bleiben.

In der aktuellen LangChain-Dokumentation wird darauf hingewiesen, dass ChatOpenAI auf offizielle OpenAI-kompatible Request-/Response-Formate abzielt. Wenn Sie anbieterspezifische, nicht standardisierte Response-Felder benötigen, verwenden Sie eine anbieterspezifische LangChain-Integration, anstatt sich auf ChatOpenAI zu verlassen.

Typ: Framework oder Plattform

Primärer Pfad: OpenAI-kompatible Standardsurface

Support-Niveau: Standardsurface unterstützt

Diese Seite deckt bewusst nur die standardmäßige OpenAI-kompatible LangChain-Oberfläche ab und nicht anbieterspezifische LangChain-Funktionen darüber hinaus.

Installation

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

Grundkonfiguration

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)

Verwendung verschiedener Modelle

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

Nachrichtenverlauf

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

Einfaches RAG-Beispiel

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)

Agenten

Für neue agentische Projekte empfiehlt LangChain, LangGraph für eine explizitere Kontrolle über langlaufende und Tool-verwendende Workflows in Betracht zu ziehen.

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)

Bewährte Praktiken

Auf dieser Seite