{"id":14260690,"url":"https://github.com/Bklieger/infinite-bookshelf","last_synced_at":"2025-08-13T07:33:11.655Z","repository":{"id":240612036,"uuid":"803040376","full_name":"Bklieger/infinite-bookshelf","owner":"Bklieger","description":"Infinite Bookshelf: Generate entire books in seconds using Groq and Llama3","archived":false,"fork":false,"pushed_at":"2024-09-07T16:42:43.000Z","size":2170,"stargazers_count":1142,"open_issues_count":3,"forks_count":255,"subscribers_count":12,"default_branch":"main","last_synced_at":"2024-10-29T17:12:25.613Z","etag":null,"topics":["ai","groq","groq-api","llama3"],"latest_commit_sha":null,"homepage":"https://infinite.benjamin.sh","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Bklieger.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-05-19T23:56:33.000Z","updated_at":"2024-10-29T09:37:53.000Z","dependencies_parsed_at":"2024-08-01T03:56:33.876Z","dependency_job_id":"c620f3fb-b63a-49e1-8a86-f6d6979fab77","html_url":"https://github.com/Bklieger/infinite-bookshelf","commit_stats":{"total_commits":71,"total_committers":5,"mean_commits":14.2,"dds":0.09859154929577463,"last_synced_commit":"89250be01b9438b488e24f8d7914fad9296e2a08"},"previous_names":["bklieger/groqbook","bklieger/infinite-bookshelf"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bklieger%2Finfinite-bookshelf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bklieger%2Finfinite-bookshelf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bklieger%2Finfinite-bookshelf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bklieger%2Finfinite-bookshelf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Bklieger","download_url":"https://codeload.github.com/Bklieger/infinite-bookshelf/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":229746986,"owners_count":18117979,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","groq","groq-api","llama3"],"created_at":"2024-08-22T12:01:15.654Z","updated_at":"2025-08-13T07:33:11.554Z","avatar_url":"https://github.com/Bklieger.png","language":"Python","funding_links":[],"categories":["Python","A01_文本生成_文本对话"],"sub_categories":["大语言对话模型及数据"],"readme":"\u003ch2 align=\"center\"\u003e\n  \u003cbr\u003e\n  \u003cimg src=\"https://i.imgur.com/TCUC9Ic.png\" alt=\"Infinite Bookshelf Logo\" width=\"200\"\u003e\n \u003cbr\u003e\n \u003cbr\u003e\n Infinite Bookshelf: Generate entire new books\u003cbr\u003ein seconds using Groq and Llama\n \u003cbr\u003e\n\u003c/h2\u003e\n\u003cp align=\"center\"\u003e\n \u003ca href=\"https://github.com/bklieger/infinite-bookshelf/stargazers\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/bklieger/infinite-bookshelf\"\u003e\u003c/a\u003e\n \u003ca href=\"https://github.com/bklieger/infinite-bookshelf/blob/main/LICENSE.md\"\u003e\n \u003cimg src=\"https://img.shields.io/badge/License-MIT-green.svg\"\u003e\n \u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n \u003ca href=\"#Overview\"\u003eOverview\u003c/a\u003e •\n \u003ca href=\"#Features\"\u003eFeatures\u003c/a\u003e •\n \u003ca href=\"#Quickstart\"\u003eQuickstart\u003c/a\u003e •\n \u003ca href=\"#Contributing\"\u003eContributing\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cbr\u003e\n\n[Demo of Infinite Bookshelf](https://github.com/user-attachments/assets/e65d0bb8-b9db-492b-8da3-f13698e4e474)\n\u003e Imagine you want to learn about Natural Language Processing. You instantly get an 100 page book with chapters, content, and structure. What if you find the language too technical? You can change the prompt and the book – all 100 pages – adapts to your needs. What if you want to learn how to code the technology in python? You can ask for that too, and in seconds, every chapter has code examples alongside the instructional content. That’s the power of an Infinite Bookshelf.\n\n---\n\n## Overview\n\n[![Project Demo](https://img.youtube.com/vi/91Ekd5Yp3lU/0.jpg)](https://www.youtube.com/watch?v=91Ekd5Yp3lU)\n\u003e Full demo of Infinite Bookshelf fast generation of book content\n\nInfinite Bookshelf is a streamlit app that scaffolds the creation of books from a one-line prompt using Llama on Groq. It works well on nonfiction books and generates each chapter within seconds. The app is able to mix usage of two models, utilizing the larger model for generating the structure and the smaller of the two for creating the content. Currently, the model only uses the context of the section title to generate the chapter content. In the future, this will be expanded to the fuller context of the book to allow Infinite Bookshelf to generate quality fiction books as well.\n\n---\n\n## Features\n\n- 📖 Scaffolded prompting that strategically switches between a smaller and larger model balance speed and quality\n- 🖊️ Uses markdown styling to create an aesthetic book on the streamlit app that includes tables and code \n- 📂 Allows user to download a text file with the entire book contents\n\n### Example Generated Books:\n\n| Example                                      | Prompt                                                                                                                                |\n| -------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |\n| [LLM Basics](Example_1.md)             |  The Basics of Large Language Models                                       |\n| [Data Structures and Algorithms](Example_2.md) | Data Structures and Algorithms in Java                                            |\n\n---\n\n## Quickstart\n\n\u003e [!IMPORTANT]\n\u003e To use Infinite Bookshelf, you can use the hosted version at [infinite.benjamin.sh](https://infinite.benjamin.sh)\n\u003e Alternatively, you can run Infinite Bookshelf locally with streamlit using the quickstart instructions.\n\n\n### Hosted on Streamlit:\n\nTo use Infinite Bookshelf, you can use the hosted version at [infinite.benjamin.sh](https://infinite.benjamin.sh)\n\n\n### Run locally:\n\nAlternative, you can run Infinite Bookshelf locally with streamlit.\n\n#### Step 1\nFirst, you can set your Groq API key in the environment variables:\n\n~~~\nexport GROQ_API_KEY=\"gsk_yA...\"\n~~~\n\nThis is an optional step that allows you to skip setting the Groq API key later in the streamlit app.\n\n#### Step 2\nNext, you can set up a virtual environment and install the dependencies.\n\n~~~\npython3 -m venv venv\n~~~\n\n~~~\nsource venv/bin/activate # Bash\n\nvenv\\Scripts\\activate.bat # Windows\n~~~\n\n~~~\npip3 install -r requirements.txt\n~~~\n\n\n#### Step 3 (Windows Only)\nIt may be required to install gtk3 for users on windows.\n\n~~~\nhttps://github.com/tschoonj/GTK-for-Windows-Runtime-Environment-Installer?tab=readme-ov-file\n~~~\n\n#### Step 4\nFinally, you can run the streamlit app.\n\n~~~\npython3 -m streamlit run main.py\n~~~\n\n\n\n## Details\n\n\n### Technologies\n\n- Streamlit\n- Llama models on Groq Cloud\n\n### Limitations\n\nInfinite Bookshelf may generate inaccurate information or placeholder content. It should be used to generate books for entertainment purposes only.\n\n\n## Contributing\n\nImprovements through PRs are welcome!\n\n\n## Changelog\n\n### v0.2.0\nMay 29th, 2024:\n\n![Demo of New Statistics](https://github.com/user-attachments/assets/aac277e5-1f91-4de3-9107-2455d4d502cd)\n\n\u003e Added new inference statistics\n\n### v0.3.0\nJune 8th, 2024:\n\n![Image of New PDF Download Option](assets/imgs/release_note_jun_8th.png)\n\u003e Download Books as Styled PDFs\n\n\n### Future Features:\n- Ability to title books which shows on downloads\n- Ability to save books to Google drive\n- Optional seed content field to input existing notes\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FBklieger%2Finfinite-bookshelf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FBklieger%2Finfinite-bookshelf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FBklieger%2Finfinite-bookshelf/lists"}