A persistent memory infrastructure for LLMs.
Installable. Customizable. Private.
Turn any LLM into an entity with continuous memory.
Not just a chatbot โ a full cognitive architecture.
Ulisse is a system that allows a language model to remember what you told it, even across different sessions. It's an architecture that turns a generic LLM into an entity with continuous memory, capable of updating its own knowledge as it talks to you.
|
Ollama, LM Studio, or any |
OpenAI, DeepSeek, Claude, |
Fine-tuned cloud model |
Ulisse is built on a three-layer cognitive architecture. The user doesn't need to configure any of this โ it works out of the box.
graph TD
subgraph "๐ฌ Layer 1 โ Current Conversation"
A[User Message] --> B[AI Response]
B --> A
end
subgraph "๐ Layer 2 โ Short-Term Memory ยท STM"
C[(ChromaDB\nVector Store)]
D[Semantic Search\n& Retrieval]
C --> D
end
subgraph "๐ Layer 3 โ Long-Term Memory ยท LTM"
E[Semantic Wiki\nMarkdown-based]
F[AI-Managed\nKnowledge Graph]
E --> F
end
A -->|RAG Query| D
D -->|Relevant Context| B
B -->|Synthesize & Store| E
A -->|Direct Lookup| E
style A fill:#0d1b2a,stroke:#00d4ff,color:#fff
style B fill:#0d1b2a,stroke:#00d4ff,color:#fff
style C fill:#1a0a2e,stroke:#a855f7,color:#fff
style D fill:#1a0a2e,stroke:#a855f7,color:#fff
style E fill:#1a1a00,stroke:#ffd700,color:#fff
style F fill:#1a1a00,stroke:#ffd700,color:#fff
| Layer | Name | Technology | Purpose |
|---|---|---|---|
| 1๏ธโฃ | Current Conversation | In-context window | Immediate chat context |
| 2๏ธโฃ | STM (RAG) | ChromaDB vectors | Context-aware retrieval from past sessions & docs |
| 3๏ธโฃ | LTM (Wiki) | Markdown semantic wiki | AI-managed persistent knowledge, projects & facts |
Ulisse is not just a chatbot โ it is an agentic system equipped with a specialized sub-agent and native tools to interact with the real world.
|
Directly built into the core for maximum reliability
|
A powerful autonomous engine for complex tasks
|
- Python 3.11+
- An LLM API key OR Ollama/LM Studio running locally OR Ulisse Memo v1 (currently offline)
Note
First-time setup: On the first launch, the system will automatically download all-MiniLM-L6-v2 (~80 MB) for RAG embeddings and ChromaDB dependencies. These are cached locally in ./hf_cache and ./vectordb. Subsequent startups will be faster.
# 1. Clone the repository
git clone https://github.com/FridaAlma/UlisseAI.git
cd UlisseAI
# 2. Install dependencies
pip install -r requirements.txt
# 3. Configure environment
cp .env.example .envEdit .env with your settings:
DEEPSEEK_API_KEY=your_key_here
DEEPSEEK_BASE_URL=https://api.deepseek.com
CORPUS_PATH=./corpus
VAULT_PATH=./vault
VECTORDB_PATH=./vectordb# 4. Launch
python webapp/backend/app.pyThen open http://localhost:5000 ๐
In the chat interface, next to the Send button you'll find a ๐ network button that opens a provider selector:
| Option | Icon | Description |
|---|---|---|
| LLM Locale | ๐ป | Connects to a local model (Ollama, LM Studio, etc.). Uses DEEPSEEK_BASE_URL / DEEPSEEK_API_KEY from .env |
| API Key | ๐ | Enter any provider's Base URL, API Key, and model name directly from the UI. Saved in localStorage |
| Ulisse Memo v1 | ๐ฎ |
Your choice is persisted in the browser across reloads.
โ๏ธ Advanced: Changing the Model Manually
Edit .env:
DEEPSEEK_API_KEY=your_key_here
DEEPSEEK_BASE_URL=https://api.deepseek.com # or http://localhost:11434/v1 for OllamaThen in webapp/backend/app.py, find and change:
chat_model = "deepseek-chat" # โ "gpt-4o", "llama3", "qwen2.5:7b", etc.[!NOTE] Maintenance Notice: The Ulisse Memo v1 endpoint is currently suspended. Please use a Local Model or a custom API Key in the meantime.
In webapp/backend/app.py, locate the provider routing block (~line 408):
# === Provider routing ===
provider = data.get("provider", "local")You can add new branches here to support additional providers at the server level.
Ulisse operates using a specialized system prompt located in corpus/system_prompt.md.
Tip
Customizing the System Prompt: You can personalize Ulisse's behavior, but proceed with care:
- โ Identity and Role โ Freely modify to redefine who Ulisse is
โ ๏ธ Personality and Tone โ Adjustable, but heavy changes may increase hallucinations. Adaptability and Irony are safe to customize- ๐ซ Technical Instructions โ Do not modify. Memory architecture (STM/LTM) and Wiki management depend on specific instructions
| Component | Technology |
|---|---|
| Runtime | Python 3.11+ |
| Vector DB | ChromaDB |
| LLM Provider | DeepSeek / OpenAI-compatible |
| Long-Term Memory | Semantic Wiki (Markdown) |
| Knowledge Graph | Obsidian-compatible |
| Backend | Flask |
| Frontend | Vanilla JS (single-page application) |
|
Active Development โ Functional and in testing phase. |
This project is licensed under the Apache License 2.0.
Built with ๐ง by FridaAlma
Report Bug ยท
Request Feature
