Commit graph

22 commits

Author SHA1 Message Date
Kevin Colten
b1d7a18ce8
Add solo-speaker mode to podcast transcript prompt (#530)
Introduce conditional handling for solo podcasts in prompts/podcast/transcript.jinja. Changes add tailored final-segment wording, strict solo-speaker formatting and guidelines (force use of the single speaker name, require minimum turns, enforce not inventing other speakers), and additional transcript-generation reminders (flow, root "transcript" key, transitions). Multi-speaker behavior and existing format instructions are preserved.
2026-02-08 08:15:26 -03:00
LUIS NOVO
71b8d13b24 docs: generate comprehensive CLAUDE.md reference documentation across codebase
Create a hierarchical CLAUDE.md documentation system for the entire Open Notebook
codebase with focus on concise, pattern-driven reference cards rather than
comprehensive tutorials.

## Changes

### Core Documentation System
- Updated `.claude/commands/build-claude-md.md` to distinguish between leaf and
  parent modules, with special handling for prompt/template modules
- Established clear patterns:
  * Leaf modules (40-70 lines): Components, hooks, API clients
  * Parent modules (50-150 lines): Architecture, cross-layer patterns, data flows
  * Template modules: Pattern focus, not catalog listings

### Generated Documentation
Created 15 CLAUDE.md reference files across the project:

**Frontend (React/Next.js)**
- frontend/src/CLAUDE.md: Architecture overview, data flow, three-tier design
- frontend/src/lib/hooks/CLAUDE.md: React Query patterns, state management
- frontend/src/lib/api/CLAUDE.md: Axios client, FormData handling, interceptors
- frontend/src/lib/stores/CLAUDE.md: Zustand state persistence, auth patterns
- frontend/src/components/ui/CLAUDE.md: Radix UI primitives, CVA styling

**Backend (Python/FastAPI)**
- open_notebook/CLAUDE.md: System architecture, layer interactions
- open_notebook/ai/CLAUDE.md: Model provisioning, Esperanto integration
- open_notebook/domain/CLAUDE.md: Data models, ObjectModel/RecordModel patterns
- open_notebook/database/CLAUDE.md: Repository pattern, async migrations
- open_notebook/graphs/CLAUDE.md: LangGraph workflows, async orchestration
- open_notebook/utils/CLAUDE.md: Cross-cutting utilities, context building
- open_notebook/podcasts/CLAUDE.md: Episode/speaker profiles, job tracking

**API & Other**
- api/CLAUDE.md: REST layer, service architecture
- commands/CLAUDE.md: Async command handlers, job queue patterns
- prompts/CLAUDE.md: Jinja2 templates, prompt engineering patterns (refactored)

**Project Root**
- CLAUDE.md: Project overview, three-tier architecture, tech stack, getting started

### Key Features
- Zero duplication: Parent modules reference child CLAUDE.md files, don't repeat them
- Pattern-focused: Emphasizes how components work together, not component catalogs
- Scannable: Short bullets, code examples only when necessary (1-2 per file)
- Practical: "How to extend" guides, quirks/gotchas for each module
- Navigation: Root CLAUDE.md acts as hub pointing to specialized documentation

### Cleanup
- Removed unused `batch_fix_services.py`
- Removed deprecated `open_notebook/plugins/podcasts.py`
- Updated .gitignore for documentation consistency

## Impact
New contributors can now:
1. Read root CLAUDE.md for system architecture (5 min)
2. Jump to specific layer documentation (frontend, api, open_notebook)
3. Dive into module-specific patterns in child CLAUDE.md files (1 min per module)
All documentation is lean, reference-focused, and avoids duplication.
2026-01-03 16:27:52 -03:00
LUIS NOVO
ab5560c9a2 refactor: reorganize folder structure for better maintainability
Changes:
- Move migrations/ under open_notebook/database/migrations/
- Extract AI models to open_notebook/ai/ (Model, ModelManager, provision)
- Extract podcasts to open_notebook/podcasts/ (EpisodeProfile, SpeakerProfile, PodcastEpisode)
- Reorganize prompts to mirror graphs structure (chat/, source_chat/)

This improves code organization by:
- Consolidating database concerns (migrations now with database code)
- Separating AI infrastructure from domain entities
- Isolating podcast feature into its own module
- Creating consistent prompt/graph naming conventions

All 52 tests pass.
2026-01-03 14:04:27 -03:00
Troy Kelly
488023b3d3
Add GPT-5 extended thinking support for podcast generation (#155)
* Add helpful error message for GPT-5 extended thinking issue in podcasts

When GPT-5 models use extended thinking and put all output inside
<think> tags, the podcast-creator library strips those tags and is
left with empty content, causing a JSON parsing error.

This commit adds detection for this specific error pattern and provides
a helpful message suggesting to use gpt-4o, gpt-4o-mini, or gpt-4-turbo
instead.

Fixes issue where podcast generation fails with:
"Invalid json output: " or "Expecting value: line 1 column 1"

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Add custom podcast prompts with GPT-5 extended thinking support

Created custom Jinja templates for podcast outline and transcript
generation that properly handle GPT-5 models with extended thinking.

The templates explicitly instruct models to:
1. Put reasoning inside <think></think> tags
2. Put the final JSON output OUTSIDE and AFTER the thinking tags
3. Return raw JSON without ```json code block wrappers

This fixes the issue where GPT-5 models were putting all output inside
<think> tags, which were then stripped by podcast-creator's
clean_thinking_content() function, leaving empty content that failed
JSON parsing.

The prompts are placed in prompts/podcast/ which is priority #3 in
podcast-creator's template resolution (after inline config and
configured directory, but before bundled defaults).

Fixes: podcast generation failures with GPT-5 models
Related to: #aperim/open-notebook previous commit on error handling

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-10-18 13:40:05 -03:00
Luis Novo
b7e656a319
Version 1 (#160)
New front-end
Launch Chat API
Manage Sources
Enable re-embedding of all contents
Sources can be added without a notebook now
Improved settings
Enable model selector on all chats
Background processing for better experience
Dark mode
Improved Notes

Improved Docs: 
- Remove all Streamlit references from documentation
- Update deployment guides with React frontend setup
- Fix Docker environment variables format (SURREAL_URL, SURREAL_PASSWORD)
- Update docker image tag from :latest to :v1-latest
- Change navigation references (Settings → Models to just Models)
- Update development setup to include frontend npm commands
- Add MIGRATION.md guide for users upgrading from Streamlit
- Update quick-start guide with correct environment variables
- Add port 5055 documentation for API access
- Update project structure to reflect frontend/ directory
- Remove outdated source-chat documentation files
2025-10-18 12:46:22 -03:00
LUIS NOVO
4a5d47d934 refactor transformation, add graph and admin 2024-11-18 22:01:11 -03:00
LUIS NOVO
80353a97c9 make model rag work with vector only 2024-11-13 12:18:26 -03:00
LUIS NOVO
281abdf01b improve the accuracy of ids in the citations 2024-11-13 11:55:38 -03:00
LUIS NOVO
a33228de5a split system and user message in patterns 2024-11-12 12:56:03 -03:00
LUIS NOVO
99b8ada280 new ask model strategy 2024-11-08 16:08:13 -03:00
LUIS NOVO
3ea4e41a78 improve citations and add object page 2024-11-05 16:55:59 -03:00
LUIS NOVO
418c67f69f add search and rag functions in beta 2024-11-04 09:53:49 -03:00
LUIS NOVO
3b262a63f4 better model mgmt 2024-11-01 21:11:23 -03:00
LUIS NOVO
a9ac4a6dc8 model manager 2024-11-01 20:37:23 -03:00
LUIS NOVO
a24faaba44 moved toc to a pattern 2024-11-01 19:08:47 -03:00
LUIS NOVO
0876e94658 transformation folder change 2024-11-01 12:36:59 -03:00
LUIS NOVO
af315a0bab new folder structure 2024-11-01 11:50:37 -03:00
LUIS NOVO
9b9303d52f process table of contents for all sources 2024-10-23 15:09:40 -03:00
LUIS NOVO
02ff05b6fd v1 of transformations 2024-10-23 10:59:05 -03:00
LUIS NOVO
9042b08ae3 add model router and improve prompts 2024-10-22 18:24:24 -03:00
LUIS NOVO
f96fc580b3 make doc_query tool name consistent with prompt 2024-10-22 16:45:08 -03:00
LUIS NOVO
bcd260a28b Initial commit with all features 2024-10-21 14:56:10 -03:00