https://github.com/jordanrl/lunaai
https://github.com/jordanrl/lunaai
Last synced: 5 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/jordanrl/lunaai
- Owner: JordanRL
- Created: 2025-03-06T07:28:37.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2025-03-07T18:16:10.000Z (over 1 year ago)
- Last Synced: 2025-10-21T10:41:57.586Z (9 months ago)
- Language: HTML
- Size: 570 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
Awesome Lists containing this project
README
# LunaAI
LunaAI is a multi-agent personality system designed to produce the most human-like simulation of consciousness possible in conversation with modern LLMs.
## Features
- **Multi-Agent Architecture**: Specialized agents handling different aspects of cognition and conversation
- **Emergent Behaviors**: Carefully structured system prompts, agent design, and tools allowing for emergent consciousness-like behaviors
- **Emotion Processing**: Simulation of emotional responses and relationship development
- **Memory Systems**: Short and long-term memory mechanisms for contextual awareness
- **Self-Reflection**: Internal thought processes for deeper reasoning capabilities
- **Persona Evolution**: Dynamic personality development based on interactions
- **Multi-Provider Support**: Flexible adapter interface supporting multiple LLM providers
## LLM Provider Support
Luna now supports multiple LLM providers through a unified adapter interface:
- **Anthropic**: Claude models (default)
- **OpenAI**: GPT-4 models
- **Google**: Gemini models
You can easily switch between providers by setting the `PROVIDER` environment variable:
```bash
# Use Anthropic Claude (default)
export PROVIDER=anthropic
# Use OpenAI GPT
export PROVIDER=openai
# Use Google Gemini
export PROVIDER=gemini
```
### Provider Feature Comparison
| Feature | Anthropic | OpenAI | Gemini |
|---------|-----------|--------|--------|
| Text Generation | ✅ | ✅ | ✅ |
| Tool Calling | ✅ | ✅ | ✅ |
| System Instructions | ✅ | ✅ | ✅ |
| Content Blocks | ✅ | ❌ | ✅ |
| Thinking Blocks | ✅ | ❌ | ❌ |
| Image Input | ✅ | ✅ | ✅ |
| Streaming | ✅ | ✅ | ✅ |
## Installation
```bash
# Clone the repository
git clone https://github.com/yourusername/luna-ai.git
cd luna-ai
# Set up development environment
./scripts/setup_dev.sh
# Set up your API keys (for the providers you want to use)
export ANTHROPIC_API_KEY=your_key_here
export OPENAI_API_KEY=your_key_here
export GEMINI_API_KEY=your_key_here
# Set your preferred provider (optional, defaults to anthropic)
export PROVIDER=anthropic
```
## Development
### Code Quality Tools
The project uses several tools to maintain code quality:
- **Black** for code formatting
- **isort** for import sorting
- **flake8** for linting
- **mypy** for type checking
- **pytest** for testing
### Development Commands
```bash
# Format code
./scripts/format.sh
# Run linting checks
./scripts/lint.sh
# Run tests
./scripts/test.sh
# Run specific test sets
./scripts/test.sh --unit
./scripts/test.sh --integration
# Run tests with coverage
./scripts/test.sh --coverage
# Compare responses from different LLM providers
./scripts/compare_adapters.py "Your question here?"
# Compare providers with tools enabled
./scripts/compare_adapters.py "Calculate 25 * 16" --with-tools
```
## Project Structure
- `adapters/`: External service interfaces
- `core/`: Core application logic
- `domain/`: Business models and tools
- `models/`: Domain model classes
- `tools/`: Specialized tools for different capabilities
- `services/`: Business logic services
- `system_prompts/`: Agent prompts and configuration
- `config/`: Application configuration
- `tests/`: Unit and integration tests
## License
[MIT License](LICENSE)