mirror of
https://github.com/marcogll/TaxHacker_s23.git
synced 2026-01-13 21:35:19 +00:00
20 lines
572 B
TypeScript
20 lines
572 B
TypeScript
import { Field } from "@/prisma/client"
|
|
|
|
export const fieldsToJsonSchema = (fields: Field[]) => {
|
|
const fieldsWithPrompt = fields.filter((field) => field.llm_prompt)
|
|
const schema = {
|
|
type: "object",
|
|
properties: fieldsWithPrompt.reduce(
|
|
(acc, field) => {
|
|
acc[field.code] = { type: field.type, description: field.llm_prompt || "" }
|
|
return acc
|
|
},
|
|
{} as Record<string, { type: string; description: string }>
|
|
),
|
|
required: fieldsWithPrompt.map((field) => field.code),
|
|
additionalProperties: false,
|
|
}
|
|
|
|
return schema
|
|
}
|