TokenLab

Frameworks et plateformes

LlamaIndex

Intégrez TokenLab avec LlamaIndex en utilisant des intégrations compatibles avec OpenAI

Aperçu

Pour TokenLab, la configuration la plus robuste avec LlamaIndex consiste à utiliser des intégrations compatibles avec OpenAI plutôt que les classes OpenAI natives.

La documentation actuelle de LlamaIndex recommande explicitement OpenAILike pour les endpoints tiers compatibles avec OpenAI, car les classes OpenAI natives déduisent les métadonnées à partir des noms de modèles officiels.

En d'autres termes : considérez OpenAILike comme le chemin supporté pour TokenLab ici, et non les classes OpenAI natives.

Installation

pip install llama-index-core \
  llama-index-readers-file \
  llama-index-llms-openai-like \
  llama-index-embeddings-openai-like

Configuration de base

from llama_index.core import Settings
from llama_index.llms.openai_like import OpenAILike
from llama_index.embeddings.openai_like import OpenAILikeEmbedding

llm = OpenAILike(
    model="gpt-5.6-terra",
    api_base="https://api.tokenlab.sh/v1",
    api_key="sk-your-tokenlab-key",
    is_chat_model=True,
)

embed_model = OpenAILikeEmbedding(
    model_name="text-embedding-3-small",
    api_base="https://api.tokenlab.sh/v1",
    api_key="sk-your-tokenlab-key",
)

Settings.llm = llm
Settings.embed_model = embed_model

Utilisation de base

response = llm.complete("Explain TokenLab in one sentence.")
print(response.text)

LLM OpenAILike minimal

from llama_index.llms.openai_like import OpenAILike

llm = OpenAILike(
    model="claude-sonnet-5",
    api_base="https://api.tokenlab.sh/v1",
    api_key="sk-your-tokenlab-key",
    context_window=200000,
    is_chat_model=True,
    is_function_calling_model=True,
)

Chat

from llama_index.core.llms import ChatMessage

messages = [
    ChatMessage(role="system", content="You are a helpful assistant."),
    ChatMessage(role="user", content="What is the capital of France?")
]

response = llm.chat(messages)
print(response.message.content)

Streaming

for chunk in llm.stream_complete("Write a short poem about AI."):
    print(chunk.delta, end="", flush=True)

Embeddings

vector = embed_model.get_text_embedding("Hello, world!")
print(vector[:5])

RAG avec des documents

from llama_index.core import SimpleDirectoryReader, VectorStoreIndex

documents = SimpleDirectoryReader("./data").load_data()
index = VectorStoreIndex.from_documents(documents)

query_engine = index.as_query_engine()
response = query_engine.query("What is in my documents?")
print(response)

Moteur de chat

chat_engine = index.as_chat_engine(chat_mode="condense_question")

response = chat_engine.chat("What is TokenLab?")
print(response)

response = chat_engine.chat("How many models does it support?")
print(response)

Utilisation asynchrone

import asyncio

async def main():
    response = await llm.acomplete("Hello!")
    print(response.text)

asyncio.run(main())

Bonnes pratiques

Sur cette page