{"id":37072601,"url":"https://github.com/chigwell/sport-evo-summary","last_synced_at":"2026-01-14T08:31:33.725Z","repository":{"id":329793005,"uuid":"1120685309","full_name":"chigwell/sport-evo-summary","owner":"chigwell","description":"A new package that transforms unstructured text about sports evolution into a structured summary. Users input text describing changes in a sport, and the package returns a standardized breakdown of ke","archived":false,"fork":false,"pushed_at":"2025-12-21T18:24:09.000Z","size":5,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-23T07:32:27.887Z","etag":null,"topics":["clarity","comparison","consistency","culture","enthusiasts","equipment","insights","journalists","key-aspects","performance-metrics","rules","significant-shifts","sports-analysts","sports-evolution","sports-landscape","standardized-breakdown","structured-summary","text-transformation","unstructured-text"],"latest_commit_sha":null,"homepage":"https://pypi.org/project/sport-evo-summary/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chigwell.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-21T18:23:57.000Z","updated_at":"2025-12-21T18:24:25.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/chigwell/sport-evo-summary","commit_stats":null,"previous_names":["chigwell/sport-evo-summary"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/chigwell/sport-evo-summary","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chigwell%2Fsport-evo-summary","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chigwell%2Fsport-evo-summary/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chigwell%2Fsport-evo-summary/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chigwell%2Fsport-evo-summary/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chigwell","download_url":"https://codeload.github.com/chigwell/sport-evo-summary/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chigwell%2Fsport-evo-summary/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28414173,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T08:31:27.429Z","status":"ssl_error","status_checked_at":"2026-01-14T08:31:19.098Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["clarity","comparison","consistency","culture","enthusiasts","equipment","insights","journalists","key-aspects","performance-metrics","rules","significant-shifts","sports-analysts","sports-evolution","sports-landscape","standardized-breakdown","structured-summary","text-transformation","unstructured-text"],"created_at":"2026-01-14T08:31:33.103Z","updated_at":"2026-01-14T08:31:33.716Z","avatar_url":"https://github.com/chigwell.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# sport‑evo‑summary\n[![PyPI version](https://badge.fury.io/py/sport-evo-summary.svg)](https://badge.fury.io/py/sport-evo-summary)\n[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)\n[![Downloads](https://static.pepy.tech/badge/sport-evo-summary)](https://pepy.tech/project/sport-evo-summary)\n[![LinkedIn](https://img.shields.io/badge/LinkedIn-blue)](https://www.linkedin.com/in/eugene-evstafev-716669181/)\n\n\n**sport‑evo‑summary** is a lightweight Python package that transforms unstructured text about sports evolution into a standardized, structured summary.  \nIt pulls out key aspects such as rules, equipment, culture, and performance metrics, enabling sports analysts, journalists, and enthusiasts to quickly identify and compare the most significant shifts in a sport’s landscape.\n\n---\n\n## Installation\n\n```bash\npip install sport_evo_summary\n```\n\n---\n\n## Quick Start\n\n```python\nfrom sport_evo_summary import sport_evo_summary\n\n# Your raw text about a sport’s evolution\nuser_input = \"\"\"\nOver the last decade, soccer has introduced VAR to reduce errors in officiating.\nPlayers now use lighter, aerodynamic boots which enhance speed,\nand the game’s pace has increased by an average of 15% compared to ten years ago.\n\"\"\"\n\n# Call the function (uses the default LLM7 if no `llm` or `api_key` provided)\nsummary = sport_evo_summary(user_input)\n\nprint(summary)\n# Example output: [\"RULES: VAR implementation\", \"EQUIPMENT: Aerodynamic boots\", \"PERFORMANCE: 15% faster pace\"]\n```\n\n---\n\n## Advanced Usage\n\n### Using Your Own LLM\n\n`sport_evo_summary` accepts a `BaseChatModel` instance from LangChain.  \nThis lets you plug in any LLM you prefer, such as OpenAI, Anthropic, or Google.\n\n#### OpenAI\n\n```python\nfrom langchain_openai import ChatOpenAI\nfrom sport_evo_summary import sport_evo_summary\n\nllm = ChatOpenAI()\nresponse = sport_evo_summary(user_input, llm=llm)\n```\n\n#### Anthropic\n\n```python\nfrom langchain_anthropic import ChatAnthropic\nfrom sport_evo_summary import sport_evo_summary\n\nllm = ChatAnthropic()\nresponse = sport_evo_summary(user_input, llm=llm)\n```\n\n#### Google Generative AI\n\n```python\nfrom langchain_google_genai import ChatGoogleGenerativeAI\nfrom sport_evo_summary import sport_evo_summary\n\nllm = ChatGoogleGenerativeAI()\nresponse = sport_evo_summary(user_input, llm=llm)\n```\n\n### Using a Custom LLM7 API Key\n\nBy default, the package uses `ChatLLM7` from the `langchain_llm7` module, with rate limits from the free tier.  \nIf you need higher limits, pass your own key via the `api_key` argument or set the `LLM7_API_KEY` environment variable.\n\n```python\n# via argument\nresponse = sport_evo_summary(user_input, api_key=\"YOUR_API_KEY\")\n\n# or via environment variable\nimport os\nos.environ[\"LLM7_API_KEY\"] = \"YOUR_API_KEY\"\nresponse = sport_evo_summary(user_input)\n```\n\nYou can get a free key at \u003chttps://token.llm7.io/\u003e\n\n---\n\n## Function Signature\n\n```python\nsport_evo_summary(\n    user_input: str,\n    api_key: Optional[str] = None,\n    llm: Optional[BaseChatModel] = None\n) -\u003e List[str]\n```\n\n| Parameter | Type                    | Description                                                     |\n|-----------|-------------------------|-----------------------------------------------------------------|\n| `user_input` | `str`   | Raw text describing changes in a sport.                          |\n| `llm` | `Optional[BaseChatModel]` | Your own LangChain LLM instance. If omitted, the default `ChatLLM7` is used. |\n| `api_key` | `Optional[str]`           | LLM7 API key for authentication. Set it via the environment variable if not provided. |\n\n---\n\n## Internals\n\n* Uses the `llmatch` helper to filter the LLM’s response by a pre‑defined regex pattern (`pattern` from `.prompts`).  \n* The `system_prompt` and `human_prompt` guide the model to produce a concise, structured list.  \n* Returns a `List[str]` of extracted data entries.\n\n---\n\n## Contribution \u0026 Issues\n\nIf you encounter bugs or have feature requests, please open an issue on GitHub:  \n\u003chttps://github.com/chigwell/sport-evo-summary/issues\u003e\n\n---\n\n## Author\n\n- **Eugene Evstafev**  \n- Email: hi@euegne.plus  \n- GitHub: [chigwell](https://github.com/chigwell)\n\n---\n\nHappy analyzing! 🚀","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchigwell%2Fsport-evo-summary","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchigwell%2Fsport-evo-summary","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchigwell%2Fsport-evo-summary/lists"}