This project uses the following technologies for whch you would need an account and in some cases to buy credits (or you can adapt the code to use free APIs):
- ChatGPT API - you can replace this with any other LLM API or even with Ollama
- Pushover a simple push notification service that has a limited free trial
- ChromaDB
The ProfileAi class expects at least three data sources:
- A PDF file containing your linkedin profile
- A PDF file containing your CV or Resume
- A txt file containing a paragraph-long summary of your professional profile. It is ok to add also some more personal details here.
- Clone the repo with
git clone https://github.com/giuseppe-sirigu/profileai.git - Move to the project directory with
cd profileai
- Create a python virtualenv with
python -m venv venv. - Activate your environment with either
venv\Scripts\activateon Windows, orsource venv/bin/activateon Mac/Linux. - Then run
pip install -e .to install the packages and the project. The-eoption installs an editable version of the project that is updated automatically when code changes are made.
uv is an extremely fast Python package manager wirtten in Rust.
- Install uv following the instructions at this link.
- Then run
uv syncin the project root directory folder. This will create a virtual environment called .venv and install all the dependencies.
To load your API keys, first create a .env file in the project root directory.
Your .env file should contain the following; add whichever keys you would like to use.
OPENAI_API_KEY=sk-proj-...
PUSHOVER_USER=...
PUSHOVER_TOKEN=...
RAG_ENABLED=True (False)
To run the application, from the project directory, run the following command:
python app.pyif using virtualenvuv run app.pyif using uv
This will start a Gradio chat interface that can be reached at http://127.0.0.1:7860/
