title | emoji | colorFrom | colorTo | sdk | sdk_version | app_file | pinned | short_description |
---|---|---|---|---|---|---|---|---|
Noah |
📕 |
yellow |
purple |
gradio |
5.29.1 |
app.py |
false |
Noah is an AI-powered reading assistant. |
An example chatbot using Gradio, huggingface_hub
, and the Hugging Face Inference API.
Noah is an AI-powered reading assistant that helps you discover books, manage your reading schedule, and track your reading journey. It integrates with OpenLibrary for book recommendations, Google Calendar for scheduling, and Notion for note-taking.
-
📖 Book Recommendations
- Get personalized book recommendations based on genres
- Filter by minimum rating
- View detailed book information from OpenLibrary
-
📅 Reading Schedule
- Schedule reading sessions in your Google Calendar
- Customize reading duration
- Automatic scheduling for optimal reading times
-
📝 Reading Notes
- Create organized Notion pages for each book
- Track reading progress
- Store your thoughts and highlights
-
Clone the repo:
git clone https://huggingface.co/spaces/yuki-zmstr/noah-read cd noah-read
-
Ensure you have python 3.10 or above installed (3.10 is recommended):
python3 --version
-
Create a virtual environment to isolate dependencies:
python3 -m venv venv source venv/bin/activate # On Windows, use: venv\Scripts\activate
-
Install requirements:
pip3 install -r requirements.txt
-
Set up your environment variables: Copy
.env.example
to.env
and fill in your API keys:cp .env.example .env
-
Run the app:
python3 app.py
Or for development mode with auto-reload:
gradio app.py
-
OpenAI API:
- Go to OpenAI API
- Create an account or log in
- Generate a new API key
- Add to
.env
:OPENAI_API_KEY=your_key_here
-
Google Calendar API:
- Go to Google Cloud Console
- Create a new project
- Enable the Google Calendar API
- Create OAuth 2.0 credentials (Desktop app)
- Download and rename to
google_credentials.json
- Add to
.env
:GOOGLE_CALENDAR_CREDENTIALS_FILE=google_credentials.json
-
Notion API:
- Go to Notion Developers
- Create new integration
- Copy the Integration Token
- Create a database and share with integration
- Add to
.env
:NOTION_API_KEY=your_integration_token NOTION_DATABASE_ID=your_database_id
Try these commands in the chat:
"Recommend me some science fiction books"
"Schedule 30 minutes to read tomorrow"
"Create a journal entry for my thoughts"
The Notion database will be automatically set up with these fields:
- Title (title): Book title
- Author (rich text): Author name(s)
- Rating (number): Book rating
- Status (select): Reading status (To Read, Reading, Completed)
- Link (url): Link to the book on OpenLibrary
- Description (rich text): Book description
- My Notes (rich text): Your reading notes and thoughts