From c18697305ef389712d8902d6acc1fd8dc8d511d4 Mon Sep 17 00:00:00 2001 From: Larfii <834462287@qq.com> Date: Tue, 8 Oct 2024 14:39:05 +0800 Subject: [PATCH] update --- README.md | 171 +++++++++++++++++- examples/batch_eval.py | 4 +- examples/generate_query.py | 2 +- examples/insert.py | 2 +- examples/query.py | 2 +- lightrag/__pycache__/__init__.cpython-310.pyc | Bin 307 -> 0 bytes lightrag/__pycache__/base.cpython-310.pyc | Bin 5497 -> 0 bytes lightrag/__pycache__/lightrag.cpython-310.pyc | Bin 7599 -> 0 bytes lightrag/__pycache__/llm.cpython-310.pyc | Bin 2522 -> 0 bytes lightrag/__pycache__/myrag.cpython-310.pyc | Bin 7889 -> 0 bytes lightrag/__pycache__/operate.cpython-310.pyc | Bin 23585 -> 0 bytes lightrag/__pycache__/prompt.cpython-310.pyc | Bin 17613 -> 0 bytes lightrag/__pycache__/storage.cpython-310.pyc | Bin 12184 -> 0 bytes lightrag/__pycache__/utils.cpython-310.pyc | Bin 6977 -> 0 bytes setup.py | 2 +- 15 files changed, 174 insertions(+), 9 deletions(-) delete mode 100644 lightrag/__pycache__/__init__.cpython-310.pyc delete mode 100644 lightrag/__pycache__/base.cpython-310.pyc delete mode 100644 lightrag/__pycache__/lightrag.cpython-310.pyc delete mode 100644 lightrag/__pycache__/llm.cpython-310.pyc delete mode 100644 lightrag/__pycache__/myrag.cpython-310.pyc delete mode 100644 lightrag/__pycache__/operate.cpython-310.pyc delete mode 100644 lightrag/__pycache__/prompt.cpython-310.pyc delete mode 100644 lightrag/__pycache__/storage.cpython-310.pyc delete mode 100644 lightrag/__pycache__/utils.cpython-310.pyc diff --git a/README.md b/README.md index 7b7f3d29..eef2ae53 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,171 @@ -# LightRAG +# LightRAG: Simple and Fast Retrieval-Augmented Generation + + + + +This repository hosts the code of LightRAG. The structure of this code is based on [nano-graphrag](https://github.com/gusye1234/nano-graphrag). +## Install + +* Install from source + +``` +cd LightRAG +pip install -e . +``` +* Install from PyPI +``` +pip install lightrag-hku +``` + +## Quick Start + +* Set OpenAI API key in environment: `export OPENAI_API_KEY="sk-...".` +* Download the demo text "A Christmas Carol by Charles Dickens" +``` +curl https://raw.githubusercontent.com/gusye1234/nano-graphrag/main/tests/mock_data.txt > ./book.txt +``` +Use the below python snippet: + +``` +from lightrag import LightRAG, QueryParam + +rag = LightRAG(working_dir="./dickens") + +with open("./book.txt") as f: + rag.insert(f.read()) + +# Perform naive search +print(rag.query("What are the top themes in this story?", param=QueryParam(mode="naive"))) + +# Perform local search +print(rag.query("What are the top themes in this story?", param=QueryParam(mode="local"))) + +# Perform global search +print(rag.query("What are the top themes in this story?", param=QueryParam(mode="global"))) + +# Perform hybird search +print(rag.query("What are the top themes in this story?", param=QueryParam(mode="hybird"))) +``` +Batch Insert +``` +rag.insert(["TEXT1", "TEXT2",...]) +``` +Incremental Insert + +``` +rag = LightRAG(working_dir="./dickens") + +with open("./newText.txt") as f: + rag.insert(f.read()) +``` +## Evaluation +### Dataset +The dataset used in LightRAG can be download from [TommyChien/UltraDomain](https://huggingface.co/datasets/TommyChien/UltraDomain). + +### Generate Query +LightRAG uses the following prompt to generate high-level queries, with the corresponding code located in `example/generate_query.py`. +``` +Given the following description of a dataset: + +{description} + +Please identify 5 potential users who would engage with this dataset. For each user, list 5 tasks they would perform with this dataset. Then, for each (user, task) combination, generate 5 questions that require a high-level understanding of the entire dataset. + +Output the results in the following structure: +- User 1: [user description] + - Task 1: [task description] + - Question 1: + - Question 2: + - Question 3: + - Question 4: + - Question 5: + - Task 2: [task description] + ... + - Task 5: [task description] +- User 2: [user description] + ... +- User 5: [user description] + ... +``` + + ### Batch Eval +To evaluate the performance of two RAG systems on high-level queries, LightRAG uses the following prompt, with the specific code available in `example/batch_eval.py`. +``` +---Role--- +You are an expert tasked with evaluating two answers to the same question based on three criteria: **Comprehensiveness**, **Diversity**, and **Empowerment**. +---Goal--- +You will evaluate two answers to the same question based on three criteria: **Comprehensiveness**, **Diversity**, and **Empowerment**. + +- **Comprehensiveness**: How much detail does the answer provide to cover all aspects and details of the question? +- **Diversity**: How varied and rich is the answer in providing different perspectives and insights on the question? +- **Empowerment**: How well does the answer help the reader understand and make informed judgments about the topic? + +For each criterion, choose the better answer (either Answer 1 or Answer 2) and explain why. Then, select an overall winner based on these three categories. + +Here is the question: +{query} + +Here are the two answers: + +**Answer 1:** +{answer1} + +**Answer 2:** +{answer2} + +Evaluate both answers using the three criteria listed above and provide detailed explanations for each criterion. + +Output your evaluation in the following JSON format: + +{{ + "Comprehensiveness": {{ + "Winner": "[Answer 1 or Answer 2]", + "Explanation": "[Provide explanation here]" + }}, + "Empowerment": {{ + "Winner": "[Answer 1 or Answer 2]", + "Explanation": "[Provide explanation here]" + }}, + "Overall Winner": {{ + "Winner": "[Answer 1 or Answer 2]", + "Explanation": "[Summarize why this answer is the overall winner based on the three criteria]" + }} +}} +``` +## Code Structure + +``` +. +├── examples +│ ├── batch_eval.py +│ ├── generate_query.py +│ ├── insert.py +│ └── query.py +├── lightrag +│ ├── __init__.py +│ ├── base.py +│ ├── lightrag.py +│ ├── llm.py +│ ├── operate.py +│ ├── prompt.py +│ ├── storage.py +│ └── utils.jpeg +├── LICENSE +├── README.md +├── requirements.txt +└── setup.py +``` ## Citation -## Acknowledgement -The structure of this code is based on [nano-graphrag](https://github.com/gusye1234/nano-graphrag). \ No newline at end of file +``` +@article{guo2024lightrag, +title={LightRAG: Simple and Fast Retrieval-Augmented Generation}, +author={Zirui Guo and Lianghao Xia and Yanhua Yu and Tu Ao and Chao Huang}, +year={2024}, +eprint={}, +archivePrefix={arXiv}, +primaryClass={cs.IR} +} +``` + diff --git a/examples/batch_eval.py b/examples/batch_eval.py index 753ecb7d..4601d267 100644 --- a/examples/batch_eval.py +++ b/examples/batch_eval.py @@ -6,8 +6,8 @@ import jsonlines from openai import OpenAI -def batch_eval(query_file, result1_file, result2_file, output_file_path, api_key): - client = OpenAI(api_key=api_key) +def batch_eval(query_file, result1_file, result2_file, output_file_path): + client = OpenAI() with open(query_file, 'r') as f: data = f.read() diff --git a/examples/generate_query.py b/examples/generate_query.py index 4f694f31..0ae82f40 100644 --- a/examples/generate_query.py +++ b/examples/generate_query.py @@ -2,7 +2,7 @@ import os from openai import OpenAI -os.environ["OPENAI_API_KEY"] = "" +# os.environ["OPENAI_API_KEY"] = "" def openai_complete_if_cache( model="gpt-4o-mini", prompt=None, system_prompt=None, history_messages=[], **kwargs diff --git a/examples/insert.py b/examples/insert.py index d0689bae..25c3cdda 100644 --- a/examples/insert.py +++ b/examples/insert.py @@ -3,7 +3,7 @@ import sys from lightrag import LightRAG -os.environ["OPENAI_API_KEY"] = "" +# os.environ["OPENAI_API_KEY"] = "" WORKING_DIR = "" diff --git a/examples/query.py b/examples/query.py index b7de519b..00c902eb 100644 --- a/examples/query.py +++ b/examples/query.py @@ -3,7 +3,7 @@ import sys from lightrag import LightRAG, QueryParam -os.environ["OPENAI_API_KEY"] = "" +# os.environ["OPENAI_API_KEY"] = "" WORKING_DIR = "" diff --git a/lightrag/__pycache__/__init__.cpython-310.pyc b/lightrag/__pycache__/__init__.cpython-310.pyc deleted file mode 100644 index 185bed6d2f4b8703d97d1d689cc218b949ab6029..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 307 zcmYk1%}T^D6or%Y$66Wi5e9eNG~-r86qE{zsH2-~E_G6xKszb7i7g3Z~zZk2t$s^5NdRaL$ohWOE@r?6UTjk!$ zjp_OA-Rt$5S6C0~Mr!*|q;uAVI;>j^_h959jsV^p9JSd3%sD{qtTG574gef>0AB>t ykPi4QxiWpjCv2VJ8zUROzmV^{Ie^}33s4TbIXmx-bX{{19vU-`V-mBNX7mqSL{P>6 diff --git a/lightrag/__pycache__/base.cpython-310.pyc b/lightrag/__pycache__/base.cpython-310.pyc deleted file mode 100644 index 4e0f8ec91d0ebfb7893ec589af615f0d2573344c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5497 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 UsX1l|{~G_q_=z)JWY+Hg0#HcELjV8( diff --git a/lightrag/__pycache__/operate.cpython-310.pyc b/lightrag/__pycache__/operate.cpython-310.pyc deleted file mode 100644 index 2a4942ec6850fabb4dd18a6b7a4b83439a42bb42..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23585 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 XcdjmlZ&F2V%pNdzGrj-D<=6i&sm!M@ diff --git a/lightrag/__pycache__/prompt.cpython-310.pyc b/lightrag/__pycache__/prompt.cpython-310.pyc deleted file mode 100644 index 9db6378c64ce68763c41453bfb6fb61e4cb7fd74..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17613 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 HhI9W18^&10 diff --git a/setup.py b/setup.py index 0852ea5a..df1c3cf4 100644 --- a/setup.py +++ b/setup.py @@ -21,7 +21,7 @@ with open("./requirements.txt") as f: deps.append(line.strip()) setuptools.setup( - name="lightrag", + name="light-rag", url=vars2readme["__url__"], version=vars2readme["__version__"], author=vars2readme["__author__"],