jsonformer
jsonformer copied to clipboard
Add support for null and union types
resolves #29, resolves #26
Example:
from jsonformer.format import highlight_values
from jsonformer.main import Jsonformer
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
print("Loading model and tokenizer...")
model_name = "databricks/dolly-v2-3b"
model = AutoModelForCausalLM.from_pretrained(model_name, use_cache=True, device_map="auto", offload_folder='offload', torch_dtype=torch.float32)
tokenizer = AutoTokenizer.from_pretrained(model_name, use_fast=True, use_cache=True)
print("Loaded model and tokenizer")
car = {
"type": "object",
"properties": {
"make": {"type": "string"},
"model": {"type": "string"},
"year": {"type": "number"},
"trim": {"type": ["string", "null"]},
},
}
builder = Jsonformer(
model=model,
tokenizer=tokenizer,
json_schema=car,
debug=True,
prompt='Make an example car json for Dodge Charger ',
)
print("Generating...")
output = builder()
highlight_values(output)
output:
{
make: "Dodge",
model: "Charger",
year: 1991.0,
trim: None
}
This contribution looks great! Is there any news on this? Why wasn't it merged?
Works for me when I merged it in this branch, where I added probabilities too https://github.com/wassname/prob_jsonformer
I'd like if this was merged into main as well.