llm_jsonl_converter
This Python package provides functionality to convert unstructured text into JSONL (JSON Lines) format using a Large Language Model (LLM). It intelligently chunks text, prompts the LLM to generate JSON objects conforming to specified formats, and validates the output to produce a clean JSONL string.
Features
- LLM-Powered Conversion: Leverages LLMs to extract structured data from free-form text.
- JSONL Output: Generates data in the widely-used JSON Lines format.
- Configurable Formats: Supports defining and using custom JSONL schemas.
- Chunking Strategy: Divides large texts into manageable chunks for LLM processing.
- Validation: Ensures generated JSON lines conform to a specified regex pattern.
- Progress Indication: Uses
tqdmfor a visual progress bar during conversion.
Installation
To install llm_jsonl_converter, use pip:
pip install llm_jsonl_converter
Usage
The primary function is generate_jsonl_from_text. You need to provide the text to convert and the name of the target JSONL format.
from llm_jsonl_converter import generate_jsonl_from_text
from langchain_llm7 import ChatLLM7 # Or any other compatible BaseChatModel
# Initialize your LLM (replace with your actual LLM setup if needed)
# If llm is None, a default ChatLLM7 instance will be used.
llm_instance = ChatLLM7(
model="gemini-2.5-flash-lite",
base_url="https://api.llm7.io/v1"
)
# Example unstructured text
sample_text = """
John Doe is a software engineer based in New York. He works at Tech Innovations Inc.
His email is john.doe@example.com and his phone number is 123-456-7890.
He has over 5 years of experience in Python and JavaScript.
Jane Smith is a data scientist from San Francisco. She can be reached at jane.smith@company.org.
Her expertise lies in machine learning and statistical analysis.
"""
# Define the target format name (ensure this format is available via get_llm_jsonl_formats())
target_format = "OpenAI Prompt–Completion (SFT)"
try:
jsonl_output = generate_jsonl_from_text(
text=sample_text,
target_format_name=target_format,
llm=llm_instance,
chunk_word_size=150, # Adjust chunk size as needed
verbose=True # Set to True for detailed logs
)
print(jsonl_output)
except ValueError as e:
print(f"Error: {e}")
except Exception as e:
print(f"An unexpected error occurred: {e}")
Contributing
Contributions, issues, and feature requests are welcome! Feel free to check the issues page.
License
llm_jsonl_converter is licensed under the MIT License.
Author
Eugene Evstafev hi@eugene.plus Repository: https://github.com/chigwell/llm_jsonl_converter
Metadata
Release files for llm-jsonl-converter 2025.9.111721
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| llm_jsonl_converter-2025.9.111721.tar.gz | 6.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| llm_jsonl_converter-2025.9.111721-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 12.9 kB
Release files / llm_jsonl_converter-2025.9.111721.tar.gz
| Download URL | llm_jsonl_converter-2025.9.111721.tar.gz |
|---|---|
| Size | 6.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6f7b24ceb9ae8732c9cbbca40beb3bd96ed80e0b567a61bae072464636a1a735
|
|
BLAKE2b-256 checksum How to use checksums |
f5a09e917be76a652e4c1dc44485f86df3d7b0292f0b6a4694872f54446f66e4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.11
|
Release files / llm_jsonl_converter-2025.9.111721-py3-none-any.whl
| Download URL | llm_jsonl_converter-2025.9.111721-py3-none-any.whl |
|---|---|
| Size | 6.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
689fd87e4b5d762c3a987a41c02cd045f0cdccdaf1bbb90bda0247b65342777f
|
|
BLAKE2b-256 checksum How to use checksums |
24bcf6224d88a7ff26e3511f257a12c49ee0cd384932cb183cb05fd48a330b1a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.11
|