From b1dc1a0fc4fc2f9bf27a9647a758a4961a608276 Mon Sep 17 00:00:00 2001 From: Saifeddine ALOUI Date: Mon, 17 Feb 2025 18:34:55 +0100 Subject: [PATCH] Create LightRagWithPostGRESQL.md --- lightrag/api/docs/LightRagWithPostGRESQL.md | 131 ++++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 lightrag/api/docs/LightRagWithPostGRESQL.md diff --git a/lightrag/api/docs/LightRagWithPostGRESQL.md b/lightrag/api/docs/LightRagWithPostGRESQL.md new file mode 100644 index 00000000..dac24f56 --- /dev/null +++ b/lightrag/api/docs/LightRagWithPostGRESQL.md @@ -0,0 +1,131 @@ +# Installing and Using PostgreSQL with LightRAG + +This guide provides step-by-step instructions on setting up PostgreSQL for use with LightRAG, a tool designed to enhance large language model (LLM) performance using retrieval-augmented generation techniques. + +## Prerequisites + +Before beginning this setup, ensure that you have administrative access to your server or local machine and can install software packages. + +### 1. Install PostgreSQL + +First, update your package list and install PostgreSQL: + +```bash +sudo apt update +sudo apt install postgresql postgresql-contrib +``` + +Start the PostgreSQL service if it isn’t already running: + +```bash +sudo systemctl start postgresql +``` + +Ensure that PostgreSQL starts on boot: + +```bash +sudo systemctl enable postgresql +``` + +### 2. Set a Password for Your Postgres Role + +By default, PostgreSQL creates a user named `postgres`. You'll need to set a password for this role or create another role with a password. + +To set a password for the `postgres` user: + +```bash +sudo -u postgres psql +``` + +Inside the PostgreSQL shell, run: + +```sql +ALTER USER postgres WITH PASSWORD 'your_secure_password'; +\q +``` + +Alternatively, to create a new role with a password: + +```bash +sudo -u postgres createuser --interactive +``` + +You'll be prompted for the name of the new role and whether it should have superuser permissions. Then set a password: + +```sql +ALTER USER your_new_role WITH PASSWORD 'your_secure_password'; +\q +``` + +### 3. Install PGVector Extension + +Install necessary dependencies and compile the extension: + +```bash +sudo apt install postgresql-server-dev-all +cd /tmp +git clone --branch v0.8.0 https://github.com/pgvector/pgvector.git +cd pgvector +make +sudo make install +``` + +Enable the `pgvector` extension in your PostgreSQL database: + +```sql +CREATE EXTENSION vector; +``` + +Verify installation by checking the extension version: + +```sql +SELECT extversion FROM pg_extension WHERE extname = 'vector'; +``` + +### 4. Create a Database + +Create an empty database to store your data: + +```bash +sudo -u postgres createdb your_database +``` + +### 5. Install LightRAG with API Access + +Install LightRAG using pip, targeting the API package for server-side use: + +```bash +pip install https://github.com/ParisNeo/LightRAG.git[api] +``` + +### 6. Configure `config.ini` + +Create a configuration file to specify PostgreSQL connection details and other settings: + +In your project directory, create a `config.ini` file with the following content: + +```ini +[postgres] +host = localhost +port = 5432 +user = your_role_name +password = your_password +database = your_database +workspace = default +``` + +Replace placeholders like `your_role_name`, `your_password`, and `your_database` with actual values. + +### 7. Run LightRAG Server + +Start the LightRAG server using specified options: + +```bash +lightrag-server --port the-port-number --key your-secret-key --kv-storage PGKVStorage --graph-storage PGGraphStorage --vector-storage PGVectorStorage +``` + +Replace `the-port-number` with your desired port number (default is 9621) and `your-secret-key` with a secure key. + +## Conclusion + +With PostgreSQL set up to work with LightRAG, you can now leverage vector storage and retrieval-augmented capabilities for enhanced language model operations. Adjust configurations as needed based on your specific environment and use case requirements.