الأطر والمنصات
LlamaIndex
دمج TokenLab مع LlamaIndex باستخدام التكاملات المتوافقة مع OpenAI
نظرة عامة
النوع: إطار عمل أو منصة
المسار الأساسي: متوافق مع OpenAI عبر OpenAILike
مستوى دعم الموثوقية: مدعوم عبر OpenAILike
بالنسبة لـ TokenLab، فإن إعداد LlamaIndex الأكثر قوة هو استخدام التكاملات المتوافقة مع OpenAI بدلاً من فئات OpenAI المدمجة.
توصي وثائق LlamaIndex الحالية صراحةً باستخدام OpenAILike لنقاط النهاية التابعة لجهات خارجية والمتوافقة مع OpenAI، لأن فئات OpenAI المدمجة تستنتج البيانات الوصفية من أسماء النماذج الرسمية.
بمعنى آخر: تعامل مع OpenAILike كمسار TokenLab المدعوم هنا، وليس فئات OpenAI المدمجة.
التثبيت
pip install llama-index-core \
llama-index-readers-file \
llama-index-llms-openai-like \
llama-index-embeddings-openai-likeالإعداد الأساسي
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الاستخدام الأساسي
response = llm.complete("Explain TokenLab in one sentence.")
print(response.text)نموذج OpenAILike LLM مصغر
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) مع المستندات
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)الاستخدام غير المتزامن (Async)
import asyncio
async def main():
response = await llm.acomplete("Hello!")
print(response.text)
asyncio.run(main())