Passer au contenu principal

Aperçu

Type : Framework ou PlateformeChemin principal : Compatible avec OpenAI via OpenAILikeNiveau de support : Supporté via OpenAILike
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.4",
    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)

Chat Engine

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

Privilégiez llama_index.llms.openai_like.OpenAILike et llama_index.embeddings.openai_like.OpenAILikeEmbedding pour TokenLab et les autres passerelles tierces compatibles avec OpenAI.
Passez api_base="https://api.tokenlab.sh/v1" directement dans le code au lieu de vous fier aux anciens noms de variables d’environnement OpenAI.
Utilisez des modèles de chat/raisonnement pour la synthèse et text-embedding-3-small ou text-embedding-3-large pour la récupération (retrieval).