LlamaIndex (مؤشر GPT) هو إطار بيانات لتطبيق LLM الخاص بك. يتضمن البناء باستخدام LlamaIndex عادةً العمل مع LlamaIndex الأساسي ومجموعة مختارة من عمليات التكامل (أو المكونات الإضافية). هناك طريقتان لبدء البناء باستخدام LlamaIndex في Python:
المبتدئ : llama-index
. حزمة Python المبدئية التي تتضمن LlamaIndex الأساسي بالإضافة إلى مجموعة مختارة من عمليات التكامل.
تخصيص : llama-index-core
. قم بتثبيت LlamaIndex الأساسي وأضف حزم تكامل LlamaIndex التي اخترتها على LlamaHub والمطلوبة لتطبيقك. هناك أكثر من 300 حزمة تكامل LlamaIndex تعمل بسلاسة مع النواة، مما يسمح لك بالإنشاء باستخدام مزودي خدمات LLM والتضمين وتخزين المتجهات المفضلين لديك.
مكتبة LlamaIndex Python ذات مساحة اسم بحيث تشير عبارات الاستيراد التي تتضمن core
إلى أن الحزمة الأساسية قيد الاستخدام. في المقابل، تشير تلك العبارات التي لا تحتوي على core
إلى أنه يتم استخدام حزمة التكامل.
# typical pattern
from llama_index . core . xxx import ClassABC # core submodule xxx
from llama_index . xxx . yyy import (
SubclassABC ,
) # integration yyy for submodule xxx
# concrete example
from llama_index . core . llms import LLM
from llama_index . llms . openai import OpenAI
LlamaIndex.TS (Typescript/Javascript)
التوثيق
تغريد
الفتنة
ملاحظة : لا يتم تحديث هذا الملف التمهيدي (README) بشكل متكرر مثل الوثائق. يرجى مراجعة الوثائق أعلاه للحصول على آخر التحديثات!
نحن بحاجة إلى مجموعة أدوات شاملة للمساعدة في تنفيذ عملية زيادة البيانات الخاصة بـ LLMs.
وهنا يأتي دور LlamaIndex . LlamaIndex هو "إطار بيانات" لمساعدتك في إنشاء تطبيقات LLM. ويوفر الأدوات التالية:
يوفر LlamaIndex أدوات لكل من المستخدمين المبتدئين والمستخدمين المتقدمين. تتيح واجهة برمجة التطبيقات عالية المستوى الخاصة بنا للمستخدمين المبتدئين استخدام LlamaIndex لاستيعاب بياناتهم والاستعلام عنها في 5 أسطر من التعليمات البرمجية. تسمح واجهات برمجة التطبيقات ذات المستوى الأدنى للمستخدمين المتقدمين بتخصيص وتوسيع أي وحدة (موصلات البيانات، والمؤشرات، والمستردون، ومحركات الاستعلام، ووحدات إعادة الترتيب)، لتناسب احتياجاتهم.
هل أنت مهتم بالمساهمة؟ يتم قبول المساهمات في LlamaIndex الأساسية بالإضافة إلى عمليات التكامل المساهمة التي تعتمد على الجوهر، ويتم تشجيعها بشدة! راجع دليل المساهمة الخاص بنا لمزيد من التفاصيل.
يمكن العثور على الوثائق الكاملة هنا
يرجى التحقق من ذلك للحصول على أحدث البرامج التعليمية والأدلة الإرشادية والمراجع والموارد الأخرى!
# custom selection of integrations to work with core
pip install llama-index-core
pip install llama-index-llms-openai
pip install llama-index-llms-replicate
pip install llama-index-embeddings-huggingface
الأمثلة موجودة في مجلد docs/examples
. المؤشرات موجودة في مجلد indices
(انظر قائمة المؤشرات أدناه).
لإنشاء فهرس متجر متجه بسيط باستخدام OpenAI:
import os
os . environ [ "OPENAI_API_KEY" ] = "YOUR_OPENAI_API_KEY"
from llama_index . core import VectorStoreIndex , SimpleDirectoryReader
documents = SimpleDirectoryReader ( "YOUR_DATA_DIRECTORY" ). load_data ()
index = VectorStoreIndex . from_documents ( documents )
لإنشاء فهرس متجر متجه بسيط باستخدام LLMs غير تابعة لـ OpenAI، على سبيل المثال Llama 2 المستضاف على Replicate، حيث يمكنك بسهولة إنشاء رمز مميز لواجهة برمجة التطبيقات (API) تجريبي مجاني:
import os
os . environ [ "REPLICATE_API_TOKEN" ] = "YOUR_REPLICATE_API_TOKEN"
from llama_index . core import Settings , VectorStoreIndex , SimpleDirectoryReader
from llama_index . embeddings . huggingface import HuggingFaceEmbedding
from llama_index . llms . replicate import Replicate
from transformers import AutoTokenizer
# set the LLM
llama2_7b_chat = "meta/llama-2-7b-chat:8e6975e5ed6174911a6ff3d60540dfd4844201974602551e10e9e87ab143d81e"
Settings . llm = Replicate (
model = llama2_7b_chat ,
temperature = 0.01 ,
additional_kwargs = { "top_p" : 1 , "max_new_tokens" : 300 },
)
# set tokenizer to match LLM
Settings . tokenizer = AutoTokenizer . from_pretrained (
"NousResearch/Llama-2-7b-chat-hf"
)
# set the embed model
Settings . embed_model = HuggingFaceEmbedding (
model_name = "BAAI/bge-small-en-v1.5"
)
documents = SimpleDirectoryReader ( "YOUR_DATA_DIRECTORY" ). load_data ()
index = VectorStoreIndex . from_documents (
documents ,
)
للاستعلام:
query_engine = index . as_query_engine ()
query_engine . query ( "YOUR_QUESTION" )
بشكل افتراضي، يتم تخزين البيانات في الذاكرة. للاستمرار في القرص (تحت ./storage
):
index . storage_context . persist ()
لإعادة التحميل من القرص:
from llama_index . core import StorageContext , load_index_from_storage
# rebuild storage context
storage_context = StorageContext . from_defaults ( persist_dir = "./storage" )
# load index
index = load_index_from_storage ( storage_context )
نحن نستخدم الشعر كمدير للحزم لجميع حزم بايثون. ونتيجة لذلك، يمكن العثور على تبعيات كل حزمة بايثون من خلال الرجوع إلى ملف pyproject.toml
في كل مجلد من مجلدات الحزمة.
cd < desired-package-folder >
pip install poetry
poetry install --with dev
مرجع للاستشهاد إذا كنت تستخدم LlamaIndex في ورقة:
@software{Liu_LlamaIndex_2022,
author = {Liu, Jerry},
doi = {10.5281/zenodo.1234},
month = {11},
title = {{LlamaIndex}},
url = {https://github.com/jerryjliu/llama_index},
year = {2022}
}