This repository contains three distinct Python projects, each showcasing different AI-powered functionalities.
Project Overview
Project 1: AI Chat Assistant
Description:
A command-line AI chat assistant powered by LangChain and OpenAI’s language models. It allows users to interact with an AI agent for conversational tasks or simple calculations.
Features:
- Interactive chat interface.
- Integration with OpenAI’s language model via LangChain.
- Rich text output using the
rich
library for enhanced formatting.
Technologies:
- Python 3.11
- LangChain, LangChain-OpenAI, LangGraph
- Python-dotenv, Rich
Project 2: AI Resume Critiquer
Description:
A web-based application built with Streamlit that allows users to upload a PDF resume and receive AI-powered feedback tailored to a specific job role or general job applications.
Features:
- PDF resume parsing using PyPDF2.
- AI-driven analysis of resume content, clarity, skills, and experience.
- Customizable feedback based on the target job role.
Technologies:
- Python 3.11
- Streamlit, OpenAI API, PyPDF2
- Python-dotenv
Project 3: AI Image Classifier
Description:
A Streamlit-based web application that classifies images using the MobileNetV2 model pre-trained on ImageNet. Users can upload images (JPG, JPEG, PNG) and view the top three predicted labels with confidence scores.
Features:
- Image classification with MobileNetV2.
- User-friendly interface for uploading and displaying images.
- Top-3 prediction results with confidence scores.
Technologies:
- Python 3.10
- Streamlit, TensorFlow, OpenCV
- Rich
Prerequisites
- Python: Ensure Python 3.11 is installed for Project 1 and Project 2, and Python 3.10 for Project 3.
- Virtual Environment: Recommended to isolate dependencies for each project.
- API Keys:
- For Project 1 and Project 2, an OpenAI API key is required.
- Store it in a
.env
file as:env OPENAI_API_KEY=your-openai-api-key
- Dependencies: Each project has a
pyproject.toml
file listing required packages.
Setup Instructions
- Clone the Repository:
git clone <repository-url> cd frosty-8-3-simple-projects
2.Set Up Each Project: For each project (project1, project2, project3):
cd projectX python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate pip install .
3.Configure API Key (for Project 1 & 2): Create a .env file in the project directory:
OPENAI_API_KEY=your-openai-api-key
Run the Projects
Project 1 (AI Chat Assistant):
python main.py
Type your queries in the terminal and press q to exit.
Project 2 (AI Resume Critiquer):
streamlit run main.py
Open the provided URL in a browser, upload a PDF resume, enter a job role, and click Analyze Resume.
Project 3 (AI Image Classifier):
streamlit run main.py
Open the provided URL, upload an image (JPG, JPEG, PNG), and click Classify Image.
Usage
-
Project 1: Interact with the AI assistant via the command-line interface. Ask questions or request calculations, and type q to quit.
-
Project 2: Upload a PDF resume through the Streamlit interface, specify a job role (optional), and receive detailed AI-generated feedback.
-
Project 3: Upload an image through the Streamlit interface to get classification results from MobileNetV2, including the top three predicted labels and confidence scores.
Project Structure
frosty-8-3-simple-projects/
├── project1/
│ ├── README.md # Project-specific documentation (currently empty)
│ ├── main.py # Main script for the AI chat assistant
│ ├── pyproject.toml # Dependency configuration
│ └── .python-version # Python version specification
├── project2/
│ ├── README.md # Project-specific documentation (currently empty)
│ ├── main.py # Main script for the resume critiquer
│ ├── pyproject.toml # Dependency configuration
│ └── .python-version # Python version specification
└── project3/
├── README.md # Project-specific documentation (currently empty)
├── main.py # Main script for the image classifier
├── pyproject.toml # Dependency configuration
└── .python-version # Python version specification
Notes
-
Ensure you have a stable internet connection for API calls in Project 1 and Project 2.
-
For Project 3, large images are automatically resized to 224x224 pixels to match MobileNetV2 requirements.
-
If you encounter dependency issues, verify that the correct Python version is used as specified in each project’s .python-version file.
Contributing
Contributions are welcome! Please submit a pull request or open an issue to suggest improvements or report bugs.
LICENSE
This project is licensed under the MIT License.