@creativebuilds/json-generator
Version:
Generate structured JSON objects from text input using OpenRouter
116 lines (81 loc) • 2.38 kB
Markdown
A robust Node.js module for generating structured JSON objects from text input using AI via OpenRouter.
- Generate JSON objects from natural language text
- Schema validation support
- Batch processing
- Customizable AI model selection
- TypeScript-friendly JSDoc annotations
```bash
npm install @creativebuilds/json-generator
```
```javascript
import { JsonGenerator } from '@creativebuilds/json-generator';
const generator = new JsonGenerator({
apiKey: 'your-openrouter-api-key'
});
const result = await generator.generate({
prompt: 'Create a user profile for John Doe'
});
```
```javascript
const schema = {
type: 'object',
properties: {
name: { type: 'string' },
age: { type: 'number' },
skills: { type: 'array', items: { type: 'string' } }
},
required: ['name', 'age', 'skills']
};
const result = await generator.generate({
prompt: 'Create a profile for a web developer',
schema
});
```
```javascript
const prompts = [
{ prompt: 'Create a recipe for chocolate cake' },
{ prompt: 'Create a movie review for The Matrix' }
];
const results = await generator.generateBatch(prompts);
```
The `JsonGenerator` constructor accepts the following options:
```javascript
const generator = new JsonGenerator({
apiKey: 'your-openrouter-api-key', // Required
model: 'mistralai/mistral-nemo', // Optional, defaults to mistral-nemo
referer: 'http://your-site.com', // Optional, for OpenRouter analytics
appName: 'Your App Name' // Optional, for OpenRouter analytics
});
```
Generate a single JSON object from text.
- `options.prompt` (string) - The text prompt to generate JSON from
- `options.schema` (object, optional) - JSON Schema for validation
- `options.systemPrompt` (string, optional) - Override the default system prompt
Returns: Promise<object>
Generate multiple JSON objects in parallel.
- `prompts` (array) - Array of generation options
- Returns: Promise<object[]>
```bash
npm install
npm test
npm run build
```
MIT
Contributions are welcome! Please feel free to submit a Pull Request.