Setup Details
To set up Simon, please follow the quick start instructions. This document aims to provide some specific pointers to each step of the quick start guide.
This page is not meant to be read from start to finish, refer to specific sections only as needed.
Database Self-Hosting
FYI: on the sidebar, you can find setup guides available for a selection of cloud databases. If you want to self-host your PostgresSQL instance, read on.
-
You will need to first setup an instance of Postgresql (version 15) on either a remote server or on your local machine.
- To set it up on your local machine, follow the instructions available here.
- If setting up remotely, identify and follow the instructions of your cloud provider.
-
After setting up postgres, install the
vector
plugin available here (and already installed on most major cloud providers—just find instructions on how to enable it) to support Simon. -
Get the postgres connection credentials (for local installations, they are often
localhost:5432
, usernamepostgres
and no password; please refer to your distribution's instructions) and OpenAI credentials, and keep it for use in the steps below. -
Start your PostgreSQL instance, and be sure it's ready to receive requests!
Java
If you would like to perform OCR or textual extraction from PDFs/impges with Simon, you optionally need Java installed/available to run Tika
which is used for fetching/manipulating external data.
Check that it's available:
If not, install is system dependent. Quick fix for Ubuntu + Debian-based distros: sudo apt install default-jre
. For macOS, run brew install java
and be sure to follow the "Next Steps"/"Caveats" instructions afterwards.
Environment Variable Management
simon.create_context
requires some {OpenAI, database} secrets. In lieu of providing them directly to the function, you can store these in a .env
file or just set them as environment variables.
To do so, populate a new file named .env
following this template and place it in the directory where you run python.
In lieu of creating an .env
file, you can also use the export
directive in your bash shell to set all of the environment variables listed in the file above for the current shell session.
Values set in your shell will override those in the .env
file.
Database Provisioning
You need to manually seed the database schema when you're first setting up. There are two options available to help you provision your database.
Option 1: Provisioning with the library
You can provision Simon with Simon itself; to do so, follow the steps available here the quickstart guide.
Option 2: Provisioning with the CLI setup script
In addition to the programmatic setup above, if you are using the .env
file to store your credentials, we also built a CLI setup script to set up the tool on your behalf.
To do this, fill out the environment variables found in .env.example
available at this link into the .env
file in any local directory, then run in the same directory in which you have your .env
file:
to setup your database. If the program exits without error, you are good to go.
As with before, you can use the export
directive in your bash shell or inline variable configuration to override or obviate the need to create an .env
file: