bookmuse
A personalized reading list generator that creates tailored book recommendations based on user preferences and reading history.
Overview
bookmuse is a Python package designed to help users discover new books that match their interests. Users provide a text input describing their favorite genres, interests, or books they've enjoyed, and bookmuse produces a structured list of recommended books, including titles, authors, and brief descriptions. This tool streamlines the process of finding your next great read by delivering curated suggestions in a clear and consistent format.
Installation
Install the package via pip:
pip install bookmuse
Usage
from bookmuse import bookmuse
# Example user input describing preferences
user_input = "I'm interested in science fiction and fantasy, especially space operas and epic adventures."
# Using the default LLM (ChatLLM7)
recommendations = bookmuse(user_input)
# Using a custom LLM instance (e.g., OpenAI)
from langchain_openai import ChatOpenAI
llm = ChatOpenAI()
recommendations = bookmuse(user_input, llm=llm)
Parameters
- user_input (str): The descriptive text of user preferences.
- llm (BaseChatModel, optional): An instance of a language model. Defaults to ChatLLM7 from
langchain_llm7. - api_key (str, optional): API key for the language model. If not provided, it attempts to use the
LLM7_API_KEYenvironment variable or defaults to "None".
Details
The package uses ChatLLM7 from the langchain_llm7 library by default. Developers can pass their own language model instances compatible with the expected interface, such as:
from langchain_openai import ChatOpenAI
from bookmuse import bookmuse
llm = ChatOpenAI()
response = bookmuse(user_input, llm=llm)
or
from langchain_anthropic import ChatAnthropic
from bookmuse import bookmuse
llm = ChatAnthropic()
response = bookmuse(user_input, llm=llm)
or
from langchain_google_genai import ChatGoogleGenerativeAI
from bookmuse import bookmuse
llm = ChatGoogleGenerativeAI()
response = bookmuse(user_input, llm=llm)
Rate Limits
For most use cases, the default free-tier rate limits of LLM7 are sufficient. For higher rate limits, set your API key via the environment variable LLM7_API_KEY or pass it directly:
recommendations = bookmuse(user_input, api_key="your_api_key")
You can register for a free API key at https://token.llm7.io/.
Support & Issues
If you encounter any issues or have questions, please open an issue on the GitHub repository:
https://github.com/chigwell/bookmuse
Author
Eugene Evstafev
Email: hi@eugene.plus
GitHub: chigwell
Metadata
Release files for bookmuse 2025.12.22083751
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| bookmuse-2025.12.22083751.tar.gz | 5.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| bookmuse-2025.12.22083751-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 10.9 kB
Release files / bookmuse-2025.12.22083751.tar.gz
| Download URL | bookmuse-2025.12.22083751.tar.gz |
|---|---|
| Size | 5.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b7cfff9a6f67a8564410e87e9ec1bdeed88d155f83caf35580acb1edaf000dde
|
|
BLAKE2b-256 checksum How to use checksums |
837bc3e30227068f38599d9786b6c7cd782b60f56a72167b8d51de2ffc021e05
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.1
|
Release files / bookmuse-2025.12.22083751-py3-none-any.whl
| Download URL | bookmuse-2025.12.22083751-py3-none-any.whl |
|---|---|
| Size | 5.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ce94b3546ef4d8e618427a357d1f0c6a458126d44cd0ae9d47f2674c8bf96e49
|
|
BLAKE2b-256 checksum How to use checksums |
b5e35c1eb52e914ab0b78fa408031ed541af73f594d1bf682fe850859972bcdd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.1
|