LlamaIndex (Indeks GPT) adalah kerangka data untuk aplikasi LLM Anda. Membangun dengan LlamaIndex biasanya melibatkan penggunaan inti LlamaIndex dan serangkaian integrasi (atau plugin) yang dipilih. Ada dua cara untuk mulai membangun dengan LlamaIndex dengan Python:
Pemula : llama-index
. Paket pemula Python yang mencakup inti LlamaIndex serta pilihan integrasi.
Disesuaikan : llama-index-core
. Instal inti LlamaIndex dan tambahkan paket integrasi LlamaIndex pilihan Anda di LlamaHub yang diperlukan untuk aplikasi Anda. Ada lebih dari 300 paket integrasi LlamaIndex yang bekerja secara lancar dengan inti, memungkinkan Anda membangun dengan penyedia LLM, penyematan, dan penyimpanan vektor pilihan Anda.
Pustaka LlamaIndex Python diberi namespace sedemikian rupa sehingga pernyataan import yang menyertakan core
menyiratkan bahwa paket inti sedang digunakan. Sebaliknya, pernyataan tanpa core
menyiratkan bahwa paket integrasi sedang digunakan.
# 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 (Skrip Ketik/Javascript)
Dokumentasi
Perselisihan
CATATAN : README ini tidak diperbarui sesering dokumentasi. Silakan periksa dokumentasi di atas untuk pembaruan terkini!
Kami memerlukan perangkat yang komprehensif untuk membantu melakukan augmentasi data ini untuk LLM.
Di situlah LlamaIndex berperan. LlamaIndex adalah "kerangka data" untuk membantu Anda membangun aplikasi LLM. Ini menyediakan alat-alat berikut:
LlamaIndex menyediakan alat untuk pengguna pemula dan pengguna tingkat lanjut. API tingkat tinggi kami memungkinkan pengguna pemula menggunakan LlamaIndex untuk menyerap dan menanyakan data mereka dalam 5 baris kode. API tingkat rendah kami memungkinkan pengguna tingkat lanjut untuk menyesuaikan dan memperluas modul apa pun (konektor data, indeks, pengambil, mesin kueri, modul pemeringkatan ulang), agar sesuai dengan kebutuhan mereka.
Tertarik untuk berkontribusi? Kontribusi pada inti LlamaIndex serta kontribusi integrasi yang membangun inti diterima dan sangat dianjurkan! Lihat Panduan Kontribusi kami untuk lebih jelasnya.
Dokumentasi lengkap dapat ditemukan di sini
Silakan periksa untuk mengetahui tutorial terkini, panduan cara kerja, referensi, dan sumber daya lainnya!
# 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
Contohnya ada di folder docs/examples
. Indeks ada di folder indices
(lihat daftar indeks di bawah).
Untuk membuat indeks penyimpanan vektor sederhana menggunakan 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 )
Untuk membuat indeks penyimpanan vektor sederhana menggunakan LLM non-OpenAI, misalnya Llama 2 yang dihosting di Replikasi, tempat Anda dapat dengan mudah membuat token API uji coba gratis:
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 ,
)
Untuk menanyakan:
query_engine = index . as_query_engine ()
query_engine . query ( "YOUR_QUESTION" )
Secara default, data disimpan di memori. Untuk bertahan di disk (di bawah ./storage
):
index . storage_context . persist ()
Untuk memuat ulang dari disk:
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 )
Kami menggunakan puisi sebagai pengelola paket untuk semua paket Python. Hasilnya, dependensi setiap paket Python dapat ditemukan dengan mereferensikan file pyproject.toml
di setiap folder paket.
cd < desired-package-folder >
pip install poetry
poetry install --with dev
Referensi untuk dikutip jika Anda menggunakan LlamaIndex di makalah:
@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}
}