Files
jarvisChat/readme.md
2026-03-15 14:56:47 -07:00

90 lines
2.5 KiB
Markdown

# JarvisChat v1.4.0
Lightweight Ollama coding companion with FTS5 memory system.
## New in v1.4.0
- **FTS5 Memory System**: Say "remember that..." to store facts, they're automatically retrieved by relevance
- **Forget command**: Say "forget about..." to remove memories
- **Memory toggle**: Enable/disable memory injection from topbar
- **Refactored structure**: Separated frontend from backend for maintainability
## File Structure
```
/opt/jarvischat/
├── app.py # FastAPI backend (~600 lines)
├── jarvischat.db # SQLite database (auto-created)
├── static/
│ └── logo.jpg # Your logo (optional)
└── templates/
└── index.html # Frontend
```
## Installation
```bash
# Backup existing
cd /opt/jarvischat
cp app.py app.py.bak
# Create directories
mkdir -p templates static
# Copy new files (from wherever you downloaded them)
cp /path/to/new/app.py .
cp /path/to/new/templates/index.html templates/
# Extract logo from old app.py if you want (or just let it fail gracefully)
# The frontend handles missing logo with onerror="this.style.display='none'"
# Restart service
sudo systemctl restart jarvischat
```
## Memory Commands
In chat, you can say:
- "remember that I prefer Rust over Go" → stores as preference
- "remember that JarvisChat runs on port 8080" → stores as infrastructure
- "note that the deadline is Friday" → stores as general
- "forget about the deadline" → removes matching memories
Memories are automatically searched and injected based on your message content.
## API Endpoints
### Memory
- `GET /api/memories` - List all memories
- `POST /api/memories` - Add memory `{"fact": "...", "topic": "general"}`
- `DELETE /api/memories/{rowid}` - Delete memory
- `GET /api/memories/search?q=rust` - Search memories
- `GET /api/memories/stats` - Get counts by topic
### Existing
- `GET /api/models` - List Ollama models
- `POST /api/chat` - Send message (streaming)
- `GET /api/profile` - Get profile
- `PUT /api/settings` - Update settings
## Dependencies
```bash
pip install fastapi uvicorn httpx psutil jinja2 python-multipart --break-system-packages
```
## Testing Memory
```bash
# Add a memory via API
curl -X POST http://jarvis:8080/api/memories \
-H "Content-Type: application/json" \
-d '{"fact": "User prefers native installs over Docker", "topic": "preference"}'
# Search memories
curl "http://jarvis:8080/api/memories/search?q=docker"
# Or in chat, just say:
# "remember that I hate yaml"
# Then ask: "what markup languages should I avoid?"
```