Skip to content

kyrill99/Personal_ChatBot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

3 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ€– Agentic Digital Twin & Personal AI Assistant

A highly configurable, tool-using AI chatbot built with Python, Gradio, and the OpenAI API. This bot acts as your "Digital Twin," designed to sit on your personal website or portfolio. It can intelligently answer questions about your background, provide your resume, book meetings, and send you real-time push notifications when a recruiter or high-value contact wants to get in touch.

✨ Key Features

  • 🧠 Context-Aware Persona: Reads your LinkedIn PDF, a summary text file, and a custom configuration to accurately represent your skills, personality, and career history.
  • πŸ› οΈ Agentic Tool Calling: The bot doesn't just talk; it takes action. It autonomously decides when to trigger specific Python functions based on the conversation.
  • πŸ“± Real-Time Push Notifications: Uses the Pushover API to instantly notify your phone if someone shares their email, asks for your calendar, or asks a question the bot doesn't know the answer to.
  • βš™οΈ Zero-Code Configuration: Fully driven by a config.toml file. You can change the bot's name, trivia, projects, and links without ever touching the Python logic.

πŸ“‹ Prerequisites

  • Python 3.11+ (Requires the built-in tomllib library)
  • uv (The lightning-fast Python package manager)
  • An OpenAI API Key
  • A Pushover account (for mobile push notifications)

πŸš€ Setup & Installation

1. Clone the repository

git clone https://github.com/your-username/your-repo-name.git
cd your-repo-name

2. Set up your environment variables Create a .env file in the root directory and add your API keys:

OPENAI_API_KEY="your-openai-api-key"
PUSHOVER_TOKEN="your-pushover-application-token"
PUSHOVER_USER="your-pushover-user-key"

3. Configure your Digital Twin Open config.toml and fill in your personal details, trivia, links, and STAR projects.

4. Add your data files Create a folder named me/ in the root directory and add:

  • linkedin.pdf: A PDF export of your LinkedIn profile or your standard resume.
  • summary.txt: A brief text document summarizing your general background and current goals.

5. Install dependencies and run Because this project uses uv, you can install the required packages and launch the app incredibly fast:

uv pip install -r requirements.txt
# OR if you are using uv's inline script runner:
uv run app.py

(Dependencies: openai, python-dotenv, requests, pypdf, gradio>=4.40.0)

πŸ’¬ Usage

Once the app is running, Gradio will provide a local URL (e.g., http://127.0.0.1:7860). Open this in your browser to chat with your digital twin!

Try asking it:

  • "What is your background?"
  • "What do you like to do for fun?"
  • "Tell me about a time you solved a difficult technical problem."
  • "Can I get a copy of your resume?"
  • "I'd love to chat, here is my email: recruiter@company.com" (Watch your phone for the push notification!)

πŸ—οΈ Architecture & Customization

This app uses a global config.toml to separate data from logic. To add new capabilities, you simply:

  1. Write a standard Python function in app.py.
  2. Define the OpenAI JSON schema for the tool.
  3. Append it to the tools list. The Me class handles the tool execution dynamically using globals().get().

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages