--- title: cedric-agent app_file: app.py sdk: gradio sdk_version: 5.39.0 --- # Cedric Agent - Personal AI Chatbot A personal AI chatbot that represents Cedric Laridon on his website, answering questions about his career, background, skills, and experience. ## Features - **Personal AI Assistant**: Acts as Cedric Laridon, answering questions about his professional background - **LinkedIn Integration**: Uses Cedric's LinkedIn profile data to provide accurate responses - **Contact Recording**: Captures visitor contact information and unknown questions via Pushover notifications - **Web Interface**: Clean Gradio interface for easy interaction - **Professional Engagement**: Designed to engage potential clients and employers ## Setup ### Prerequisites - Python 3.12 or higher - [uv](https://docs.astral.sh/uv/) (recommended) or pip - OpenAI API key - Pushover account (optional, for notifications) ### Installation 1. Clone the repository: ```bash git clone https://github.com/cedriclaridon/cedric-agent.git cd cedric-agent ``` 2. Install dependencies using uv (recommended): ```bash uv sync ``` Or using pip: ```bash pip install -r requirements.txt ``` 3. Create a `.env` file in the root directory with your API keys: ```env OPENAI_API_KEY=your_openai_api_key_here PUSHOVER_TOKEN=your_pushover_token_here PUSHOVER_USER=your_pushover_user_key_here ``` ### Running the Application Using uv (recommended): ```bash uv run python app.py ``` Or using python directly: ```bash python app.py ``` The application will launch a Gradio interface, typically accessible at `http://localhost:7860`. ## Configuration ### Environment Variables - `OPENAI_API_KEY`: Required. Your OpenAI API key for GPT-4o-mini - `PUSHOVER_TOKEN`: Optional. Pushover application token for notifications - `PUSHOVER_USER`: Optional. Pushover user key for notifications ### Personal Data The chatbot uses two main sources of personal information: 1. **`me/summary.txt`**: A brief personal summary 2. **`me/cedric-linkedin.pdf`**: LinkedIn profile export in PDF format Update these files with your own information to customize the chatbot for your use. ## How It Works 1. **System Prompt**: The chatbot is given a comprehensive system prompt that includes personal summary and LinkedIn data 2. **Function Calling**: Uses OpenAI's function calling to record user details and unknown questions 3. **Notifications**: Sends real-time notifications via Pushover when users provide contact info or ask unknown questions 4. **Conversation Flow**: Designed to engage users and encourage them to provide contact information ## Customization To adapt this chatbot for your own use: 1. Replace `me/summary.txt` with your personal summary 2. Replace `me/cedric-linkedin.pdf` with your LinkedIn profile PDF 3. Update the name in `app.py` (line 80: `self.name = "Your Name"`) 4. Modify the system prompt in the `system_prompt()` method if needed 5. Update the contact information in this README ## License This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. ## Contributing This is a personal project, but feel free to fork it and adapt it for your own use. If you have suggestions for improvements, please open an issue. ## Contact For questions about this project, please contact Cedric Laridon through the chatbot interface or via the contact methods provided on his website.