Skip to main content

Leaderboard Summarizer

PyPI version License: MIT Downloads LinkedIn

leaderboard-summarizer is a lightweight Python package that extracts structured summaries and analyses from free‑form text describing leaderboards, rankings, or score tables.
It leverages LLM pattern matching (via llmatch) to ensure the extracted data matches a predefined regular expression, providing reliable, machine‑readable output without the need to manually parse raw documents.


Features

  • One‑function API – just call leaderboard_summarizer(...).
  • Built‑in LLM7 support – defaults to ChatLLM7 from the langchain_llm7 package.
  • Pluggable LLMs – pass any LangChain‑compatible BaseChatModel (OpenAI, Anthropic, Google, etc.).
  • Robust pattern matching – uses a compiled regex to validate and extract the result.
  • Zero‑configuration fallback – works out‑of‑the‑box with a free LLM7 API key.

Installation

pip install leaderboard_summarizer

Quick Start

from leaderboard_summarizer import leaderboard_summarizer

# Minimal usage – LLM7 will be used automatically (API key read from LLM7_API_KEY)
text = """
Top players this week:
1️⃣ Alice – 1500 pts
2️⃣ Bob – 1450 pts
3️⃣ Carol – 1400 pts
"""

summary = leaderboard_summarizer(user_input=text)
print(summary)

Using a custom LLM

You can provide any LangChain BaseChatModel instance that follows the same interface.

OpenAI

from langchain_openai import ChatOpenAI
from leaderboard_summarizer import leaderboard_summarizer

llm = ChatOpenAI(model="gpt-4o-mini")
summary = leaderboard_summarizer(user_input="...", llm=llm)

Anthropic

from langchain_anthropic import ChatAnthropic
from leaderboard_summarizer import leaderboard_summarizer

llm = ChatAnthropic(model="claude-3-haiku-20240307")
summary = leaderboard_summarizer(user_input="...", llm=llm)

Google Gemini

from langchain_google_genai import ChatGoogleGenerativeAI
from leaderboard_summarizer import leaderboard_summarizer

llm = ChatGoogleGenerativeAI(model="gemini-1.5-flash")
summary = leaderboard_summarizer(user_input="...", llm=llm)

Supplying an explicit LLM7 API key

from leaderboard_summarizer import leaderboard_summarizer

summary = leaderboard_summarizer(
    user_input="...",
    api_key="your_llm7_api_key"
)

API Reference

leaderboard_summarizer(
    user_input: str,
    llm: Optional[BaseChatModel] = None,
    api_key: Optional[str] = None
) -> List[str]
Parameter Type Description
user_input str Free‑form text that contains leaderboard or ranking information.
llm Optional[BaseChatModel] A LangChain‑compatible chat model. If omitted, the function creates a ChatLLM7 instance automatically.
api_key Optional[str] LLM7 API key. If not provided, the function looks for the LLM7_API_KEY environment variable, falling back to a placeholder "None" (which triggers an error from the service).

Return value – a list of strings extracted from the input text that match the internal regex pattern defined in leaderboard_summarizer.prompts.pattern.


How It Works

  1. Prompt Construction – System and human prompts (defined in leaderboard_summarizer.prompts) guide the LLM to produce output that conforms to a strict regex.
  2. LLM Call – llmatch sends the prompts to the chosen LLM.
  3. Pattern Validation – The raw LLM response is checked against the compiled regular expression.
  4. Extraction – If the response matches, the captured groups are returned as a list; otherwise a RuntimeError is raised.

Environment Variables


License

This project is licensed under the MIT License.


Contributing & Support

Feel free to open issues, submit pull requests, or contact the author for feature requests and bug reports.

Metadata

Release files for leaderboard-summarizer 2025.12.21232414

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

Source distribution (sdist)

Source distribution for leaderboard-summarizer 2025.12.21232414
File Size Uploaded
leaderboard_summarizer-2025.12.21232414.tar.gz 4.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for leaderboard-summarizer 2025.12.21232414
File Interpreter ABI Platform
leaderboard_summarizer-2025.12.21232414-py3-none-any.whl Python 3 none any Details

Total release size: 10.4 kB

Release files / leaderboard_summarizer-2025.12.21232414.tar.gz

Download URL leaderboard_summarizer-2025.12.21232414.tar.gz
Size 4.8 kB
Tags Source
SHA-256 checksum
How to use checksums
c3de850a095bc89adc1438c370f448a39efcd3ecc49e8fadadd9d3df754bb3b6
BLAKE2b-256 checksum
How to use checksums
04ea195822f7642f974b7b04d0911f70f2ce89bdafae4fdbc9a92544e22ac34c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.1

Release files / leaderboard_summarizer-2025.12.21232414-py3-none-any.whl

Download URL leaderboard_summarizer-2025.12.21232414-py3-none-any.whl
Size 5.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
eb6029bc0a4e654e9748f31d980619dabd516fe37a99fbf37fc49313c7659497
BLAKE2b-256 checksum
How to use checksums
e8b3b946530dbba7984eb4f7bba44cd266eed821de75fbd20295eea41fae5543
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.21232414 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