Science Score: 57.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in README
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (17.3%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Basic Info
  • Host: GitHub
  • Owner: williamgomez71
  • License: mit
  • Language: Python
  • Default Branch: main
  • Size: 36.7 MB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created over 2 years ago · Last pushed about 2 years ago
Metadata Files
Readme Changelog Contributing License Citation

README.md

LlamaIndex

PyPI - Downloads GitHub contributors Discord

LlamaIndex 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.

Discord: https://discord.gg/dGcwcsnxhU.

Ecosystem

  • LlamaHub (community library of data loaders): https://llamahub.ai
  • LlamaLab (cutting-edge AGI projects using LlamaIndex): https://github.com/run-llama/llama-lab

Overview

NOTE: This README is not updated as frequently as the documentation. Please check out the documentation above for the latest updates!

Context

  • LLMs 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 Solution

That's where LlamaIndex comes in. LlamaIndex is a "data framework" to help you build LLM apps. It provides the following tools:

  • Offers data connectors to ingest your existing data sources and data formats (APIs, PDFs, docs, SQL, etc.)
  • Provides ways to structure your data (indices, graphs) so that this data can be easily used with LLMs.
  • Provides an advanced 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.

Contributing

Interested in contributing? See our Contribution Guide for more details.

Documentation

Full documentation can be found here: https://gpt-index.readthedocs.io/en/latest/.

Please check it out for the most up-to-date tutorials, how-to guides, references, and other resources!

Example Usage

pip install llama-index

Examples are in the examples folder. Indices are in the indices folder (see list of indices below).

To build a simple vector store index using OpenAI:

```python import os

os.environ["OPENAIAPIKEY"] = "YOUROPENAIAPI_KEY"

from llama_index import VectorStoreIndex, SimpleDirectoryReader

documents = SimpleDirectoryReader("YOURDATADIRECTORY").loaddata() index = VectorStoreIndex.fromdocuments(documents) ```

To build a simple vector store index using non-OpenAI LLMs, e.g. Llama 2 hosted on Replicate, where you can easily create a free trial API token:

```python import os

os.environ["REPLICATEAPITOKEN"] = "YOURREPLICATEAPI_TOKEN"

from llama_index.llms import Replicate

llama27bchat = "meta/llama-2-7b-chat:8e6975e5ed6174911a6ff3d60540dfd4844201974602551e10e9e87ab143d81e" llm = Replicate( model=llama27bchat, temperature=0.01, additionalkwargs={"topp": 1, "maxnewtokens": 300}, )

set tokenizer to match LLM

from llamaindex import setglobal_tokenizer from transformers import AutoTokenizer

setglobaltokenizer( AutoTokenizer.from_pretrained("NousResearch/Llama-2-7b-chat-hf").encode )

from llamaindex.embeddings import HuggingFaceEmbedding from llamaindex import ServiceContext

embedmodel = HuggingFaceEmbedding(modelname="BAAI/bge-small-en-v1.5") servicecontext = ServiceContext.fromdefaults( llm=llm, embedmodel=embedmodel )

from llama_index import VectorStoreIndex, SimpleDirectoryReader

documents = SimpleDirectoryReader("YOURDATADIRECTORY").loaddata() index = VectorStoreIndex.fromdocuments( documents, servicecontext=servicecontext ) ```

To query:

python query_engine = index.as_query_engine() query_engine.query("YOUR_QUESTION")

By default, data is stored in-memory. To persist to disk (under ./storage):

python index.storage_context.persist()

To reload from disk:

```python from llamaindex import StorageContext, loadindexfromstorage

rebuild storage context

storagecontext = StorageContext.fromdefaults(persist_dir="./storage")

load index

index = loadindexfromstorage(storagecontext) ```

Dependencies

The main third-party package requirements are tiktoken, openai, and langchain.

All requirements should be contained within the setup.py file. To run the package locally without building the wheel, simply run:

bash pip install poetry poetry install --with dev

Citation

Reference 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} }

Owner

  • Login: williamgomez71
  • Kind: user

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
  - family-names: "Liu"
    given-names: "Jerry"
    orcid: "https://orcid.org/0000-0002-6694-3517"
title: "LlamaIndex"
doi: 10.5281/zenodo.1234
date-released: 2022-11-1
url: "https://github.com/jerryjliu/llama_index"

GitHub Events

Total
Last Year

Dependencies

docs/requirements.txt pypi
  • autodoc_pydantic *
  • docutils <0.17
  • furo >=2023.3.27
  • m2r2 *
  • myst-nb *
  • myst-parser *
  • pydantic <2.0.0
  • sphinx >=4.3.0
  • sphinx-autobuild *
  • sphinx-automodapi ==0.16.0
  • sphinx-reredirects >=0.1.2
  • sphinx_rtd_theme *
llama_index_spanish/download/llamahub_modules/requirements.txt pypi
  • pandas *
poetry.lock pypi
  • 299 dependencies
pyproject.toml pypi
  • SQLAlchemy >=1.4.49
  • aiohttp ^3.8.6
  • aiostream ^0.5.2
  • asyncpg ^0.28.0
  • beautifulsoup4 ^4.12.2
  • dataclasses-json *
  • deprecated >=1.2.9.3
  • fsspec >=2023.5.0
  • guidance ^0.0.64
  • httpx *
  • jsonpath-ng ^1.6.0
  • langchain >=0.0.303
  • lm-format-enforcer ^0.4.3
  • nest-asyncio ^1.5.8
  • nltk ^3.8.1
  • numpy *
  • openai >=1.1.0
  • optimum ^1.13.2
  • pandas *
  • pgvector ^0.1.0
  • psycopg-binary ^3.1.12
  • python >=3.8.1,<3.12
  • rank-bm25 ^0.2.2
  • requests >=2.31.0
  • scikit-learn <1.3.0
  • sentencepiece ^0.1.99
  • spacy ^3.7.1
  • tenacity >=8.2.0,<9.0.0
  • tiktoken >=0.3.3
  • transformers ^4.34.0
  • typing-extensions >=4.5.0
  • typing-inspect >=0.8.0
requirements.txt pypi