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

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: python-jsonllm-0.0.3.tar.gz
  • Upload date:
  • Size: 7.8 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.tar.gz
Algorithm Hash digest
SHA256 2392ba3c92605344907920a65d0f4b3520282d44380ea1fc82b59b73d1566588
MD5 bb944bb34aead4100bd92540b5bfd44f
BLAKE2b-256 556fc873067775dbf37c27557e1eba84ced19fa2db27308523ec0284c7f93278

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for python_jsonllm-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 c3d6cf4ff4bace2464570a807444a973b52b84d7f7977fd478339b80cf26ebc1
MD5 1fea96882e317d91c65417b7eb2adbee
BLAKE2b-256 ef08da263a21e2b8f5f4d28268a2858f2fee62f43b2c11724ccef11f7fb0df49

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