أقسام قاعدة المعرفة ▾

أدوات

أدوات

LlamaIndex + Gonka AI - تطبيقات RAG بتكلفة زهيدة

LlamaIndex هو إطار عمل رائد لبناء تطبيقات RAG ووكلاء الذكاء الاصطناعي في بايثون (يوجد أيضًا إصدار TypeScript من LlamaIndex.TS). يتولى LlamaIndex تحميل المستندات، تقسيمها إلى أجزاء، فهرستها، البحث المتجه، وتجميع الإجابة - تقوم بوصف البيانات، ويقوم LlamaIndex بتحويلها إلى نظام سؤال وجواب فوق أي LLM.

المشكلة الوحيدة هي تكلفة الاستدلال. RAG بطبيعته يستهلك الكثير: لكل سؤال يتم إرسال طلب إلى النموذج بالإضافة إلى العديد من أجزاء السياق المكتشفة، ول فهرسة المجموعات الكبيرة، يتم إضافة التضمينات. على نطاقات الإنتاج، يعني ذلك الآلاف من الطلبات يوميًا. مع OpenAI (2.50-15 دولارًا لكل مليون رمز) أو Anthropic (3-15 دولارًا لكل مليون رمز) حتى خدمة أسئلة وأجوبة متواضعة تتحول إلى عشرات الآلاف من الدولارات شهريًا.

يعمل LlamaIndex بشكل طبيعي مع أي نقطة نهاية متوافقة مع OpenAI من خلال فئة OpenAILike. هذا يعني أن JoinGonka Gateway يتصل ببضعة أسطر - بدون مزودين مخصصين أو تصحيحات. النتيجة: يعمل نفس نظام RAG مقابل 0.0005 دولار لكل مليون رمز عند الإدخال (المخرجات ×3) عبر شبكة Gonka اللامركزية - أرخص بمئات وآلاف المرات من واجهات برمجة التطبيقات السحابية.

ابدأ بسرعة: الاتصال عبر OpenAILike

مفتاح API الخاص بـ JoinGonka: سجل على gate.joingonka.ai/register - في البداية نمنحك 10 ملايين رمز مجاني - وأنشئ مفتاح jg-xxx في لوحة التحكم -> مفاتيح API.

التثبيت:

pip install llama-index llama-index-llms-openai-like

لأي واجهة برمجة تطبيقات متوافقة مع OpenAI، يوفر LlamaIndex الفئة OpenAILike من الحزمة llama_index.llms.openai_like. مثال بسيط لطلب Gonka:

from llama_index.llms.openai_like import OpenAILike

llm = OpenAILike(
    api_base="https://gate.joingonka.ai/v1",
    api_key="jg-your-key" (مفتاحك),
    model="Qwen/Qwen3-235B-A22B-Instruct-2507-FP8",
    is_chat_model=True,            # Gonka هي نقطة نهاية للدردشة
    is_function_calling_model=True, # يتم دعم استدعاء الأدوات الأصلي
    context_window=131072,         # 128K لـ Qwen3-235B
    max_tokens=8192,               # الحد الأقصى للإخراج عبر Gateway (Qwen)
)

response = llm.complete("اشرح ما هو RAG في ثلاث جمل.")
print(response)

ملاحظة مهمة حول OpenAILike: تأكد من تعيين is_chat_model=True - وإلا سينتقل LlamaIndex إلى نقطة نهاية الإكمال، التي ليس لدينا. is_function_calling_model=True يقوم بتمكين استدعاءات الأدوات الأصلية. عيّن context_window حسب النموذج حتى يتمكن LlamaIndex من تقسيم السياق بشكل صحيح.

مثال: خط أنابيب RAG مع محرك استعلام

السيناريو الكلاسيكي لـ LlamaIndex هو فهرس لمستنداتك واستعلامات لها عبر query_engine. يتم تعيين LLM العالمي مرة واحدة عبر Settings.llm، وبعد ذلك يستخدم خط الأنابيب بأكمله Gonka تلقائيًا.

from llama_index.core import (
    VectorStoreIndex,
    SimpleDirectoryReader,
    Settings,
)
from llama_index.llms.openai_like import OpenAILike
from llama_index.embeddings.huggingface import HuggingFaceEmbedding

# 1. LLM عبر Gonka (مرة واحدة - عالميًا)
Settings.llm = OpenAILike(
    api_base="https://gate.joingonka.ai/v1",
    api_key="jg-your-key" (مفتاحك),
    model="Qwen/Qwen3-235B-A22B-Instruct-2507-FP8",
    is_chat_model=True,
    context_window=131072,
    max_tokens=8192,
)

# 2. تضمينات محلية (مجانية، بدون OpenAI)
Settings.embed_model = HuggingFaceEmbedding(
    model_name="BAAI/bge-small-en-v1.5"
)

# 3. تحميل وفهرسة المستندات من المجلد ./data
documents = SimpleDirectoryReader("data").load_data()
index = VectorStoreIndex.from_documents(documents)

# 4. الاستعلام عن قاعدة المعرفة
query_engine = index.as_query_engine()
response = query_engine.query("عن ماذا يتحدث هذا المستند؟")
print(response)

نقطة حاسمة حول التضمينات: افتراضيًا، يستخدم VectorStoreIndex تضمينات OpenAI (text-embedding-ada-002) - وهذه هي استدعاءات مدفوعة منفصلة إلى OpenAI، وليست إلى Gonka. للتخلص تمامًا من OpenAI، قم بتعيين نموذج تضمينات محلي عبر Settings.embed_model (كما في المثال أعلاه - HuggingFaceEmbedding، حزمة pip install llama-index-embeddings-huggingface). عندها يتم التوليد عبر Gonka، والتوجيه - محليًا ومجانيًا.

