import formatChatHistoryAsString from '@/lib/utils/formatHistory'; import { suggestionGeneratorPrompt } from '@/lib/prompts/suggestions'; import { ChatTurnMessage } from '@/lib/types'; import z from 'zod'; import BaseLLM from '@/lib/models/base/llm'; import { i } from 'mathjs'; type SuggestionGeneratorInput = { chatHistory: ChatTurnMessage[]; }; const schema = z.object({ suggestions: z .array(z.string()) .describe('List of suggested questions or prompts'), }); const generateSuggestions = async ( input: SuggestionGeneratorInput, llm: BaseLLM, ) => { const res = await llm.generateObject>({ messages: [ { role: 'system', content: suggestionGeneratorPrompt, }, { role: 'user', content: `\n${formatChatHistoryAsString(input.chatHistory)}\n`, }, ], schema, }); return res.suggestions; }; export default generateSuggestions;