thematic-structurizer
Thematic Structurizer is a Python package designed to process user-provided text related to historical or thematic content—such as summaries, descriptions, or analyses of topics like persuasion techniques from antiquity—and extract structured, pattern-validated data. It leverages large language models (LLMs) to generate responses in a predefined format, ensuring consistency and reliability through regex validation and retry mechanisms.
Installation
Install the package via pip:
pip install thematic_structurizer
Usage
Here's an example of how to use the package:
from thematic_structurizer import thematic_structurizer
# Example user input
user_input = "Describe the persuasion techniques used by Cicero in ancient Rome."
# Calling the function with default LLM (ChatLLM7)
response = thematic_structurizer(user_input)
print(response)
Custom LLM Support
The package uses ChatLLM7 from langchain_llm7 by default. You can provide your own language model instance to customize the behavior. Supported models include those from OpenAI, Anthropic, Google Generative AI, etc.
Example with a custom LLM:
from langchain_openai import ChatOpenAI
from thematic_structurizer import thematic_structurizer
llm = ChatOpenAI()
response = thematic_structurizer(user_input, llm=llm)
Alternatively, using other providers:
from langchain_anthropic import ChatAnthropic
from thematic_structurizer import thematic_structurizer
llm = ChatAnthropic()
response = thematic_structurizer(user_input, llm=llm)
API Key Management
For the default ChatLLM7, you can set your API key via environment variable:
export LLM7_API_KEY='your_api_key'
or pass it directly:
response = thematic_structurizer(user_input, api_key='your_api_key')
To obtain a free API key, register at https://token.llm7.io/.
Function Details
def thematic_structurizer(
user_input: str,
api_key: Optional[str] = None,
llm: Optional[BaseChatModel] = None
) -> List[str]:
user_input: The text to process, such as a description, summary, or analysis.llm: An optional language model instance; defaults toChatLLM7.api_key: Optional string; API key forChatLLM7.
This function processes the input, invokes the LLM, and returns a list of extracted data that match the predefined pattern validation.
License
This project is maintained by Eugene Evstafev. For issues or contributions, please visit https://github.com/chigwell/thematic-structurizer.
Contact
- Email: hi@eugene.plus
- GitHub: chigwell
Metadata
Release files for thematic-structurizer 2025.12.21114407
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| thematic_structurizer-2025.12.21114407.tar.gz | 4.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| thematic_structurizer-2025.12.21114407-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 9.8 kB
Release files / thematic_structurizer-2025.12.21114407.tar.gz
| Download URL | thematic_structurizer-2025.12.21114407.tar.gz |
|---|---|
| Size | 4.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ba38a8c929bac1e3fb4633353c5ccc66aa4e29ee5fe1ac0bb17c200835f84b72
|
|
BLAKE2b-256 checksum How to use checksums |
2a784db15a792f43af0b9c0707d3aaa9700cdcf67f013f9f268b928614f34c55
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.11
|
Release files / thematic_structurizer-2025.12.21114407-py3-none-any.whl
| Download URL | thematic_structurizer-2025.12.21114407-py3-none-any.whl |
|---|---|
| Size | 5.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0fde17f4476e136c2967692ca7189717223a426d42478bed7e4d5e320935067b
|
|
BLAKE2b-256 checksum How to use checksums |
421a1f23230dc2279b04dd91651fb6305e3d5f7718e15f0d445215b18551e0a3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.11
|