/open-notebook

An Open Source implementation of Notebook LM with more flexibility and features

Primary LanguagePythonMIT LicenseMIT

Forks Stargazers Issues MIT License


Logo

Open Notebook

An open source, privacy-focused alternative to Google's Notebook LM!
Checkout our website Β»

Get Started (Setup) Β· Features

πŸ“’ Open Notebook is under very active development

Open Notebook is under active development! We're moving fast and making improvements every week. Your feedback is incredibly valuable to me during this exciting phase and it gives me motivation to keep improving and building this amazing tool. Please feel free to star the project if you find it useful, and don't hesitate to reach out with any questions or suggestions. I'm excited to see how you'll use it and what ideas you'll bring to the project! Let's build something amazing together! πŸš€

⚠️ API Changes: As we optimize and enhance the project, some APIs and interfaces might change. We'll do our best to document these changes and minimize disruption.

πŸ™ We Need Your Feedback: Please try out Open Notebook and let us know what you think! Submit issues, feature requests, or just share your experience through:

  • GitHub Issues
  • Discussions
  • Pull Requests

Together, we can make it even better!

Table of Contents
  1. About The Project
  2. Setting Up
  3. Usage
  4. Features
  5. Roadmap
  6. Contributing
  7. License
  8. Contact
  9. Acknowledgments

About The Project

New Notebook

An open source, privacy-focused alternative to Google's Notebook LM. Why give Google more of our data when we can take control of our own research workflows?

In a world dominated by Artificial Intelligence, having the ability to think 🧠 and acquire new knowledge πŸ’‘, is a skill that should not be a privilege for a few, nor restricted to a single provider.

Open Notebook empowers you to manage your research, generate AI-assisted notes, and interact with your contentβ€”on your terms.

Learn more about our project at https://www.open-notebook.ai

(back to top)

Built With

Python SurrealDB LangChain Streamlit

(back to top)

βš™οΈ Setting Up

Go to the Setup Guide to learn how to set up the tool in details.

You don't need to clone this repo if you just want to use the app without building from source! Take a look at the Open Notebook Boilerplate repo with a sample of how to set it up for maximum feature usability.

Running from source

Start by cloning this repo and cd into it.

git clone https://github.com/lfnovo/open-notebook
cd open-notebook

Rename .env.example into .env and set up your API keys. Also, repeat the process for docker.env if you plan to run this using docker.

cp .env.example .env
cp .env.example docker.env

Edit .env for your API keys.

To run the source code locally and experiment with the code, you just need to run:

poetry install
docker compose --profile db_only up
poetry run streamlit run app_home.py

If you don't want to mess around with the code and just want to run it as a docker image:

docker compose --profile multi up

(back to top)

Usage

Go to the Usage page to learn how to use all features.

(back to top)

Features

  • Multi-Notebook Support: Organize your research across multiple notebooks effortlessly.
  • Multi-model support: Open AI, Anthropic, Gemini, Vertex AI, Open Router, Ollama.
  • Podcast Generator: Automatically convert your notes into a podcast format.
  • Broad Content Integration: Works with links, PDFs, EPUB, Office, TXT, Markdown files, YouTube videos, Audio files, Video files and pasted text.
  • AI-Powered Notes: Write notes yourself or let the AI assist you in generating insights.
  • Integrated Search Engines: Built-in full-text and vector search for faster information retrieval.
  • Fine-Grained Context Management: Choose exactly what to share with the AI to maintain control.

(back to top)

πŸš€ New Features

v0.1 - Release Candidate

  • Better citations and improved search capabilities
  • The "Ask" feature is much smarter now and let's you check its thinking
  • Enabled support for X.AI and Groq models
  • Select default transformations to apply to all content
  • Save insights as custom notes
  • Items are added to context by default

v0.0.10 - Gemini podcast model

  • Added the Gemini model for generating much more fluid and engaging podcasts

v0.0.9 - Ask your Documents and Citations ❓

  • Ask questions about your documents and get answers with citations

v0.0.7 - Model Management πŸ—‚οΈ

  • Manage your AI models and providers in a single interface
  • Define default models for several tasks such as chat, transformation, embedding, etc
  • Enabled support for Embedding models from Gemini, Vertex and Ollama

v0.0.6 - ePub and Office files support πŸ“„

You can now process ePub and Office files (Word, Excel, PowerPoint), extracting text and insights from them. Perfect for books, reports, presentations, and more.

v0.0.5 - Audio and Video support πŸ“½οΈ

You can now process audio and video files, extracting transcripts and insights from them. Perfect for podcasts, interviews, lectures, and more.

v0.0.4 - Podcasts πŸŽ™οΈ

You can now build amazing custom podcasts based on your own data. Customize your speakers, episode structure, cadence, voices, etc.

Check out a sample using my own voice created on Eleven Labs and a interview format.

Check out our podcast sample

You can generate your podcast in dozens of languages.

Head to the Podcasts page for more info

v0.0.3 - Transformations ✨

We just release a much more powerful way to create more value from your sources. Transformations enable you do extract an unlimited amount of insights from your content. It's 100% customizable and you can extend it to your own needs, like Paper Analysis, Article Writing, etc.

Head to the Transformations page for more info

v0.0.2 - Several new providers are supported now:

  • OpenAI
  • Anthropic
  • Open Router
  • LiteLLM
  • Vertex AI
  • Ollama

πŸ“ Notebook Page

Three intuitive columns to streamline your work:

  1. Sources: Manage all research materials.
  2. Notes: Create or AI-generate notes.
  3. Chat: Chat with the AI, leveraging your content.

βš™οΈ Context Configuration

Take control of your data. Decide what gets sent to the AI with three context options:

  • No context
  • Summary only
  • Full content

Plus, you can add your project description to help the AI provide more accurate and helpful responses.

πŸ” Integrated Search for Your Items

Locate anything across your research with ease using full-text and vector-based search.

πŸ’¬ Powerful open prompts

Jinja based prompts that are easy to customize to your own preferences.

(back to top)

Roadmap

  • Live Front-End Updates: Real-time UI updates for a smoother experience.
  • Async Processing: Faster UI through asynchronous content processing.
  • Cross-Notebook Sources and Notes: Reuse research notes across projects.
  • Bookmark Integration: Integrate with your favorite bookmarking app.
  • βœ… Multi-model support: Open AI, Anthropic, Vertex AI, Open Router, Ollama, etc.
  • βœ… Insight Generation: New tools for creating insights - transformations
  • βœ… Podcast Generator: Automatically convert your notes into a podcast format.
  • βœ… Multiple Chat Sessions: Juggle different discussions within the same notebook.
  • βœ… Enhanced Citations: Improved layout and finer control for citations.
  • βœ… Better Embeddings & Summarization: Smarter ways to distill information.

See the open issues for a full list of proposed features (and known issues).

(back to top)

Contributing

We would love your contributions! Specifically, we're looking for help with:

  • Front-End Development: Improve the UI/UX by moving beyond Streamlit.
  • Testing & Bug Fixes: Help make Open Notebook more robust.
  • Feature Development: Let’s make the coolest note-taking tool together!

See more at CONTRIBUTING

(back to top)

License

Open Notebook is MIT licensed. See the LICENSE file for details.

(back to top)

Contact

Luis Novo - @lfnovo

(back to top)

Acknowledgments

This project uses some amazing third-party libraries

  • Podcastfy - Licensed under the Apache License 2.0

(back to top)