Package: llama-index-legacy
🗂️ LlamaIndex 🦙LlamaIndex (GPT Index) is a data framework for your LLM application.PyPI:LlamaIndex:https://pypi.org/project/llama-index/.GPT Index (duplicate):https://pypi.org/project/gpt-index/.LlamaIndex.TS (Typescript/Javascript):https://github.com/run-llama/LlamaIndexTS.Documentation:https://docs.llamaindex.ai/en/stable/.Twitter:https://twitter.com/llama_index.legacy.Discord:https://discord.gg/dGcwcsnxhU.EcosystemLlamaHub (community library of data loaders):https://llamahub.ai.LlamaLab (cutting-edge AGI projects using LlamaIndex):https://github.com/run-llama/llama-lab.🚀 OverviewNOTE: This README is not updated as frequently as the documentation. Please check out the documentation above for the latest updates!ContextLLMs are a phenomenal piece of technology for knowledge generation and reasoning. They are pre-trained on large amounts of publicly available data.How do we best augment LLMs with our own private data?We need a comprehensive toolkit to help perform this data augmentation for LLMs.Proposed SolutionThat's whereLlamaIndexcomes in. LlamaIndex is a "data framework" to help you build LLM apps. It provides the following tools:Offersdata connectorsto ingest your existing data sources and data formats (APIs, PDFs, docs, SQL, etc.).Provides ways tostructure your data(indices, graphs) so that this data can be easily used with LLMs.Provides anadvanced retrieval/query interface over your data: Feed in any LLM input prompt, get back retrieved context and knowledge-augmented output.Allows easy integrations with your outer application framework (e.g. with LangChain, Flask, Docker, ChatGPT, anything else).LlamaIndex provides tools for both beginner users and advanced users. Our high-level API allows beginner users to use LlamaIndex to ingest and query their data in
5 lines of code. Our lower-level APIs allow advanced users to customize and extend any module (data connectors, indices, retrievers, query engines, reranking modules),
to fit their needs.💡 ContributingInterested in contributing? See ourContribution Guidefor more details.📄 DocumentationFull documentation can be found here:https://docs.llamaindex.ai/en/latest/.Please check it out for the most up-to-date tutorials, how-to guides, references, and other resources!💻 Example Usagepip install llama-indexExamples are in theexamplesfolder. Indices are in theindicesfolder (see list of indices below).To build a simple vector store index using OpenAI:importosos.environ["OPENAI_API_KEY"]="YOUR_OPENAI_API_KEY"fromllama_index.legacy.legacyimportVectorStoreIndex,SimpleDirectoryReaderdocuments=SimpleDirectoryReader("YOUR_DATA_DIRECTORY").load_data()index=VectorStoreIndex.from_documents(documents)To build a simple vector store index using non-OpenAI LLMs, e.g. Llama 2 hosted onReplicate, where you can easily create a free trial API token:importosos.environ["REPLICATE_API_TOKEN"]="YOUR_REPLICATE_API_TOKEN"fromllama_index.legacy.legacy.llmsimportReplicatellama2_7b_chat="meta/llama-2-7b-chat:8e6975e5ed6174911a6ff3d60540dfd4844201974602551e10e9e87ab143d81e"llm=Replicate(model=llama2_7b_chat,temperature=0.01,additional_kwargs={"top_p":1,"max_new_tokens":300},)# set tokenizer to match LLMfromllama_index.legacy.legacyimportset_global_tokenizerfromtransformersimportAutoTokenizerset_global_tokenizer(AutoTokenizer.from_pretrained("NousResearch/Llama-2-7b-chat-hf").encode)fromllama_index.legacy.legacy.embeddingsimportHuggingFaceEmbeddingfromllama_index.legacy.legacyimportServiceContextembed_model=HuggingFaceEmbedding(model_name="BAAI/bge-small-en-v1.5")service_context=ServiceContext.from_defaults(llm=llm,embed_model=embed_model)fromllama_index.legacy.legacyimportVectorStoreIndex,SimpleDirectoryReaderdocuments=SimpleDirectoryReader("YOUR_DATA_DIRECTORY").load_data()index=VectorStoreIndex.from_documents(documents,service_context=service_context)To query:query_engine=index.as_query_engine()query_engine.query("YOUR_QUESTION")By default, data is stored in-memory.
To persist to disk (under./storage):index.storage_context.persist()To reload from disk:fromllama_index.legacy.legacyimportStorageContext,load_index_from_storage# rebuild storage contextstorage_context=StorageContext.from_defaults(persist_dir="./storage")# load indexindex=load_index_from_storage(storage_context)🔧 DependenciesThe main third-party package requirements aretiktoken,openai, andlangchain.All requirements should be contained within thesetup.pyfile.
To run the package locally without building the wheel, simply run:pipinstallpoetry
poetryinstall--withdev📖 CitationReference to cite if you use LlamaIndex in a paper:@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}
}