Implement comprehensive collaborative creative system with cross-character memory sharing
Major Features Added: • Cross-character memory sharing with trust-based permissions (Basic 30%, Personal 50%, Intimate 70%, Full 90%) • Complete collaborative creative projects system with MCP integration • Database persistence for all creative project data with proper migrations • Trust evolution system based on interaction quality and relationship development • Memory sharing MCP server with 6 autonomous tools for character decision-making • Creative projects MCP server with 8 tools for autonomous project management • Enhanced character integration with all RAG and MCP capabilities • Demo scripts showcasing memory sharing and creative collaboration workflows System Integration: • Main application now initializes memory sharing and creative managers • Conversation engine upgraded to use EnhancedCharacter objects with full RAG access • Database models added for creative projects, collaborators, contributions, and invitations • Complete prompt construction pipeline enriched with RAG insights and trust data • Characters can now autonomously propose projects, share memories, and collaborate creatively
This commit is contained in:
243
INSTALL.md
Normal file
243
INSTALL.md
Normal file
@@ -0,0 +1,243 @@
|
||||
# Discord Fishbowl Installation Guide
|
||||
|
||||
## Quick Start
|
||||
|
||||
Run the interactive setup script to get started:
|
||||
|
||||
```bash
|
||||
python install.py
|
||||
```
|
||||
|
||||
This script will:
|
||||
- ✅ Check system requirements
|
||||
- ✅ Create a Python virtual environment
|
||||
- ✅ Install all dependencies
|
||||
- ✅ Guide you through configuration
|
||||
- ✅ Set up the database
|
||||
- ✅ Create startup scripts
|
||||
|
||||
## Prerequisites
|
||||
|
||||
### Required
|
||||
- **Python 3.8+** - The core application
|
||||
- **Git** - For version control and updates
|
||||
|
||||
### Optional (but recommended)
|
||||
- **Node.js & npm** - For the admin web interface
|
||||
- **PostgreSQL** - For production database (SQLite available for testing)
|
||||
- **Redis** - For caching and real-time features
|
||||
- **Qdrant** - For vector database and semantic search
|
||||
|
||||
## Manual Installation
|
||||
|
||||
If you prefer manual setup:
|
||||
|
||||
### 1. Create Virtual Environment
|
||||
```bash
|
||||
python -m venv venv
|
||||
source venv/bin/activate # Linux/Mac
|
||||
# OR
|
||||
venv\Scripts\activate.bat # Windows
|
||||
```
|
||||
|
||||
### 2. Install Dependencies
|
||||
```bash
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
### 3. Install Frontend (optional)
|
||||
```bash
|
||||
cd admin-frontend
|
||||
npm install
|
||||
npm run build
|
||||
cd ..
|
||||
```
|
||||
|
||||
### 4. Configuration
|
||||
Create a `.env` file with your settings:
|
||||
```env
|
||||
DISCORD_BOT_TOKEN=your_bot_token_here
|
||||
DISCORD_GUILD_ID=your_server_id
|
||||
DISCORD_CHANNEL_ID=your_channel_id
|
||||
DATABASE_URL=sqlite:///data/fishbowl.db
|
||||
AI_PROVIDER=openai
|
||||
AI_API_KEY=your_openai_key
|
||||
# ... more settings
|
||||
```
|
||||
|
||||
### 5. Initialize Database
|
||||
```bash
|
||||
python -m alembic upgrade head
|
||||
```
|
||||
|
||||
### 6. Create Characters
|
||||
```bash
|
||||
python -m scripts.init_characters
|
||||
```
|
||||
|
||||
## Configuration Guide
|
||||
|
||||
### Discord Setup
|
||||
1. Go to https://discord.com/developers/applications
|
||||
2. Create a new application
|
||||
3. Go to "Bot" section and create a bot
|
||||
4. Copy the bot token
|
||||
5. Enable required permissions and invite to your server
|
||||
|
||||
### AI Provider Setup
|
||||
|
||||
#### OpenAI
|
||||
- Get API key from https://platform.openai.com/api-keys
|
||||
- Recommended models: `gpt-4`, `gpt-3.5-turbo`
|
||||
|
||||
#### Anthropic
|
||||
- Get API key from https://console.anthropic.com/
|
||||
- Recommended models: `claude-3-sonnet-20240229`, `claude-3-haiku-20240307`
|
||||
|
||||
### Database Setup
|
||||
|
||||
#### SQLite (Default)
|
||||
- No setup required
|
||||
- Good for testing and small deployments
|
||||
|
||||
#### PostgreSQL (Recommended)
|
||||
```bash
|
||||
# Install PostgreSQL
|
||||
sudo apt install postgresql # Ubuntu
|
||||
brew install postgresql # macOS
|
||||
|
||||
# Create database
|
||||
createdb discord_fishbowl
|
||||
```
|
||||
|
||||
#### Redis (Optional)
|
||||
```bash
|
||||
# Install Redis
|
||||
sudo apt install redis-server # Ubuntu
|
||||
brew install redis # macOS
|
||||
|
||||
# Start Redis
|
||||
redis-server
|
||||
```
|
||||
|
||||
#### Qdrant (Optional)
|
||||
```bash
|
||||
# Using Docker
|
||||
docker run -p 6333:6333 qdrant/qdrant
|
||||
|
||||
# Or install locally
|
||||
# See: https://qdrant.tech/documentation/quick-start/
|
||||
```
|
||||
|
||||
## Running the Application
|
||||
|
||||
### Using Startup Scripts
|
||||
```bash
|
||||
./start.sh # Start main application
|
||||
./start-admin.sh # Start admin interface
|
||||
```
|
||||
|
||||
### Manual Start
|
||||
```bash
|
||||
# Main application
|
||||
python -m src.main
|
||||
|
||||
# Admin interface
|
||||
python -m src.admin.app
|
||||
```
|
||||
|
||||
## Verification
|
||||
|
||||
### Check Application Status
|
||||
```bash
|
||||
# Check logs
|
||||
tail -f logs/fishbowl.log
|
||||
|
||||
# Check database
|
||||
python -c "from src.database.connection import test_connection; test_connection()"
|
||||
|
||||
# Check AI provider
|
||||
python -c "from src.llm.client import test_client; test_client()"
|
||||
```
|
||||
|
||||
### Access Admin Interface
|
||||
- Open http://localhost:8000/admin
|
||||
- Login with credentials from setup
|
||||
|
||||
### Discord Integration
|
||||
- Invite bot to your server
|
||||
- Verify bot appears online
|
||||
- Check configured channel for activity
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
|
||||
#### "Module not found" errors
|
||||
```bash
|
||||
# Ensure virtual environment is activated
|
||||
source venv/bin/activate
|
||||
|
||||
# Ensure PYTHONPATH is set
|
||||
export PYTHONPATH=$(pwd):$PYTHONPATH
|
||||
```
|
||||
|
||||
#### Database connection errors
|
||||
```bash
|
||||
# Test database connection
|
||||
python -c "from src.database.connection import get_db_session; print('DB OK')"
|
||||
|
||||
# Reset database
|
||||
python -m alembic downgrade base
|
||||
python -m alembic upgrade head
|
||||
```
|
||||
|
||||
#### Bot not responding
|
||||
- Verify bot token is correct
|
||||
- Check bot has required permissions
|
||||
- Ensure guild_id and channel_id are correct
|
||||
- Check bot is online in Discord
|
||||
|
||||
#### Memory/Performance issues
|
||||
- Reduce `CONVERSATION_FREQUENCY`
|
||||
- Lower `MAX_CONVERSATION_LENGTH`
|
||||
- Use PostgreSQL instead of SQLite
|
||||
- Enable Redis for caching
|
||||
|
||||
### Getting Help
|
||||
|
||||
1. Check the logs in `logs/` directory
|
||||
2. Verify configuration in `.env` file
|
||||
3. Test individual components
|
||||
4. Check Discord permissions
|
||||
5. Verify API keys and external services
|
||||
|
||||
## Advanced Configuration
|
||||
|
||||
### Character Customization
|
||||
Edit `config/characters.yaml` to modify character personalities and behaviors.
|
||||
|
||||
### System Tuning
|
||||
Adjust these settings in `.env`:
|
||||
- `CONVERSATION_FREQUENCY` - How often characters talk
|
||||
- `RESPONSE_DELAY_MIN/MAX` - Realistic response timing
|
||||
- `MEMORY_RETENTION_DAYS` - How long memories persist
|
||||
- `CREATIVITY_BOOST` - Enable more creative responses
|
||||
|
||||
### Production Deployment
|
||||
- Use PostgreSQL database
|
||||
- Enable Redis caching
|
||||
- Set up Qdrant vector database
|
||||
- Configure proper logging levels
|
||||
- Set `ENVIRONMENT=production`
|
||||
- Use process manager (systemd, supervisor)
|
||||
- Set up monitoring and backups
|
||||
|
||||
## Security Notes
|
||||
|
||||
- Keep API keys secure and never commit them
|
||||
- Use strong passwords for admin interface
|
||||
- Run on internal networks when possible
|
||||
- Monitor for unusual activity
|
||||
- Regularly update dependencies
|
||||
- Enable safety monitoring features
|
||||
Reference in New Issue
Block a user