GlyphDeck
The glyphdeck library is a comprehensive toolkit designed to streamline & simplify various aspects of asynchronous LLM data processing workflows over high-volume, dense semantic data - like customer feedback, reviews and comments.
Common aspects of the LLM data workflow are handled end-to-end including async llm calls, data validation, sanitisation, transformation, caching and step chaining, facilitating the fast development of robust, error free LLM data workflows.
Its also equiped with caching and a configurable logging facility that makes complex asyncronous LLM workflows much easier to configure, understand and debug.
Features
- Asynchronous: Rip through tabular data with asynchronous llm usage
- Auto-scaling: Don't worry about api errors - the
LLMHandlerautomatically scales to your api limits - Rapid config: Simple syntax in a highly abstracted interface makes set up a breeze
- Data chaining: Automatically pass data between steps with the
Cascadeclass - Self validating: The Cascade class automatically maintains dataset integrity
- Pydantic models: Use built-in or custom Pydantic data models for structured llm output
- Type enforcement: Get your structured data in the correct format from the llm every time
- Private data:
Sanitiserclass strips out common private data patterns before making api calls - Automatic caching: Save on API costs and re-use results
- Logging: Built-in logging facility helps to debug your set-ups & peer inside the event loop
Set-up
🔧 Install
pip install glyphdeck
🔑 Set API Key
Set your OPENAI_API_KEY with a
command,
or add it to your environment
variables.
setx OPENAI_API_KEY "your_api_key_here"
📥 Import
import glyphdeck as gd
Usage
🌊 Cascades
The Cascade class is the primary interface for the glyphdeck library.
It handles and processes data in a record-like structure, providing easy
to use syntax for LLM data handling workflows.
It validates and enforces all data movements against a common id, ensuring that each record has a unique, immutable identifier that remains consistent, regardless of other changes.
This all combines to let you spin up LLM workflows in record time.
🏄 Example
import glyphdeck as gd
# Provide a dataframe or a path to a file (csv or xlsx)
data_source = r"tests\testdata.pizzashopreviews.xlsx"
# Intialise cascade instance and identify the unique id (required) and target data
cascade = gd.Cascade(data_source, "Review", "Review Text")
# Optionally remove private information
cascade.sanitiser.run()
# Prepare the llm
cascade.set_llm_handler(
provider="OpenAI",
model="gpt-4o-mini",
system_message=(
"You are an expert pizza shop customer feedback analyst system."
"Analyse the feedback and return results in the correct format."
),
validation_model=gd.validators.SubCatsSentiment,
cache_identifier="pizzshop_sentiment",
)
# Run the llm_handler
cascade.llm_handler.run("llm_category_sentiment")
✨ Output
| Review Id | Review | Review_sub_categories | Review_sentiment_score |
|---|---|---|---|
| 1 | I love this place, fantastic pizza and great service. It's family run and it shows. Out of heaps of good local options it is still the… | Pizza Quality,Service Quality,Family Run,Local Options,Pricing,Parking | 0.95 |
| 2 | Got disappointed. Not good customer service. definitely not great pizza.We went there yesterday to… | Customer Service,Pizza Quality,Dine-In Experience,Promotions,Family Experience | -0.75 |
🚀 That's just the start!
Glyphdeck is highly customisable with useful optional commands in every function, class & method. Use the Cascade and other tools to mix and match, create feedback loops and more - all with blazing asynchronous speed through the OpenAI API.
See the full capabilities in the extensive documentation.
Metadata
Release files for glyphdeck 1.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| glyphdeck-1.1.2.tar.gz | 48.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| glyphdeck-1.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 103.8 kB
Release files / glyphdeck-1.1.2.tar.gz
| Download URL | glyphdeck-1.1.2.tar.gz |
|---|---|
| Size | 48.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b8afdf3a0944f99a287d44a319c70d26048affcc778d2a5d6b7fe2b111062a6b
|
|
BLAKE2b-256 checksum How to use checksums |
4c67e77214d2df70b3d7936ddbbd9553b25e3147051198b35480e66e5619746b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.8.2 CPython/3.12.2 Windows/11
|
Release files / glyphdeck-1.1.2-py3-none-any.whl
| Download URL | glyphdeck-1.1.2-py3-none-any.whl |
|---|---|
| Size | 55.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d116275e12182ad57cd2542db15051abf2d70064a5fc814958bed98d8dd71d69
|
|
BLAKE2b-256 checksum How to use checksums |
9d33e2343c0c9ee37d94bf1d5dd56e08509422cb7ced90991fe6c17b61de99cf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.8.2 CPython/3.12.2 Windows/11
|