Skip to main content

bookmark-analyzer

PyPI version License: MIT Downloads LinkedIn

bookmark-analyzer is a lightweight Python package that turns unstructured bookmark titles or user‑written descriptions into structured tags, categories, or summaries. It leverages a LLM (by default ChatLLM7) to understand the meaning of a bookmark and return machine‑readable metadata, making it far easier to search, filter, and rediscover saved content.

🚀 Installation

pip install bookmark_analyzer

📖 Quick Start

from bookmark_analyzer import bookmark_analyzer

# Simple usage – the default ChatLLM7 will be used
tags = bookmark_analyzer(
    user_input="How to bake a perfect sourdough loaf – an in‑depth guide with photos"
)

print(tags)   # e.g. ['baking', 'sourdough', 'cooking', 'guide']

Using Your Own LLM

If you prefer another LangChain‑compatible model (OpenAI, Anthropic, Google, …) just pass the instance:

OpenAI

from langchain_openai import ChatOpenAI
from bookmark_analyzer import bookmark_analyzer

llm = ChatOpenAI(model="gpt-4o-mini")
tags = bookmark_analyzer(
    user_input="Why the 2024 election matters for climate policy",
    llm=llm,
)
print(tags)

Anthropic

from langchain_anthropic import ChatAnthropic
from bookmark_analyzer import bookmark_analyzer

llm = ChatAnthropic(model="claude-3-haiku-20240307")
tags = bookmark_analyzer(
    user_input="Best practices for micro‑frontends in a large SaaS product",
    llm=llm,
)
print(tags)

Google Gemini

from langchain_google_genai import ChatGoogleGenerativeAI
from bookmark_analyzer import bookmark_analyzer

llm = ChatGoogleGenerativeAI(model="gemini-1.5-flash")
tags = bookmark_analyzer(
    user_input="Top 10 must‑read sci‑fi novels of the 21st century",
    llm=llm,
)
print(tags)

🛠️ Parameters

Parameter Type Description
user_input str The bookmark title or free‑form description you want to analyze.
llm Optional[BaseChatModel] A LangChain chat model. If omitted, the package creates a default ChatLLM7 instance.
api_key Optional[str] API key for ChatLLM7. If not supplied, the function looks for LLM7_API_KEY in the environment; if still missing, it falls back to a placeholder "None" (which will trigger an authentication error from the service).

🔑 API Key for the Default Model

  • ChatLLM7 is the out‑of‑the‑box model used by bookmark-analyzer.
  • Free tier rate limits are sufficient for typical personal use.
  • To obtain a free key, register at https://token.llm7.io/.
  • You can provide the key either:
    • Via the environment variable LLM7_API_KEY, or
    • Directly when calling the function:
tags = bookmark_analyzer(
    user_input="My favorite podcasts about AI",
    api_key="sk-xxxxxx"
)

📚 How It Works

bookmark_analyzer builds a prompt (see the internal prompts module) and sends it to the LLM together with a regular‑expression pattern that describes the expected output format. The response is validated against that pattern and the extracted tags are returned as a list of strings.

🐞 Issues & Contributions

If you encounter any bugs or have feature requests, please open an issue:

https://github.com/chigwell/bookmark-analyzer/issues

Feel free to fork the repository, submit pull requests, or improve documentation.

✍️ Author

Eugene Evstafev
📧 Email: hi@euegne.plus
🐙 GitHub: chigwell


Happy bookmarking! 🎉

Metadata

Release files for bookmark-analyzer 2025.12.22110020

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for bookmark-analyzer 2025.12.22110020
File Size Uploaded
bookmark_analyzer-2025.12.22110020.tar.gz 5.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for bookmark-analyzer 2025.12.22110020
File Interpreter ABI Platform
bookmark_analyzer-2025.12.22110020-py3-none-any.whl Python 3 none any Details

Total release size: 11.2 kB

Release files / bookmark_analyzer-2025.12.22110020.tar.gz

Download URL bookmark_analyzer-2025.12.22110020.tar.gz
Size 5.3 kB
Tags Source
SHA-256 checksum
How to use checksums
c06e4132c3002402834e4a44c79f18b300fc41670f74913bbf767ebe034fe07e
BLAKE2b-256 checksum
How to use checksums
fd168ffe6dcecc7ccf481d00a1a28b4e40e667b48ea39e3c221f7d8d21e3dea1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.1

Release files / bookmark_analyzer-2025.12.22110020-py3-none-any.whl

Download URL bookmark_analyzer-2025.12.22110020-py3-none-any.whl
Size 5.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3a1aa42275c150e727a33e41b08b45122cb17d06827d2d7e5f003691cf11a8b4
BLAKE2b-256 checksum
How to use checksums
0ef57058bb44b3269687a387819afbd64e189c4e0d8d06ef5174e220b2027e6c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.1

Release history Release notifications | RSS feed

This release

2025.12.22110020 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page