Spaces:
Sleeping
Sleeping
File size: 5,771 Bytes
b6607da |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 |
---
title: Pen Pal AI
emoji: ๐ฎ
colorFrom: blue
colorTo: purple
sdk: gradio
sdk_version: 5.49.1
app_file: app.py
pinned: false
license: mit
---
# Pen Pal AI - Letter Exchange

An experimental AI interface that reimagines conversational AI through the timeless metaphor of letter writing. Instead of rapid-fire chatbot exchanges, Pen Pal AI encourages thoughtful, long-form correspondence with an AI pen pal.
## ๐ฏ Concept
Traditional conversational AI is modeled after instant messaging - quick back-and-forth exchanges. Pen Pal AI explores a different paradigm:
- **Asynchronous**: Take your time composing thoughtful letters
- **Long-form**: Write detailed, context-rich prompts without worrying about length
- **Single-turn focus**: Each letter gets a complete, comprehensive response
- **Relaxed correspondence**: More like writing to a friend than querying a chatbot
## โจ Features
- ๐ **Letter-writing interface** with serif fonts and comfortable styling
- ๐ฌ **Automatic subject line generation** for each conversation thread
- ๐ข **Turn tracking** - User Prompt 1, AI Reply 1, User Prompt 2, etc.
- ๐ **Thread history** showing all letters in chronological order
- ๐พ **Markdown downloads** for each letter (preserve your correspondence!)
- ๐ **New conversation** button to start fresh threads
## ๐ Quick Start
### Local Installation
1. **Clone the repository:**
```bash
git clone https://github.com/danielrosehill/Penpal-AI.git
cd Penpal-AI
```
2. **Set up virtual environment:**
```bash
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
```
3. **Install dependencies:**
```bash
pip install -r requirements.txt
```
4. **Configure API key:**
```bash
cp .env.example .env
# Edit .env and add your OpenAI API key
```
5. **Run the application:**
```bash
python app.py
```
6. **Open your browser** to the URL shown in the terminal (typically `http://localhost:7860`)
## ๐ API Key Setup
This application uses OpenAI's API. You'll need:
1. An OpenAI API account ([sign up here](https://platform.openai.com/signup))
2. An API key ([get one here](https://platform.openai.com/api-keys))
3. Add the key to your `.env` file:
```
OPENAI_API_KEY=sk-...your-key-here
```
## ๐ How to Use
1. **Compose your letter** in the text area on the left
2. Click **"๐ฎ Send Letter"**
3. Your letter appears in the "Your Last Letter" section
4. The AI's reply appears on the right side
5. View the **complete thread history** at the bottom
6. Download any letter using the **๐พ Download** buttons
7. Start a **new conversation** anytime with the ๐ button
## ๐ก Tips for Best Results
- **Write naturally** - compose as if writing to a thoughtful friend
- **Provide context** - since each letter is self-contained, include relevant background
- **Ask complex questions** - this format excels at exploring ideas in depth
- **Take your time** - this isn't instant messaging, it's correspondence
- **Use voice-to-text** - long-form prompts work wonderfully with STT
## ๐จ The Philosophy
This project explores what happens when we:
- Reject the chat interface paradigm
- Embrace asynchronous, thoughtful communication
- Encourage long-form, context-rich prompts
- Treat AI interaction more like correspondence than commands
The hypothesis: This approach might work better for certain types of thinking, exploration, and creative work.
## ๐ Deployment to Hugging Face
### Option 1: Deploy via Hugging Face Spaces UI
1. Go to [Hugging Face Spaces](https://huggingface.co/spaces)
2. Click "Create new Space"
3. Choose "Gradio" as the SDK
4. Upload `app.py` and `requirements.txt`
5. Add your `OPENAI_API_KEY` in Settings โ Repository Secrets
6. Your space will build and deploy automatically!
### Option 2: Deploy via Git
1. Create a new Space on Hugging Face
2. Clone the Space repository:
```bash
git clone https://huggingface.co/spaces/YOUR_USERNAME/SPACE_NAME
cd SPACE_NAME
```
3. Copy files:
```bash
cp /path/to/Penpal-AI/app.py .
cp /path/to/Penpal-AI/requirements.txt .
```
4. Commit and push:
```bash
git add app.py requirements.txt
git commit -m "Initial deployment of Pen Pal AI"
git push
```
5. Add `OPENAI_API_KEY` in Space Settings โ Repository Secrets
## ๐ ๏ธ Technical Details
- **Framework**: Gradio 5.49.1
- **LLM**: OpenAI GPT-4o (for responses) and GPT-4o-mini (for subject generation)
- **Language**: Python 3.12+
- **Deployment**: Compatible with Hugging Face Spaces
## ๐ค Why This Exists
The creator discovered that long-form prompting, especially with voice-to-text input, produces better AI interactions than traditional chat. This interface explores that insight by creating a UI that encourages and celebrates long-form correspondence.
It sits between:
- **Workflow AI** (non-interactive, task-oriented)
- **Conversational AI** (interactive chat)
Creating a third category: **Correspondence AI** (conversational but asynchronous)
## ๐ฎ Future Ideas
- Email-style notifications when "letters arrive"
- Context truncation controls (experiment with memory vs. fresh-start)
- User-selectable AI "personalities" or writing styles
- Export entire threads as formatted PDFs
- Integration with actual email for true async correspondence
## ๐ License
MIT License
## ๐ Acknowledgments
Inspired by the art of letter writing and the belief that slower, more thoughtful communication can be powerful even (or especially) with AI.
## ๐ง Contact
For questions, suggestions, or to share your experience:
- **Website**: danielrosehill.com
- **Email**: public@danielrosehill.com
---
*Built with โ๏ธ by Daniel Rosehill*
|