conversational-assistant/lib/tools/tools.ts (43 lines of code) (raw):

import { JSONSchema } from 'openai/lib/jsonschema' import { generateUITool } from './generate-ui-tool' import { toolsList } from '../../config/tools-list' const toolsDefinitions = [ generateUITool, ...toolsList.map(tool => { return { name: tool.name, description: tool.description, parameters: { type: 'object', properties: { ...tool.parameters }, required: Object.keys(tool.parameters), additionalProperties: false }, strict: true } }) ] interface Parameter { type: 'object' properties: JSONSchema required: string[] additionalProperties?: boolean } interface Tool { type: 'function' function: { name: string description: string parameters?: Parameter strict?: boolean } } export const tools: Tool[] = toolsDefinitions.map(tool => { return { type: 'function', function: { ...tool, parameters: tool.parameters as Parameter } } })