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

التنقل

▸ ابدأ من هنا حسب الدور

الفئات

أدوات 54
قاموس المصطلحات 12

أدوات

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

LlamaIndex هو إطار العمل الرائد لبناء تطبيقات RAG ووكلاء الذكاء الاصطناعي (AI agents) باستخدام Python (وتوجد نسخة LlamaIndex.TS لـ TypeScript). يتولى الإطار تحميل المستندات، تقسيمها إلى أجزاء (chunking)، الفهرسة، البحث المتجه (vector search)، وتجميع الردود — أنت تصف البيانات و LlamaIndex يحولها إلى نظام سؤال وجواب فوق أي نموذج لغوي كبير (LLM).

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

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

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

مفتاح API الخاص بـ JoinGonka: سجّل على gate.joingonka.ai/register — نمنحك في البداية 3M توكن مجاني — ثم أنشئ مفتاحًا jg-xxx في لوحة التحكم.

التثبيت:

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

لأي API متوافق مع 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="MiniMaxAI/MiniMax-M2.7",
    is_chat_model=True,            # Gonka is a chat endpoint
    is_function_calling_model=True, # native tool calling is supported
    context_window=180000,         # MiniMax M2.7 context window
    max_tokens=8192,               # Gateway output cap
)

response = llm.complete("Explain what RAG is in three sentences.")
print(response)

مهم بشأن OpenAILike: يجب تحديد is_chat_model=True — وإلا سيتجه LlamaIndex إلى نقطة نهاية Completions القديمة برومبت خام بدل المحادثة. يفعّل 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 via Gonka (set once, globally)
Settings.llm = OpenAILike(
    api_base="https://gate.joingonka.ai/v1",
    api_key="jg-your-key",
    model="MiniMaxAI/MiniMax-M2.7",
    is_chat_model=True,
    context_window=180000,
    max_tokens=8192,
)

# 2. Local embeddings (free, no OpenAI)
Settings.embed_model = HuggingFaceEmbedding(
    model_name="BAAI/bge-small-en-v1.5"
)

# 3. Load and index documents from the ./data folder
documents = SimpleDirectoryReader("data").load_data()
index = VectorStoreIndex.from_documents(documents)

# 4. Query the knowledge base
query_engine = index.as_query_engine()
response = query_engine.query("What is this document about?")
print(response)

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

التكلفة: الاستعلام الواحد في خط معالجة RAG (بحث + توليد) يستهلك ~2–5K توكن من LLM. عبر Gonka لا يكلف سوى أجزاء من السنت؛ أما عبر OpenAI/Anthropic فالأمر يزيد بأضعاف مضاعفة بأربع مراتب من حيث التكلفة. ومع تدفق بآلاف الاستعلامات يوميًا، يتحول هذا الفارق إلى عشرات الآلاف من الدولارات التي تُوفَّر شهريًا.

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

تطبيق RAG ليس محادثة عابرة، بل تدفق مستمر من الطلبات: كل سؤال من المستخدم يجرّ خلفه 2–5K توكن من LLM (السؤال نفسه زائد المقاطع السياقية المسترجعة). لنحسب الأحجام النموذجية وكلفتها لدى مختلف المزودين. أسعار Gonka عبر JoinGonka Gateway: الإدخال ~$0.0062/1M، والإخراج ×3.

السيناريوتوكنات LLMOpenAI / AnthropicJoinGonka Gonka
سؤال واحد لقاعدة المعرفة~4K$0.01 — $0.06~$0.00004
روبوت دعم (1K طلب/يوم)~4M/يوم$10 — $60 يوميًا~$0.038 يوميًا
فهرسة + Q&A على مجموعة نصوص (1M كلمة)~5M$12 — $75~$0.048
خدمة production، 50K طلب/شهر~200M/شهر$500 — $3,000 شهريًا~$1.92 شهريًا

مع 3M توكن مجانية، يمكنك تشغيل الطلبات الأولى من خط أنابيب RAG، وفهرسة مجموعة نصوص تجريبية، وتنفيذ آلاف الاستعلامات — دون إنفاق سنت واحد. وعلى أحجام production، يحوّل 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="MiniMaxAI/MiniMax-M2.7",
    is_chat_model=True,
    is_function_calling_model=True,
    context_window=180000,
    max_tokens=8192,
)

def multiply(a: float, b: float) -> float:
    """Multiplies two numbers."""
    return a * b

agent = FunctionAgent(
    tools=[multiply],
    llm=llm,
    system_prompt="You are a helpful assistant. Use the tools for calculations.",
)

async def main():
    result = await agent.run("What is 1234 multiplied by 5678?")
    print(result)

asyncio.run(main())

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

النموذج (model)السياقأقصى إخراجمتى تختاره
MiniMaxAI/MiniMax-M2.7180K8192الافتراضي (كما في المثال): استدعاء الأدوات، الوكلاء، RAG
deepseek-ai/DeepSeek-V4-Flash-0731380K32768ثاني أطول سياق في الشبكة، أطول إخراج، مطالبات كبيرة رخيصة
zai-org/GLM-5.3-Flash390K8192نموذج reasoning: منطق معقّد، أطول سياق في الشبكة؛ تستهلك الاستدلالات جزءًا من max_tokens

حد max_tokens عبر Gateway — حتى 8192 لـ MiniMax M2.7 وGLM-5.3 Flash، وحتى 32768 لـ DeepSeek V4 Flash. إذا لم يُضبط max_tokens في طلب غير متدفق (non-streaming)، فإن الافتراضي هو إرجاع ما يصل إلى 1500 توكن — لذا احرص على ضبط القيمة صراحةً لإجابات RAG وخطوات الوكلاء.

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

LlamaIndex + Gonka = RAG ووكلاء جاهزون للـ production بأجزاء من السنت. الاتصال عبر OpenAILike (is_chat_model=True)، دعم أصلي لـ tool calling، وتضمينات محلية (local embeddings) — الدخل $0.0062/1M بدلًا من $2.50–15 في OpenAI. التوكنات المجانية تسمح لك بتجربة الـ pipeline بدون بطاقة.

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

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

احصل على توكنات مجانية →