|
|
--- |
|
|
title: GPT-Style Chat Assistant |
|
|
emoji: 🤖 |
|
|
colorFrom: blue |
|
|
colorTo: green |
|
|
sdk: streamlit |
|
|
sdk_version: 1.42.2 |
|
|
app_file: app.py |
|
|
pinned: false |
|
|
--- |
|
|
|
|
|
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference |
|
|
|
|
|
# GPT-Style Chat Assistant |
|
|
|
|
|
A sophisticated Streamlit app that mimics the ChatGPT interface, using OpenAI's GPT models for advanced reasoning capabilities. |
|
|
|
|
|
 |
|
|
|
|
|
## Features |
|
|
|
|
|
- **ChatGPT-like interface** with conversation sidebar |
|
|
- **Multiple conversation management**: |
|
|
- Create new chats |
|
|
- Switch between conversations |
|
|
- Delete old conversations |
|
|
- **Model selection** - choose between different OpenAI models: |
|
|
- Standard Models: |
|
|
- GPT-3.5-Turbo (default) |
|
|
- GPT-4 |
|
|
- GPT-3.5-Turbo-16k (for longer conversations) |
|
|
- GPT-4-Turbo |
|
|
- GPT-4o (latest GPT-4 Omni model) |
|
|
- GPT-4o-Mini (efficient version of GPT-4o) |
|
|
- Reasoning Models: |
|
|
- o1-mini (Mini reasoning model) |
|
|
- o1 (Standard reasoning model) |
|
|
- o1-pro (Professional reasoning model) |
|
|
- o3-mini (Advanced reasoning - Mini) |
|
|
- o3-mini-high (Advanced reasoning - Enhanced) |
|
|
- **Conversation history** preserved between sessions |
|
|
- **Demo mode** that works without an API key |
|
|
- **Responsive design** that adapts to different screen sizes |
|
|
|
|
|
## Setup |
|
|
|
|
|
1. Clone this repository |
|
|
2. Install the required packages: |
|
|
``` |
|
|
pip install -r requirements.txt |
|
|
``` |
|
|
3. (Required for full functionality) Get an OpenAI API key: |
|
|
- Create an account at [OpenAI](https://platform.openai.com/signup) |
|
|
- Go to [API Keys](https://platform.openai.com/account/api-keys) |
|
|
- Create a new API key |
|
|
- Add it to a `.env` file in the root directory: |
|
|
``` |
|
|
OPENAI_API_KEY=your_api_key_here |
|
|
``` |
|
|
|
|
|
## Running Locally |
|
|
|
|
|
Run the app with the following command: |
|
|
|
|
|
``` |
|
|
streamlit run app.py |
|
|
``` |
|
|
|
|
|
If you're having trouble with the `streamlit` command not being found, you can use the full path to the executable: |
|
|
``` |
|
|
python -m streamlit run app.py |
|
|
``` |
|
|
|
|
|
Or use the provided runner script: |
|
|
``` |
|
|
python run_app.py |
|
|
``` |
|
|
|
|
|
This will start the app and open it in your default browser. |
|
|
|
|
|
## Demo Mode |
|
|
|
|
|
The app includes a demo mode that works without an API key. In this mode: |
|
|
- The assistant will provide pre-defined responses to common questions |
|
|
- You'll see a text field in the sidebar where you can optionally enter an OpenAI API key |
|
|
- For a full chatbot experience with reasoning capabilities, it's recommended to add your OpenAI API key |
|
|
|
|
|
## Deploying to Hugging Face Spaces |
|
|
|
|
|
1. Create a new Space on Hugging Face Spaces (https://huggingface.co/spaces) |
|
|
2. Choose Streamlit as the SDK |
|
|
3. Link your GitHub repository or upload the files directly |
|
|
4. Add your OpenAI API key as a secret: |
|
|
- Go to Settings > Repository Secrets |
|
|
- Add a secret named `OPENAI_API_KEY` with your key |
|
|
|
|
|
The app will automatically deploy and be available at your Hugging Face Spaces URL. |
|
|
|
|
|
## About the Models |
|
|
|
|
|
This app lets you select from multiple OpenAI models: |
|
|
|
|
|
### Standard Models |
|
|
- **GPT-3.5-Turbo**: Fast and cost-effective, suitable for most tasks |
|
|
- **GPT-4**: More capable but slower and more expensive |
|
|
- **GPT-3.5-Turbo-16k**: Supports longer conversations with extended context window |
|
|
- **GPT-4-Turbo**: OpenAI's advanced model with larger context window |
|
|
- **GPT-4o**: Latest GPT-4 Omni model, OpenAI's most advanced offering |
|
|
- **GPT-4o-Mini**: More efficient version of GPT-4o with excellent capabilities |
|
|
|
|
|
### Reasoning Models |
|
|
OpenAI's specialized models for enhanced logical reasoning and problem-solving: |
|
|
|
|
|
#### O1 Series |
|
|
- **o1-mini**: Compact reasoning model for efficient problem-solving |
|
|
- **o1**: Standard reasoning model with balanced capabilities |
|
|
- **o1-pro**: Professional-grade reasoning with enhanced analytical abilities |
|
|
|
|
|
#### O3 Series |
|
|
- **o3-mini**: Advanced reasoning model optimized for efficiency |
|
|
- **o3-mini-high**: Enhanced version with superior reasoning capabilities |
|
|
|
|
|
All models are accessible using your OpenAI API key. Model availability depends on your API key permissions and subscription tier. |
|
|
|
|
|
## Customization |
|
|
|
|
|
You can easily customize the app by: |
|
|
- Changing the model parameters in the `AVAILABLE_MODELS` dictionary |
|
|
- Adjusting the styling in the CSS section |
|
|
- Adding more features to the sidebar |
|
|
- Creating additional response templates for the demo mode |