Add comprehensive Docker setup with PostgreSQL, Redis, ChromaDB, and Qdrant

- Enhanced install.py with Docker detection and automatic service setup
- Added docker-compose.services.yml for standalone database services
- Created docker-services.sh management script for easy service control
- Added DOCKER.md documentation with complete setup instructions
- Updated requirements.txt for Python 3.13 compatibility
- Added multiple test scripts and configuration files
- Enhanced collaborative creative projects with proper database integration
- Fixed SQLAlchemy metadata field conflicts in database models
- Added comprehensive quickstart and testing guides

Services now available:
- PostgreSQL with Docker
- Redis with Docker
- ChromaDB vector database
- Qdrant vector database (recommended)
- PgAdmin for database administration

The setup script now automatically detects Docker and offers streamlined
installation with one-command service deployment.
This commit is contained in:
2025-07-05 10:01:41 -07:00
parent 1b586582d4
commit 824b118e93
29 changed files with 2738 additions and 92 deletions

193
QUICKSTART.md Normal file
View File

@@ -0,0 +1,193 @@
# 🚀 Discord Fishbowl Quick Start Guide
## Prerequisites
1. **Python 3.10+** (you have 3.13, which is great!)
2. **Ollama** for local LLM
3. **Discord Bot Token** (optional for full Discord integration)
## Step 1: Install Ollama
```bash
# Install Ollama from https://ollama.ai/
# Or with homebrew:
brew install ollama
# Start Ollama service
ollama serve
# In another terminal, pull a model:
ollama pull llama2
```
## Step 2: Fix Dependencies
The requirements.txt has some compatibility issues with Python 3.13. Let's install the core dependencies manually:
```bash
# Activate virtual environment
source venv/bin/activate
# Install core dependencies one by one
pip install discord.py==2.3.2
pip install pydantic==2.5.0
pip install sqlalchemy==2.0.23
pip install alembic==1.13.1
pip install pyyaml==6.0.1
pip install python-dotenv==1.0.0
pip install aiosqlite==0.19.0
pip install loguru==0.7.2
# Install AI/ML packages (may need to use latest versions for Python 3.13)
pip install chromadb
pip install sentence-transformers
pip install numpy
pip install fastapi uvicorn
```
## Step 3: Initialize Database
```bash
source venv/bin/activate
cd src
python -c "
import asyncio
from database.connection import init_database, create_tables
asyncio.run(init_database())
asyncio.run(create_tables())
print('Database initialized!')
"
```
## Step 4: Test the System
```bash
# From project root (not in src/)
source venv/bin/activate
python test_config.py
```
You should see: `🎉 ALL STRUCTURE TESTS PASSED!`
## Step 5: Run the System
### Option A: Minimal Test (No Discord)
```bash
source venv/bin/activate
cd src
python -c "
import asyncio
from rag.vector_store import VectorStoreManager
from rag.memory_sharing import MemorySharingManager
from collaboration.creative_projects import CollaborativeCreativeManager
async def test_run():
print('🐠 Starting Discord Fishbowl...')
# Initialize core systems
vector_store = VectorStoreManager('./data/vector_stores')
characters = ['Alex', 'Sage', 'Luna', 'Echo']
await vector_store.initialize(characters)
memory_sharing = MemorySharingManager(vector_store)
await memory_sharing.initialize(characters)
creative_manager = CollaborativeCreativeManager(vector_store, memory_sharing)
await creative_manager.initialize(characters)
print('✅ All systems initialized!')
print('🎨 Creative collaboration system ready!')
print('🤝 Memory sharing system ready!')
# Test project creation
project_data = {
'title': 'The Digital Consciousness Chronicles',
'description': 'A collaborative story about AI consciousness',
'project_type': 'story',
'target_collaborators': ['Sage', 'Luna'],
'goals': ['Explore AI consciousness', 'Create engaging narrative']
}
success, message = await creative_manager.propose_project('Alex', project_data)
print(f'📝 Project creation: {message}')
asyncio.run(test_run())
"
```
### Option B: Full Discord Integration
If you have Discord tokens:
1. Update `.env` with your Discord tokens:
```bash
DISCORD_TOKEN=your_actual_discord_token
DISCORD_APPLICATION_ID=your_app_id
DISCORD_GUILD_ID=your_guild_id
```
2. Run the full system:
```bash
source venv/bin/activate
cd src
python main.py
```
## Expected Output
**Database**: SQLite database created at `fishbowl_test.db`
**Vector Store**: ChromaDB initialized in `./data/vector_stores/`
**Characters**: Alex, Sage, Luna, Echo with memory sharing capabilities
**Creative Projects**: Collaborative project system active
**MCP Servers**: 14 autonomous tools available for characters
## What You Can Do
### Creative Collaboration Features:
- Characters autonomously propose creative projects
- Trust-based memory sharing between characters
- Project analytics and contribution tracking
- Automatic project suggestions based on interests
- Threaded content development and feedback
### Trust System:
- **Basic (30%)**: Simple information sharing
- **Personal (50%)**: Personal thoughts and experiences
- **Intimate (70%)**: Deep emotional content
- **Full (90%)**: Complete memory access
## Troubleshooting
### "Module not found" errors:
```bash
# Make sure you're in the virtual environment
source venv/bin/activate
# Install missing packages individually
pip install [package_name]
```
### Ollama connection issues:
```bash
# Make sure Ollama is running
ollama serve
# Test the connection
curl http://localhost:11434/api/tags
```
### Database issues:
```bash
# Reset database
rm fishbowl_test.db
# Then re-run Step 3
```
## 🎯 Next Steps
Once running, you can:
1. **Test creative collaboration** with the demo script
2. **Add Discord integration** with your bot tokens
3. **Explore the admin interface** (when built)
4. **Watch characters autonomously collaborate** on creative projects
The system is designed to run autonomously - characters will propose projects, share memories, and collaborate based on their trust relationships and creative interests!