|
# Initial Setup |
|
|
|
⚠️ **Create the .env file inside the `code/` directory.** |
|
|
|
## Python Environment |
|
|
|
Python Version: 3.11 |
|
|
|
Create a virtual environment and install the required packages: |
|
|
|
```bash |
|
conda create -n ai_tutor python=3.11 |
|
conda activate ai_tutor |
|
pip install -r requirements.txt |
|
``` |
|
|
|
## Code Formatting |
|
|
|
The codebase is formatted using [black](https://github.com/psf/black), and if making changes to the codebase, ensure that the code is formatted before submitting a pull request. More instructions can be found in `docs/contribute.md`. |
|
|
|
## Google OAuth 2.0 Client ID and Secret |
|
|
|
To set up the Google OAuth 2.0 Client ID and Secret, follow these steps: |
|
|
|
1. Go to the [Google Cloud Console](https://console.cloud.google.com/apis/credentials). |
|
2. Create a new project or select an existing one. |
|
3. Navigate to the "Credentials" page. |
|
4. Click on "Create Credentials" and select "OAuth 2.0 Client ID". |
|
5. Configure the OAuth consent screen if you haven't already. |
|
6. Choose "Web application" as the application type. |
|
7. Configure the redirect URIs as needed. |
|
8. Copy the generated `Client ID` and `Client Secret`. |
|
|
|
Set the following in the .env file (if running locally) or in secrets (if running on Hugging Face Spaces): |
|
|
|
```bash |
|
OAUTH_GOOGLE_CLIENT_ID=<your_client_id> |
|
OAUTH_GOOGLE_CLIENT_SECRET=<your_client_secret> |
|
``` |
|
|
|
## Literal AI API Key |
|
|
|
To obtain the Literal AI API key: |
|
|
|
1. Sign up or log in to [Literal AI](https://cloud.getliteral.ai/). |
|
2. Navigate to the API Keys section under your account settings. |
|
3. Create a new API key if necessary and copy it. |
|
|
|
Set the following in the .env file (if running locally) or in secrets (if running on Hugging Face Spaces): |
|
|
|
```bash |
|
LITERAL_API_KEY_LOGGING=<your_api_key> |
|
LITERAL_API_URL=https://cloud.getliteral.ai |
|
``` |
|
|
|
## LlamaCloud API Key |
|
|
|
To obtain the LlamaCloud API Key: |
|
|
|
1. Go to [LlamaCloud](https://cloud.llamaindex.ai/). |
|
2. Sign up or log in to your account. |
|
3. Navigate to the API section and generate a new API key if necessary. |
|
|
|
Set the following in the .env file (if running locally) or in secrets (if running on Hugging Face Spaces): |
|
|
|
```bash |
|
LLAMA_CLOUD_API_KEY=<your_api_key> |
|
``` |
|
|
|
## Hugging Face Access Token |
|
|
|
To obtain your Hugging Face access token: |
|
|
|
1. Go to [Hugging Face settings](https://huggingface.co/settings/tokens). |
|
2. Log in or create an account. |
|
3. Generate a new token or use an existing one. |
|
|
|
Set the following in the .env file (if running locally) or in secrets (if running on Hugging Face Spaces): |
|
|
|
```bash |
|
HUGGINGFACE_TOKEN=<your-huggingface-token> |
|
``` |
|
|
|
## Chainlit Authentication Secret |
|
|
|
You must provide a JWT secret in the environment to use authentication. Run `chainlit create-secret` to generate one. |
|
|
|
```bash |
|
chainlit create-secret |
|
``` |
|
|
|
Set the following in the .env file (if running locally) or in secrets (if running on Hugging Face Spaces): |
|
|
|
```bash |
|
CHAINLIT_AUTH_SECRET=<your_jwt_secret> |
|
CHAINLIT_URL=<your_chainlit_url> # Example: CHAINLIT_URL=http://localhost:8000 |
|
``` |
|
|
|
## OpenAI API Key |
|
|
|
Set the following in the .env file (if running locally) or in secrets (if running on Hugging Face Spaces): |
|
|
|
```bash |
|
OPENAI_API_KEY=<your_openai_api_key> |
|
``` |
|
|
|
## In a Nutshell |
|
|
|
Your .env file (secrets in HuggingFace) should look like this: |
|
|
|
```bash |
|
CHAINLIT_AUTH_SECRET=<your_jwt_secret> |
|
OPENAI_API_KEY=<your_openai_api_key> |
|
HUGGINGFACE_TOKEN=<your-huggingface-token> |
|
LITERAL_API_KEY_LOGGING=<your_api_key> |
|
LITERAL_API_URL=<https://cloud.getliteral.ai> |
|
OAUTH_GOOGLE_CLIENT_ID=<your_client_id> |
|
OAUTH_GOOGLE_CLIENT_SECRET=<your_client_secret> |
|
LLAMA_CLOUD_API_KEY=<your_api_key> |
|
CHAINLIT_URL=<your_chainlit_url> |
|
``` |
|
|
|
|
|
# Configuration |
|
|
|
The configuration file `code/modules/config.yaml` contains the parameters that control the behaviour of your app. |
|
The configuration file `code/modules/project_config.yaml` contains project-specific parameters. |