121 lines
2.3 KiB
Markdown
121 lines
2.3 KiB
Markdown
|
|
# FusionAGI Quickstart Guide
|
||
|
|
|
||
|
|
## Prerequisites
|
||
|
|
|
||
|
|
- Python 3.10+
|
||
|
|
- Node.js 20+ (for frontend)
|
||
|
|
- Git
|
||
|
|
|
||
|
|
## Installation
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Clone the repository
|
||
|
|
git clone https://gitea.d-bis.org/d-bis/FusionAGI.git
|
||
|
|
cd FusionAGI
|
||
|
|
|
||
|
|
# Install Python dependencies (dev + API extras)
|
||
|
|
pip install -e ".[dev,api]"
|
||
|
|
|
||
|
|
# Install frontend dependencies
|
||
|
|
cd frontend && npm install && cd ..
|
||
|
|
```
|
||
|
|
|
||
|
|
## Configuration
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Copy environment template
|
||
|
|
cp .env.example .env
|
||
|
|
|
||
|
|
# Edit .env with your settings:
|
||
|
|
# - OPENAI_API_KEY for LLM support
|
||
|
|
# - FUSIONAGI_API_KEY for API authentication (optional)
|
||
|
|
```
|
||
|
|
|
||
|
|
## Running the API
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Development
|
||
|
|
python -m uvicorn fusionagi.api.app:app --reload --port 8000
|
||
|
|
|
||
|
|
# Production
|
||
|
|
gunicorn fusionagi.api.app:app -c gunicorn.conf.py
|
||
|
|
```
|
||
|
|
|
||
|
|
API docs available at: http://localhost:8000/docs
|
||
|
|
|
||
|
|
## Running the Frontend
|
||
|
|
|
||
|
|
```bash
|
||
|
|
cd frontend
|
||
|
|
npm run dev
|
||
|
|
```
|
||
|
|
|
||
|
|
Frontend available at: http://localhost:5173
|
||
|
|
|
||
|
|
## Using Docker Compose
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Start full stack (API + Postgres + Redis + Frontend)
|
||
|
|
docker compose up -d
|
||
|
|
|
||
|
|
# View logs
|
||
|
|
docker compose logs -f api
|
||
|
|
```
|
||
|
|
|
||
|
|
## Quick API Tour
|
||
|
|
|
||
|
|
### Create a session
|
||
|
|
```bash
|
||
|
|
curl -X POST http://localhost:8000/v1/sessions \
|
||
|
|
-H "Content-Type: application/json" \
|
||
|
|
-d '{"user_id": "demo"}'
|
||
|
|
```
|
||
|
|
|
||
|
|
### Send a prompt
|
||
|
|
```bash
|
||
|
|
curl -X POST http://localhost:8000/v1/sessions/{session_id}/prompt \
|
||
|
|
-H "Content-Type: application/json" \
|
||
|
|
-d '{"prompt": "Explain quantum computing"}'
|
||
|
|
```
|
||
|
|
|
||
|
|
### Stream a response (SSE)
|
||
|
|
```bash
|
||
|
|
curl -N -X POST http://localhost:8000/v1/sessions/{session_id}/stream/sse \
|
||
|
|
-H "Content-Type: application/json" \
|
||
|
|
-d '{"prompt": "Write a poem about AI"}'
|
||
|
|
```
|
||
|
|
|
||
|
|
### Check system status
|
||
|
|
```bash
|
||
|
|
curl http://localhost:8000/v1/admin/status
|
||
|
|
```
|
||
|
|
|
||
|
|
## Frontend Pages
|
||
|
|
|
||
|
|
| Page | Description |
|
||
|
|
|---|---|
|
||
|
|
| **Chat** | Main conversation interface with 12-head reasoning display |
|
||
|
|
| **Admin** | System monitoring, voice library, agent configuration |
|
||
|
|
| **Ethics** | Consequence tracking, ethical lessons, cross-head insights |
|
||
|
|
| **Settings** | Theme, conversation style, and personality preferences |
|
||
|
|
|
||
|
|
## Running Tests
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Python tests
|
||
|
|
pytest tests/ -q --tb=short
|
||
|
|
|
||
|
|
# Lint
|
||
|
|
ruff check fusionagi/ tests/
|
||
|
|
|
||
|
|
# Type check
|
||
|
|
mypy fusionagi/ --strict
|
||
|
|
|
||
|
|
# Frontend build check
|
||
|
|
cd frontend && npx tsc --noEmit
|
||
|
|
```
|
||
|
|
|
||
|
|
## Architecture
|
||
|
|
|
||
|
|
See [docs/architecture.md](architecture.md) for the full system architecture.
|