الانتقال إلى المحتوى الرئيسي

نظرة عامة

النوع: إطار عمل أو منصةالمسار الأساسي: متوافق مع 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.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

الاستخدام الأساسي

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

أفضل الممارسات

فضل استخدام llama_index.llms.openai_like.OpenAILike و llama_index.embeddings.openai_like.OpenAILikeEmbedding لـ TokenLab وبوابات الطرف الثالث الأخرى المتوافقة مع OpenAI.
مرر api_base="https://api.tokenlab.sh/v1" مباشرة في الكود بدلاً من الاعتماد على أسماء متغيرات البيئة القديمة الخاصة بـ OpenAI.
استخدم نماذج الدردشة/الاستنتاج للتركيب، ونماذج text-embedding-3-small أو text-embedding-3-large للاسترجاع.