feat: add mock data and ts

This commit is contained in:
Joel 2025-03-04 16:05:07 +08:00
parent 330dc2fd44
commit a4806be841
3 changed files with 86 additions and 0 deletions

View File

@ -0,0 +1,54 @@
import { type StructuredOutput, Type } from './types'
const data: StructuredOutput = {
schema: {
type: Type.object,
properties: {
string_field: {
type: Type.string,
description: '可为空',
},
obj_field: {
type: Type.object,
properties: {
string_field_1: {
type: Type.string,
description: '描述可为空',
},
number_field_2: {
type: Type.number,
description: '描述可为空',
},
array_field_4: {
type: Type.array,
items: {
type: Type.string,
},
},
boolean_field_5: {
type: Type.boolean,
description: '描述可为空',
},
},
required: [
'string_field_1',
'number_field_2',
'enum_field_3',
'array_field_4',
'boolean_field_5',
],
additionalProperties: false,
},
},
required: [
'string_field_1',
'number_field_2',
'enum_field_3',
'array_field_4',
'boolean_field_5',
],
additionalProperties: false,
},
}
export default data

View File

@ -16,3 +16,35 @@ export type LLMNodeType = CommonNodeType & {
configs?: VisionSetting
}
}
export enum Type {
string = 'string',
number = 'number',
boolean = 'boolean',
object = 'object',
array = 'array',
}
type ArrayItemType = Exclude<Type, Type.array>
export type Field = {
type: Type
properties?: { // Object has properties
[key: string]: Field
}
required?: string[] // Key of required properties in object
description?: string
items?: { // Array has items. Define the item type
type: ArrayItemType
}
additionalProperties?: false // Required in object by api. Just set false
}
export type StructuredOutput = {
schema: {
type: Type.object,
properties: Record<string, Field>
required: string[]
additionalProperties: false
}
}