Skip to main content

LLM please cast to JSON

Project description

jsonllm << Marvin


image

Installation


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
import openai

# vertexai.init(project_id='jsonllm-rocks?', location='us-central1') | 
# openai.api_key = 'sk-...'
os.environ['ANTHROPIC_API_KEY'] = '...' # or load env

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.1.tar.gz (7.7 kB view details)

Uploaded Source

Built Distribution

python_jsonllm-0.0.1-py3-none-any.whl (8.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: python-jsonllm-0.0.1.tar.gz
  • Upload date:
  • Size: 7.7 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.1.tar.gz
Algorithm Hash digest
SHA256 aa50e670afa5d7f26060c32f13c76709bb3712a3317739279ffd367794f1743a
MD5 2a273006246454b91e285466b6e07a57
BLAKE2b-256 010de9c5d9f96499b5088169653c2854314df8780e9fbe50c2966372c487736a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for python_jsonllm-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 fe3d3ea6bf29b26cc8c35a40bf30e727f73fe4fb393efda4ea3fbc9fdcb170c0
MD5 5ea61ed3a558d05d9560a562a03ae39c
BLAKE2b-256 0a890811c2d21a0656f25529816619e2b2fc85cad12b6e8d3a5d5136466bba0b

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