Contributing to the Repo
Adding a new database
Adding a new database will require the following to be added:
- A new Manager subclass (like the DBManager classes in
exec_engine/db_manager.py
)
- Needs to include logic for supporting transactional commits/rollbacks regardless of the database type (Ensure reversibility for all database types)
- Implementation should be similar to
MySQLManager
or SQLiteManager
- Be able to format a user prompt with additional database specific info (like schema) to inform the LLM how to generate an accurate API call.
- [Optional] If dry-running is wanted:
- Add a new folder inside
docker/
much like docker/mysql_docker
- Make sure the dockerfile sets up the environment for the database deployment
- Create a copy of the database and copy it to the docker container
- Create a reversibility script for dry-running like
exec_engine/db_reversion_test.txt
- This script is written in txt since it will be passed into the docker environment and run with
python_executor.py