التكلفة: تستهلك استعلام RAG-pipeline واحد (بحث + توليد) ~2-5 ألف رمز LLM. عبر Gonka، هذا يكلف أجزاء من السنت؛ عبر OpenAI/Anthropic - أغلى بأكثر من 3-4 مرات. على تدفق آلاف الاستعلامات يوميًا، يتحول الفرق إلى عشرات الآلاف من الدولارات في التوفير شهريًا.

مقارنة تكلفة حمل RAG

تطبيق RAG ليس دردشة لمرة واحدة، بل هو تدفق مستمر من الطلبات: كل سؤال من المستخدم يستدعي 2-5 آلاف رمز LLM (السؤال نفسه بالإضافة إلى أجزاء السياق المكتشفة). دعنا نحسب الأحجام النموذجية وتكلفتها على مزودين مختلفين. أسعار Gonka عبر JoinGonka Gateway: دخول ~0.0005 دولار لكل مليون، وخروج ×3.

السيناريورموز LLMOpenAI / AnthropicJoinGonka Gonka
سؤال واحد لقاعدة المعرفة~4K0.01 — 0.06 دولارًا~0.000005 دولار
روبوت دردشة الدعم (1 ألف طلب/يوم)~4M/يوم10 — 60 دولارًا في اليوم~0.005 دولار في اليوم
الفهرسة + أسئلة وأجوبة لمجموعة (1M كلمة)~5M12 — 75 دولارًا~0.006 دولار
خدمة إنتاج، 50 ألف طلب/شهر~200M/شهر500 — 3,000 دولارًا في الشهر~0.25 دولار في الشهر

مع 10M الرموز المجانية، يمكنك تصحيح خط أنابيب RAG بالكامل، وفهرسة مجموعة الاختبار، وتشغيل آلاف الطلبات - دون إنفاق سنت واحد. على نطاقات الإنتاج، يحول JoinGonka Gateway RAG من خدمة باهظة الثمن إلى بند نفقات لا يمكنك حتى ملاحظته.

الوكلاء، استدعاء الأدوات واختيار النموذج

لا تقتصر قدرة LlamaIndex على الإجابة على المستندات فحسب، بل يمكنه أيضًا بناء وكلاء باستخدام الأدوات. تدعم جميع نماذج Gonka الثلاثة استدعاء الأدوات الأصلي - يستدعي الوكلاء الوظائف بشكل منظم، دون تحليل النص. مثال على وكيل مزود بأداة:

import asyncio
from llama_index.core.agent.workflow import FunctionAgent
from llama_index.llms.openai_like import OpenAILike

llm = OpenAILike(
    api_base="https://gate.joingonka.ai/v1",
    api_key="jg-your-key" (مفتاحك),
    model="Qwen/Qwen3-235B-A22B-Instruct-2507-FP8",
    is_chat_model=True,
    is_function_calling_model=True,
    context_window=131072,
    max_tokens=8192,
)

def multiply(a: float, b: float) -> float:
    """يضرب عددين."""
    return a * b

agent = FunctionAgent(
    tools=[multiply],
    llm=llm,
    system_prompt="أنت مساعد مفيد. استخدم الأدوات عند الحاجة.",
)

async def main():
    result = await agent.run("كم يساوي 1234 مضروبًا في 5678؟")
    print(result)

asyncio.run(main())

اختيار النموذج (حقل model والحدود المقابلة context_window / max_tokens):

النموذج (model)السياقالحد الأقصى للإخراجمتى يتم الاختيار
Qwen/Qwen3-235B-A22B-Instruct-2507-FP8128K8192الافتراضي: RAG، الوكلاء، الإجابات الطويلة
moonshotai/Kimi-K2.6128K3072استدلال قوي واستدعاء أدوات
MiniMaxAI/MiniMax-M2.7128K4096بديل لمهام الوكيل

الحد الأقصى لـ max_tokens عبر Gateway - حتى 8192 على نموذج Qwen3؛ لـ Kimi و MiniMax، حدد 3072 و 4096 على التوالي. إذا لم يتم تحديد max_tokens لطلب غير بثي، فسيُرجع افتراضيًا ما يصل إلى 1500 رمز - بالنسبة لإجابات RAG وخطوات الوكيل، حدد القيمة صراحةً.

TypeScript: بالنسبة لـ LlamaIndex.TS، يوجد مسار متماثل - تقبل فئة OpenAI من حزمة @llamaindex/openai baseURL و apiKey (أو تقرأ متغيرات OPENAI_BASE_URL / OPENAI_API_KEY)، لذلك يتصل نفس Gateway في مكدس Node.js أيضًا. إذا كنت تبني تطبيقات AI على أطر عمل Python، فراجع أيضًا دليل LangChain.

LlamaIndex + Gonka = RAG ووكلاء جاهزون للإنتاج بأجزاء من السنت. الاتصال عبر OpenAILike (is_chat_model=True)، استدعاء الأدوات الأصلي، التضمينات المحلية — إدخال 0.0005 دولار لكل مليون رمز بدلاً من 2.50-15 دولارًا مع OpenAI. 10 ملايين رمز مجاني تكفي لتصحيح خط الأنابيب بالكامل.

تريد معرفة المزيد؟

استكشف الأقسام الأخرى أو ابدأ في كسب GNK الآن.

احصل على 10 ملايين رمز مجاني →