Files
gooseek/apps/frontend/src/lib/agents/suggestions/index.ts
home 3fa83bc605 feat: статья из Discover, локализация, подсказки
- Статья: заголовок + ссылка (truncate), title в URL, articleTitle в Message
- Локализация Sources, Research Progress, Answer, шагов, formingAnswer
- Подсказки: промпт без жёсткого примера, разнообразие, label 'Что ещё спросить'
- embeddedTranslations, countryToLocale, locale инструкция для LLM

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-21 00:37:06 +03:00

40 lines
979 B
TypeScript

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