Skip to main content

LLM please cast to JSON

Project description

jsonllm


image

Installation


From PyPI

pip install python-jsonllm

From source

git clone https://github.com/ivanbelenky/jsonllm.git
cd jsonllm
python3 -m pip install -e .

Documentation


Schema type

class SchemaKey(TypedDict):
    name: Optional[str]
    type: Optional[type]
    default: JSONCompatible
    required: Optional[bool]
    instructions: Optional[str]
    valid: Optional[Caster] 
    caster: Optional[Validator]

class Schema(TypedDict):
    __key__: Union[SchemaKey, 'Schema'] # nested schemas

Example

import os

import jsonllm

#assert os.environ.get('ANTHROPIC_API_KEY') != None
#assert os.environ.get('OPENAI_API_KEY') != None

person = {
    'first_name': {
        'type': str,
        'required': True,
        'instructions': 'Find the first name, if not found input John'        
    },
    'last_name': {
        'type': str,
        'required': True,
        'instructions': 'Find the last name, if not found input Doe'
    },
    'date_of_birth': {
        'name': 'dob',
        'type': str,
        'instructions': 'Find the date of birth and cast it to isoformat'
    }
}

message = 'My name is John Connor, I think I was born 0 of Unix time.'
response = jsonllm.loads(message, person, model='claude-3-opus-20240229')
print(response.response)

{
    'first_name': 'John',
    'last_name': 'Connor',
    'dob': '1970-01-01'
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

python-jsonllm-0.0.3.1.tar.gz (7.6 kB view details)

Uploaded Source

Built Distribution

python_jsonllm-0.0.3.1-py3-none-any.whl (8.5 kB view details)

Uploaded Python 3

File details

Details for the file python-jsonllm-0.0.3.1.tar.gz.

File metadata

  • Download URL: python-jsonllm-0.0.3.1.tar.gz
  • Upload date:
  • Size: 7.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.8.13

File hashes

Hashes for python-jsonllm-0.0.3.1.tar.gz
Algorithm Hash digest
SHA256 8fa2c43eb034cd3e217c32432dfdcbfb1f6c88a456645e19039ac976578cf25f
MD5 a06b1116e70e30f8bad7bf7929fdaff0
BLAKE2b-256 7e3370c58521afe4715cc8ea446e70f2a39f15b29e493170e14ccb8704a08398

See more details on using hashes here.

File details

Details for the file python_jsonllm-0.0.3.1-py3-none-any.whl.

File metadata

File hashes

Hashes for python_jsonllm-0.0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 93eea7e1ba18905d3e889dd1f85cd23a6ce146ab1ca6a387e2dc98ba31bde098
MD5 b24ab38bc4d07171f83a5ca8675a954e
BLAKE2b-256 3417a388fecc8c77aabfc3c67b78a18677d712218d650c3631cd65602b265d7a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page