├── .devcontainer └── devcontainer.json ├── .gitignore ├── .vscode └── extensions.json ├── README.md ├── app.py ├── docs ├── ds_llm_bq_91923.yml ├── ds_llm_bq_92023.yml ├── ds_llm_bq_92223.yml ├── ds_llm_sql_91923.yml └── ds_llm_sql_92023.yml ├── packages └── paths.py ├── requirements.txt └── test_envs.py /.devcontainer/devcontainer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Python 3", 3 | // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile 4 | "image": "mcr.microsoft.com/devcontainers/python:1-3.11-bullseye", 5 | "customizations": { 6 | "codespaces": { 7 | "openFiles": [ 8 | "README.md", 9 | "app.py" 10 | ] 11 | }, 12 | "vscode": { 13 | "settings": {}, 14 | "extensions": [ 15 | "ms-python.python", 16 | "ms-python.vscode-pylance" 17 | ] 18 | } 19 | }, 20 | "updateContentCommand": "[ -f packages.txt ] && sudo apt update && sudo apt upgrade -y && sudo xargs apt install -y None: 6 | 7 | # Root directory of the project 8 | self.BASE_DIR = Path(__file__).resolve().parent.parent 9 | 10 | # Credentials folder 11 | self.CREDENTIALS = os.path.join(self.BASE_DIR, 'credentials') 12 | 13 | # Path to OPENAI 14 | self.OPEN_AI = os.path.join(self.CREDENTIALS, 'openai_keys.json') 15 | 16 | # Path to DB credentials and values 17 | self.EXTRACT_KEYS = os.path.join(self.CREDENTIALS, 'db_keys.json') 18 | 19 | # Path to DB credentials and values 20 | self.GCP_KEYS = os.path.join(self.CREDENTIALS, 'gcp_keys.json') 21 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | langchain==0.0.295 2 | pyarrow==13.0.0 3 | fsspec==2023.9.1 4 | google-api-core==2.11.1 5 | sqlalchemy==1.4.49 6 | sqlalchemy==1.4.49 7 | sqlalchemy-bigquery==1.8.0 8 | google-auth==2.23.0 9 | google-cloud-bigquery==3.11.4 10 | google-cloud-bigquery-storage==2.22.0 11 | google-cloud-core==2.3.3 12 | python-dotenv 13 | streamlit 14 | -------------------------------------------------------------------------------- /test_envs.py: -------------------------------------------------------------------------------- 1 | from dotenv import load_dotenv 2 | import os 3 | import json 4 | import base64 5 | 6 | load_dotenv() 7 | 8 | PROJECT_ID = os.environ.get("PROJECT_ID_GCP") 9 | DATASET_ID = os.environ.get("DATASET_BQ") 10 | OPENAI_KEY = os.environ.get("OPENAI_API_KEY") 11 | GCP_KEYS_JSON = os.environ.get("GCP_KEYS_JSON") 12 | 13 | 14 | service_key = json.dumps(GCP_KEYS_JSON) 15 | 16 | # encode service key 17 | encoded_service_key = base64.b64encode(service_key.encode('utf-8')) 18 | 19 | print(encoded_service_key) 20 | 21 | --------------------------------------------------------------------------------