{"_id":"@arrangedev/jsonformer-ts","_rev":"1-419317eb2489fe9ac84dec582a3c65ca","name":"@arrangedev/jsonformer-ts","dist-tags":{"latest":"1.1.0"},"versions":{"1.0.0":{"name":"@arrangedev/jsonformer-ts","version":"1.0.0","_id":"@arrangedev/jsonformer-ts@1.0.0","maintainers":[{"name":"joeymeere","email":"joey.meere@gmail.com"}],"dist":{"shasum":"a3218f6d5fa9a8e37ff4f56754192170e3d7bdd2","tarball":"https://registry.npmjs.org/@arrangedev/jsonformer-ts/-/jsonformer-ts-1.0.0.tgz","fileCount":28,"integrity":"sha512-JibglJNQRH8Vxt2Ig8cvK5c/7+mM9puGkWJs9U1MGksSHyULbC4bdDKbdIph5gwWL6TnBbe3Pud8xF+gHTmueg==","signatures":[{"sig":"MEUCIQCy5Oax4cQz2Fs5rM9HuIZMLwOGDJdzn7/4BQgGW8ygigIgNRvUufBu4/aauKRAXGvXtNpZKljGwaDE+P4od/BUwYk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":57480},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"bfdfd9391ac7c1b528985b6495c8c3233829c8f2","scripts":{"build":"tsc","example:basic":"tsx examples/basic.ts"},"_npmUser":{"name":"joeymeere","email":"joey.meere@gmail.com"},"_npmVersion":"10.8.2","description":"Structured JSON outputs from LLMs","directories":{},"_nodeVersion":"22.6.0","dependencies":{"chalk":"^4.1.2","@xenova/transformers":"^2.15.0"},"_hasShrinkwrap":false,"devDependencies":{"ora":"^8.1.1","tsx":"^4.19.2","jest":"^29.7.0","ts-jest":"^29.2.5","ts-node":"^10.9.2","typescript":"^5.0.0","@types/jest":"^29.5.14","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/jsonformer-ts_1.0.0_1732987646630_0.921380153951088","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"@arrangedev/jsonformer-ts","version":"1.1.0","description":"Structured JSON outputs from LLMs","homepage":"https://github.com/arrangedev/jsonformer-ts","license":"MIT","type":"module","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc","example:basic":"tsx examples/basic.ts"},"dependencies":{"@xenova/transformers":"^2.15.0","chalk":"^4.1.2"},"devDependencies":{"@types/jest":"^29.5.14","@types/node":"^20.0.0","jest":"^29.7.0","ora":"^8.1.1","ts-jest":"^29.2.5","ts-node":"^10.9.2","tsx":"^4.19.2","typescript":"^5.0.0"},"_id":"@arrangedev/jsonformer-ts@1.1.0","gitHead":"d7181a1a079deaa954cd5787bfc1e37b5a4c429b","_nodeVersion":"22.6.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-Jmg9Q7FOa31b4m0LVLIJI+jY8dV0vqj3pEDMJyFl6r3+YAoHdrN7Ve4Q5YI2NNvr2ZoRXIuCvCyczNxTdypsRw==","shasum":"0e7fbaf5e526bf4cf8d1c673257977ef954a700a","tarball":"https://registry.npmjs.org/@arrangedev/jsonformer-ts/-/jsonformer-ts-1.1.0.tgz","fileCount":29,"unpackedSize":59090,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEn2DdEkxiRVZa43p0kCeFjMn4716O4k1wdvKlTbxPwjAiEA92qIHWLNIFaFbq42vxQ8rPgxCJUDeTBeXrjCwitYJpY="}]},"_npmUser":{"name":"joeymeere","email":"joey.meere@gmail.com"},"directories":{},"maintainers":[{"name":"joeymeere","email":"joey.meere@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/jsonformer-ts_1.1.0_1732988047581_0.17569657716483533"},"_hasShrinkwrap":false}},"time":{"created":"2024-11-30T17:27:26.552Z","modified":"2024-11-30T17:34:07.935Z","1.0.0":"2024-11-30T17:27:26.870Z","1.1.0":"2024-11-30T17:34:07.741Z"},"description":"Structured JSON outputs from LLMs","maintainers":[{"name":"joeymeere","email":"joey.meere@gmail.com"}],"readme":"<h1 align=\"center\">jsonformer-ts</h1>\n<div align=\"center\">\n  <h3>A Typescript port of <a href=\"https://github.com/1rgs/jsonformer\">Jsonformer</a>.</h3>\n</div>\n<div align=\"center\">\n  <a href=\"https://www.npmjs.com/package/@arrangedev/jsonformer-ts\" target=\"_blank\">\n    <img src=\"https://img.shields.io/npm/v/@arrangedev/jsonformer-ts\">\n  </a>\n  <img src=\"https://badgen.net/badge/contributions/open/orange\">\n</div>\n\n## Overview\nThis is a port of the Jsonformer library originally written in Python. This repo aims to replicate it as close as possible, allowing Typescript developers to take advantage of high-quality structured JSON outputs from language models. \n\nLike the original, the following schema types are supported:\n- number\n- string\n- boolean\n- array\n- object\n\n## Installation\nNPM:\n```bash\nnpm i @arrangedev/jsonformer-ts\n```\n\nyarn:\n```bash\nyarn add @arrangedev/jsonformer-ts\n```\n\n## Example\nHere's a basic example of `jsonformer-ts` in action:\n```Typescript\nasync function main() {\n  console.log(\"Loading model and tokenizer...\");\n  const model = await LlamaForCausalLM.from_pretrained(\n    \"Xenova/TinyLlama-1.1B-Chat-v1.0\",\n    { model_file_name: \"model\" },\n  );\n  const tokenizer = await LlamaTokenizer.from_pretrained(\n    \"Xenova/TinyLlama-1.1B-Chat-v1.0\",\n  );\n\n  const schema = {\n    type: \"object\",\n    properties: {\n      name: { type: \"string\" },\n      age: { type: \"number\" },\n      is_student: { type: \"boolean\" },\n      courses: {\n        type: \"array\",\n        items: { type: \"string\" },\n      },\n    },\n  };\n\n  const prompt =\n    \"Generate a person's information based on the following schema:\";\n\n  console.log(\"Creating Jsonformer instance...\");\n  const jsonformer = new Jsonformer(model, tokenizer, schema, prompt, {\n    debug: true,\n  });\n\n  console.log(\"Generating data...\");\n  const result = await jsonformer.generate();\n\n  console.log(\"\\nGenerated result:\");\n  console.log(JSON.stringify(result, null, 2));\n}\n```\n\nRun the example with:\n```bash\nyarn example:basic\n```\n\n## License\nThis project is MIT licensed, like the original. See [here](https://github.com/1rgs/jsonformer?tab=MIT-1-ov-file#readme) for more information.\n","readmeFilename":"README.md","homepage":"https://github.com/arrangedev/jsonformer-ts","license":"MIT"}