An open-source project designed to extract relevant data from databases and transform it into context for Retrieval-Augmented Generation (RAG) in generative AI applications.
database2prompt makes it easy to generate prompts to LLMS by reading your database and generating a markdown containing its schema. This provides context for the AI to maximize the effectiveness of your prompts.
Databases | Support |
---|---|
PostgreSQL | ✅ |
We will add support for most databases including analytical databases
Output Format | Support |
---|---|
JSON | ✅ |
Markdown | ✅ |
You can find example outputs generated by database2prompt in the following files:
- summary-database.md - Example of markdown output
- summary-database.json - Example of JSON output
pip install database2prompt
Here's a simple example of how to use database2prompt:
from database2prompt.database.core.database_config import DatabaseConfig
from database2prompt.database.core.database_params import DatabaseParams
from database2prompt.database.core.database_factory import DatabaseFactory
from database2prompt.database.processing.database_processor import DatabaseProcessor
from database2prompt.markdown.markdown_generator import MarkdownGenerator
# 1. Configure database connection
config = DatabaseConfig(
host="localhost",
port=5432,
user="your_user",
password="your_password",
database="your_database",
schema="your_schema"
)
# 2. Connect to database
strategy = DatabaseFactory.run("pgsql", config)
next(strategy.connection())
# 3. Configure which tables to document
params = DatabaseParams()
# Option A: Document specific tables
params.tables(["schema.table1", "schema.table2"])
# Option B: Ignore specific tables
params.ignore_tables(["schema.table_to_ignore"])
# 4. Process database information
database_processor = DatabaseProcessor(strategy, params)
# 5. Generate content to prompt (markdown or json)
content = database_processor.database_to_prompt(output_format="json")
Configure the database connection:
# .env file
DB_HOST=localhost
DB_PORT=5432
DB_USER=postgres
DB_PASSWORD=postgres
DB_NAME=postgres
DB_SCHEMA=public
config = DatabaseConfig.from_env()
-
Clone the repository:
git clone https://github.com/orladigital/database2prompt.git cd database2prompt
-
Create a virtual environment:
python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate
-
Install development dependencies:
pip install poetry poetry install
-
Start the development database (optional):
docker compose up -d
-
Run the project:
poetry run python database2prompt/main.py
You can contribute to database2prompt in many different ways:
- Suggest a feature
- Code an approved feature idea (check our issues)
- Report a bug
- Fix something and open a pull request
- Help with documentation
- Spread the word!
Licensed under the MIT License, see LICENSE for more information.