Langsung ke konten utama

Gambaran Umum

Tipe: Framework atau PlatformJalur Utama: Kompatibel dengan OpenAI melalui OpenAILikeTingkat Dukungan: Didukung melalui OpenAILike
Untuk TokenLab, pengaturan LlamaIndex yang paling tangguh adalah menggunakan integrasi yang kompatibel dengan OpenAI alih-alih menggunakan kelas OpenAI bawaan. Dokumentasi LlamaIndex saat ini secara eksplisit merekomendasikan OpenAILike untuk endpoint pihak ketiga yang kompatibel dengan OpenAI, karena kelas OpenAI bawaan menyimpulkan metadata dari nama model resmi. Dengan kata lain: perlakukan OpenAILike sebagai jalur TokenLab yang didukung di sini, bukan kelas OpenAI bawaan.

Instalasi

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

Konfigurasi Dasar

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

Penggunaan Dasar

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 dengan Dokumen

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)

Penggunaan Async

import asyncio

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

asyncio.run(main())

Praktik Terbaik

Gunakan llama_index.llms.openai_like.OpenAILike dan llama_index.embeddings.openai_like.OpenAILikeEmbedding untuk TokenLab dan gateway pihak ketiga lainnya yang kompatibel dengan OpenAI.
Masukkan api_base="https://api.tokenlab.sh/v1" secara langsung di dalam kode alih-alih mengandalkan nama variabel lingkungan OpenAI yang lama.
Gunakan model chat/penalaran untuk sintesis dan text-embedding-3-small atau text-embedding-3-large untuk pengambilan data (retrieval).