first commit of v.02 application
This commit is contained in:
62
README.md
Normal file
62
README.md
Normal file
@@ -0,0 +1,62 @@
|
||||
# Citation Sentinel
|
||||
|
||||
A source-grounded research assistant inspired by Google's NotebookLM. MIT
|
||||
license, by [@sjdev](https://sjdev.co). Users upload documents, links, youtube videos,
|
||||
ask questions and receive answers (with inline citations) grounded in their sources.
|
||||
|
||||
Built with a React/Vite frontend and a Node.js/Express backend, using Anthropic Claude for
|
||||
generation, OpenAI Whisper for video audio track transcription, Voyage AI for embeddings and response cosine similarity scoring ("groundedness" score).
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- **Node.js** (v18+)
|
||||
- **yt-dlp** -- required for YouTube video source support (`brew install yt-dlp` or `pip install yt-dlp`)
|
||||
|
||||
## Getting Started
|
||||
|
||||
```bash
|
||||
# clone and install
|
||||
git clone <repo-url> && cd notebooklm_clone
|
||||
cd server && npm install && cd ..
|
||||
cd client && npm install && cd ..
|
||||
|
||||
# configure
|
||||
cp server/.env.example server/.env
|
||||
# edit server/.env and add your ANTHROPIC_API_KEY, VOYAGE_API_KEY,
|
||||
# and optionally OPENAI_API_KEY (only needed for audio source transcription via Whisper)
|
||||
|
||||
# run
|
||||
make dev
|
||||
```
|
||||
|
||||
## Rationale
|
||||
|
||||
NotebookLM is a powerful research tool, but it is proprietary and closed.
|
||||
This clone demonstrates the core source-grounded Q&A pattern with transparent
|
||||
retrieval, generation, and groundedness scoring (LLM response quality cosine scoring) -- all with swappable models/fully open source.
|
||||
|
||||
## Design
|
||||
|
||||
Two-package monorepo:
|
||||
|
||||
- `server/` -- single Express backend with layered architecture
|
||||
(routes -> services -> stores). Routes orchestrate; services contain
|
||||
business logic; stores manage in-memory state.
|
||||
|
||||
- `client/` -- React 19 SPA via Vite. Two-panel layout: sidebar for
|
||||
notebooks/data sources, main area for LLM chat with explorable citations,
|
||||
groundedness badges (cosine similarity scoring of LLM responses), and follow-up question chips.
|
||||
|
||||
## Query pipeline
|
||||
|
||||
Embed query (Voyage) -> k-NN search -> rerank (Voyage) ->
|
||||
generate answer with citations (Claude) -> compute groundedness score
|
||||
(cosine similarity of answer vs cited chunks).
|
||||
|
||||
## License
|
||||
|
||||
MIT. See [LICENSE](./LICENSE).
|
||||
|
||||
## Author
|
||||
|
||||
[@sjdev](https://sjdev.co)
|
||||
Reference in New Issue
Block a user