You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
v0.9.0: early opus 4.7 support; major Paper Reader overhaul (beta); Amazon Bedrock endpoint; SQLite fallback (no PostgreSQL required); numerous bug fixes
@@ -50,7 +51,9 @@ git clone https://github.com/rangehow/ToFu.git && cd ToFu
50
51
python install.py
51
52
```
52
53
53
-
This creates a virtual environment, installs dependencies, bootstraps PostgreSQL, and starts the server. Open **http://localhost:15000** when it's ready.
54
+
This creates a virtual environment, installs dependencies, and starts the server. Open **http://localhost:15000** when it's ready.
55
+
56
+
> 💾 **Database: zero-config out of the box.** Tofu uses **SQLite** by default — it's built into Python, no install needed. If PostgreSQL is available it will auto-bootstrap and upgrade to PG (better concurrency for 100+ users). Force SQLite with `CHATUI_DB_BACKEND=sqlite`.
54
57
55
58
```bash
56
59
# Pre-configure API key and port
@@ -75,15 +78,29 @@ Open **http://localhost:15000** — done. All data persists in Docker volumes.
75
78
<details>
76
79
<summary><strong>Manual Install</strong> (for full control)</summary>
**Prerequisites:** Python 3.10+, ripgrep & fd-find (recommended). PostgreSQL 18+ is *optional* — Tofu uses SQLite by default.
82
+
83
+
> 💡 **Strongly recommended: use [Miniforge](https://github.com/conda-forge/miniforge) to manage your Python environment.**
84
+
> Old system-installed conda/Anaconda versions often cause dependency conflicts. Install the latest Miniforge for a clean, up-to-date conda-forge environment:
85
+
> ```bash
86
+
># Download and install Miniforge (Linux x86_64 example)
> **PostgreSQL**runs as a local userspace process — no `sudo`, no system service. On first launch, the database auto-bootstraps (initdb, schema creation, port selection).
124
+
> **Database auto-detection:** On first launch, Tofu tries PostgreSQL first (for best concurrency). If PG isn't available, it falls back to **SQLite** automatically — no action needed on your part. PostgreSQL runs as a local userspace process when present (no `sudo`, no system service). Set `CHATUI_DB_BACKEND=sqlite` to force SQLite.
108
125
109
126
> **Missing packages?** If any dependency is missing, `server.py` auto-delegates to `bootstrap.py`, which uses the LLM to diagnose the error and `pip install` the right packages — even when *every* pip package is missing.
110
127
@@ -120,7 +137,7 @@ Click **⚙️ Settings → 🔗 Providers** and add your API keys. Tofu works w
120
137
121
138
| Provider | Setup |
122
139
|---|---|
123
-
| OpenAI, Anthropic, Google Gemini, DeepSeek, Qwen, MiniMax, GLM, Doubao, Mistral, Grok, Baidu Qianfan, OpenRouter | Click **⚡ Add from template** — one click |
140
+
| OpenAI, Anthropic, Amazon Bedrock, Google Gemini, DeepSeek, Qwen, MiniMax, GLM, Doubao, Mistral, Grok, Baidu Qianfan, OpenRouter | Click **⚡ Add from template** — one click |
124
141
| Ollama, vLLM, or any local model server | Add as custom provider with your local endpoint |
125
142
| Azure OpenAI | Template available with deployment-specific base URL |
126
143
@@ -348,6 +365,22 @@ The agent connects to your Tofu server and exposes tools for file operations, cl
348
365
349
366
---
350
367
368
+
### 📄 Paper Reader (beta)
369
+
370
+
When you're reading research papers — arXiv PDFs, conference proceedings, internal whitepapers — Paper Reader turns Tofu into a dedicated research companion.
371
+
372
+
**How to use:** Click the **📄 Paper** button in the sidebar. The screen splits: **PDF on the left**, **chat + notes on the right**. Upload a PDF or paste an arXiv URL (`arxiv.org/abs/XXXX.XXXXX`) — Tofu fetches, parses, and indexes the full text so the assistant can answer questions grounded in the paper.
373
+
374
+
**What it does:**
375
+
-**Grounded Q&A** — ask "what's the ablation result in Table 3?" or "explain Section 4.2" — the assistant cites the specific passage it's drawing from
376
+
-**Paper library** — the left sidebar shows all papers you've read, grouped by date; switch between them without losing conversation context
377
+
-**Side-by-side reading** — scroll the PDF while chatting; the assistant sees the page you're on
378
+
-**Notes tab** — drop your own notes alongside the paper; they persist across sessions
379
+
380
+
> ⚠️ **Beta:** Paper Reader is actively being iterated on. Feedback welcome on [GitHub Issues](https://github.com/rangehow/ToFu/issues).
381
+
382
+
---
383
+
351
384
### 🖼️ Image Generation
352
385
353
386
When you need visual content — illustrations, diagrams, logos, edited photos — the assistant can generate images mid-conversation.
@@ -501,7 +534,7 @@ The `.env.example` file documents all supported variables. Key ones:
0 commit comments