mirror of
https://github.com/lfnovo/open-notebook.git
synced 2026-04-28 11:30:00 +00:00
Some checks failed
Development Build / extract-version (push) Has been cancelled
Tests / Backend Tests (push) Has been cancelled
Tests / Frontend Tests (push) Has been cancelled
Development Build / build-regular (push) Has been cancelled
Development Build / build-single (push) Has been cancelled
Development Build / summary (push) Has been cancelled
* feat(podcasts): integrate model registry for profiles and credential passthrough Replace loose provider/model string fields with record<model> references in podcast profiles, enabling credential passthrough to podcast-creator. Backend: - EpisodeProfile: outline_llm, transcript_llm (record<model>) replace outline_provider/outline_model strings. New language field (BCP 47). - SpeakerProfile: voice_model (record<model>) replaces tts_provider/ tts_model strings. Per-speaker voice_model override support. - Migration 14: schema changes making legacy fields optional, adding new record<model> fields. - Data migration (migration.py): auto-converts legacy profiles to model registry references on startup. Idempotent. - podcast_commands.py: resolves credentials for ALL profiles before calling podcast-creator. - New /api/languages endpoint (pycountry + babel) with BCP 47 locale codes (pt-BR, en-US, etc.). Frontend: - Episode/speaker profile forms use ModelSelector instead of manual provider/model dropdowns. - Language dropdown with BCP 47 codes in episode profile form. - Per-speaker TTS voice model override in speaker profile form. - "Templates" tab renamed to "Profiles". - Setup required badge on unconfigured profiles. - i18n updated across all 8 locales. Closes #486, closes #552 * fix(i18n): remove unused legacy podcast provider/model keys Remove 10 orphaned i18n keys across all 8 locales that were left behind after replacing manual provider/model dropdowns with ModelSelector. * fix: address review violations in podcast model registry - P1: Remove profiles with failed model resolution from dicts to prevent podcast-creator validation errors on unrelated profiles - P2: Use centralized QUERY_KEYS.languages instead of inline key - P3: Fix ISO 639-1 → BCP 47 in model field description and CLAUDE.md - P3: Update "templates" → "profiles" in locale string values (all 8) * chore: bump version to 1.8.0
377 lines
12 KiB
Markdown
377 lines
12 KiB
Markdown
# Interface Overview - Finding Your Way Around
|
|
|
|
Open Notebook uses a clean three-panel layout. This guide shows you where everything is.
|
|
|
|
---
|
|
|
|
## The Main Layout
|
|
|
|
```
|
|
┌─────────────────────────────────────────────────────────────┐
|
|
│ [Logo] Notebooks Search Podcasts Models Settings │
|
|
├──────────────┬──────────────┬───────────────────────────────┤
|
|
│ │ │ │
|
|
│ SOURCES │ NOTES │ CHAT │
|
|
│ │ │ │
|
|
│ Your docs │ Your │ Talk to AI about │
|
|
│ PDFs, URLs │ insights │ your sources │
|
|
│ Videos │ summaries │ │
|
|
│ │ │ │
|
|
│ [+Add] │ [+Write] │ [Type here...] │
|
|
│ │ │ │
|
|
└──────────────┴──────────────┴───────────────────────────────┘
|
|
```
|
|
|
|
---
|
|
|
|
## Navigation Bar
|
|
|
|
The top navigation takes you to main sections:
|
|
|
|
| Icon | Page | What It Does |
|
|
|------|------|--------------|
|
|
| **Notebooks** | Main workspace | Your research projects |
|
|
| **Search** | Ask & Search | Query across all notebooks |
|
|
| **Podcasts** | Audio generation | Manage podcast profiles |
|
|
| **Models** | AI configuration | Set up providers and models |
|
|
| **Settings** | Preferences | App configuration |
|
|
|
|
---
|
|
|
|
## Left Panel: Sources
|
|
|
|
Your research materials live here.
|
|
|
|
### What You'll See
|
|
|
|
```
|
|
┌─────────────────────────┐
|
|
│ Sources (5) │
|
|
│ [+ Add Source] │
|
|
├─────────────────────────┤
|
|
│ ┌─────────────────┐ │
|
|
│ │ 📄 Paper.pdf │ │
|
|
│ │ 🟢 Full Content │ │
|
|
│ │ [⋮ Menu] │ │
|
|
│ └─────────────────┘ │
|
|
│ │
|
|
│ ┌─────────────────┐ │
|
|
│ │ 🔗 Article URL │ │
|
|
│ │ 🟡 Summary Only │ │
|
|
│ │ [⋮ Menu] │ │
|
|
│ └─────────────────┘ │
|
|
└─────────────────────────┘
|
|
```
|
|
|
|
### Source Card Elements
|
|
|
|
- **Icon** - File type (PDF, URL, video, etc.)
|
|
- **Title** - Document name
|
|
- **Context indicator** - What AI can see:
|
|
- 🟢 Full Content
|
|
- 🟡 Summary Only
|
|
- ⛔ Not in Context
|
|
- **Menu (⋮)** - Edit, transform, delete
|
|
|
|
### Add Source Button
|
|
|
|
Click to add:
|
|
- File upload (PDF, DOCX, etc.)
|
|
- Web URL
|
|
- YouTube video
|
|
- Plain text
|
|
|
|
---
|
|
|
|
## Middle Panel: Notes
|
|
|
|
Your insights and AI-generated content.
|
|
|
|
### What You'll See
|
|
|
|
```
|
|
┌─────────────────────────┐
|
|
│ Notes (3) │
|
|
│ [+ Write Note] │
|
|
├─────────────────────────┤
|
|
│ ┌─────────────────┐ │
|
|
│ │ 📝 My Analysis │ │
|
|
│ │ Manual note │ │
|
|
│ │ Jan 3, 2026 │ │
|
|
│ └─────────────────┘ │
|
|
│ │
|
|
│ ┌─────────────────┐ │
|
|
│ │ 🤖 Summary │ │
|
|
│ │ From transform │ │
|
|
│ │ Jan 2, 2026 │ │
|
|
│ └─────────────────┘ │
|
|
└─────────────────────────┘
|
|
```
|
|
|
|
### Note Card Elements
|
|
|
|
- **Icon** - Note type (manual 📝 or AI 🤖)
|
|
- **Title** - Note name
|
|
- **Origin** - How it was created
|
|
- **Date** - When created
|
|
|
|
### Write Note Button
|
|
|
|
Click to:
|
|
- Create manual note
|
|
- Add your own insights
|
|
- Markdown supported
|
|
|
|
---
|
|
|
|
## Right Panel: Chat
|
|
|
|
Your AI conversation space.
|
|
|
|
### What You'll See
|
|
|
|
```
|
|
┌───────────────────────────────┐
|
|
│ Chat │
|
|
│ Session: Research Discussion │
|
|
│ [+ New Session] [Sessions ▼] │
|
|
├───────────────────────────────┤
|
|
│ │
|
|
│ You: What's the main │
|
|
│ finding? │
|
|
│ │
|
|
│ AI: Based on the paper [1], │
|
|
│ the main finding is... │
|
|
│ [Save as Note] │
|
|
│ │
|
|
│ You: Tell me more about │
|
|
│ the methodology. │
|
|
│ │
|
|
├───────────────────────────────┤
|
|
│ Context: 3 sources (12K tok) │
|
|
├───────────────────────────────┤
|
|
│ [Type your message...] [↑] │
|
|
└───────────────────────────────┘
|
|
```
|
|
|
|
### Chat Elements
|
|
|
|
- **Session selector** - Switch between conversations
|
|
- **Message history** - Your conversation
|
|
- **Save as Note** - Keep good responses
|
|
- **Context indicator** - What AI can see
|
|
- **Input field** - Type your questions
|
|
|
|
---
|
|
|
|
## Context Indicators
|
|
|
|
These show what AI can access:
|
|
|
|
### Token Counter
|
|
|
|
```
|
|
Context: 3 sources (12,450 tokens)
|
|
↑ ↑
|
|
Sources Approximate cost indicator
|
|
included
|
|
```
|
|
|
|
### Per-Source Indicators
|
|
|
|
| Indicator | Meaning | AI Access |
|
|
|-----------|---------|-----------|
|
|
| 🟢 Full Content | Complete text | Everything |
|
|
| 🟡 Summary Only | AI summary | Key points only |
|
|
| ⛔ Not in Context | Excluded | Nothing |
|
|
|
|
Click any source to change its context level.
|
|
|
|
---
|
|
|
|
## Podcasts Tab
|
|
|
|
Inside a notebook, switch to Podcasts:
|
|
|
|
```
|
|
┌───────────────────────────────┐
|
|
│ [Chat] [Podcasts] │
|
|
├───────────────────────────────┤
|
|
│ Episode Profile: [Select ▼] │
|
|
│ │
|
|
│ Speakers: │
|
|
│ ├─ Host: Alex (voice model) │
|
|
│ └─ Guest: Sam (voice model) │
|
|
│ │
|
|
│ Include: │
|
|
│ ☑ Paper.pdf │
|
|
│ ☑ My Analysis (note) │
|
|
│ ☐ Background article │
|
|
│ │
|
|
│ [Generate Podcast] │
|
|
└───────────────────────────────┘
|
|
```
|
|
|
|
---
|
|
|
|
## Settings Page
|
|
|
|
Access via navigation bar → Settings:
|
|
|
|
### Key Sections
|
|
|
|
| Section | What It Controls |
|
|
|---------|------------------|
|
|
| **Processing** | Document and URL extraction engines |
|
|
| **Embedding** | Auto-embed settings |
|
|
| **Files** | Auto-delete uploads after processing |
|
|
| **YouTube** | Preferred transcript languages |
|
|
|
|
---
|
|
|
|
## Models Page
|
|
|
|
Configure AI providers:
|
|
|
|
```
|
|
┌───────────────────────────────────────┐
|
|
│ Models │
|
|
├───────────────────────────────────────┤
|
|
│ Language Models │
|
|
│ ┌─────────────────────────────────┐ │
|
|
│ │ GPT-4o (OpenAI) [Edit] │ │
|
|
│ │ Claude Sonnet (Anthropic) │ │
|
|
│ │ Llama 3.3 (Ollama) [⭐] │ │
|
|
│ └─────────────────────────────────┘ │
|
|
│ [+ Add Model] │
|
|
│ │
|
|
│ Embedding Models │
|
|
│ ┌─────────────────────────────────┐ │
|
|
│ │ text-embedding-3-small [⭐] │ │
|
|
│ └─────────────────────────────────┘ │
|
|
│ │
|
|
│ Text-to-Speech │
|
|
│ ┌─────────────────────────────────┐ │
|
|
│ │ OpenAI TTS [⭐] │ │
|
|
│ │ Google TTS │ │
|
|
│ └─────────────────────────────────┘ │
|
|
└───────────────────────────────────────┘
|
|
```
|
|
|
|
- **⭐** = Default model for that category
|
|
- **[Edit]** = Modify configuration
|
|
- **[+ Add]** = Add new model
|
|
|
|
---
|
|
|
|
## Search Page
|
|
|
|
Query across all notebooks:
|
|
|
|
```
|
|
┌───────────────────────────────────────┐
|
|
│ Search │
|
|
├───────────────────────────────────────┤
|
|
│ [What are you looking for? ] [🔍] │
|
|
│ │
|
|
│ Search type: [Text ▼] [Vector ▼] │
|
|
│ Search in: [Sources] [Notes] │
|
|
├───────────────────────────────────────┤
|
|
│ Results (15) │
|
|
│ │
|
|
│ 📄 Paper.pdf - Notebook: Research │
|
|
│ "...the transformer model..." │
|
|
│ │
|
|
│ 📝 My Analysis - Notebook: Research │
|
|
│ "...key findings include..." │
|
|
└───────────────────────────────────────┘
|
|
```
|
|
|
|
---
|
|
|
|
## Common Actions
|
|
|
|
### Create a Notebook
|
|
|
|
```
|
|
Notebooks page → [+ New Notebook] → Enter name → Create
|
|
```
|
|
|
|
### Add a Source
|
|
|
|
```
|
|
Inside notebook → [+ Add Source] → Choose type → Upload/paste → Wait for processing
|
|
```
|
|
|
|
### Ask a Question
|
|
|
|
```
|
|
Inside notebook → Chat panel → Type question → Enter → Read response
|
|
```
|
|
|
|
### Save AI Response
|
|
|
|
```
|
|
Get good response → Click [Save as Note] → Edit title → Save
|
|
```
|
|
|
|
### Change Context Level
|
|
|
|
```
|
|
Click source → Context dropdown → Select level → Changes apply immediately
|
|
```
|
|
|
|
### Generate Podcast
|
|
|
|
```
|
|
Podcasts tab → Select profile → Choose sources → [Generate] → Wait → Download
|
|
```
|
|
|
|
---
|
|
|
|
## Keyboard Shortcuts
|
|
|
|
| Key | Action |
|
|
|-----|--------|
|
|
| `Enter` | Send chat message |
|
|
| `Shift + Enter` | New line in chat |
|
|
| `Escape` | Close dialogs |
|
|
| `Ctrl/Cmd + F` | Browser find |
|
|
|
|
---
|
|
|
|
## Mobile View
|
|
|
|
On smaller screens, the three-panel layout stacks vertically:
|
|
|
|
```
|
|
┌─────────────────┐
|
|
│ SOURCES │
|
|
│ (tap to expand)
|
|
├─────────────────┤
|
|
│ NOTES │
|
|
│ (tap to expand)
|
|
├─────────────────┤
|
|
│ CHAT │
|
|
│ (always visible)
|
|
└─────────────────┘
|
|
```
|
|
|
|
- Panels collapse to save space
|
|
- Tap headers to expand/collapse
|
|
- Chat remains accessible
|
|
- Full functionality preserved
|
|
|
|
---
|
|
|
|
## Tips for Efficient Navigation
|
|
|
|
1. **Use keyboard** - Enter sends messages, Escape closes dialogs
|
|
2. **Context first** - Set source context before chatting
|
|
3. **Sessions** - Create new sessions for different topics
|
|
4. **Search globally** - Use Search page to find across all notebooks
|
|
5. **Models page** - Bookmark your preferred models
|
|
|
|
---
|
|
|
|
Now you know where everything is. Start with [Adding Sources](adding-sources.md) to begin your research!
|