Shih-hungg's picture
Update article generation and use langfuse
34d6b36
Raw
History Blame Contribute Delete
1.39 kB
import { openai } from '@ai-sdk/openai';
import { generateText } from 'ai';
import { langfuse } from '@/lib/langfuse';
import { AI_CONFIG } from '@/config/ai';
export async function POST(req: Request) {
try {
const {
grade,
unit,
textbookVocab,
additionalVocab,
grammar,
topic,
inputArticle
} = await req.json();
// Get the prompt from Langfuse (FREE - no cost for prompt management)
const langfusePrompt = await langfuse.prompt.get('article/generation');
// Replace placeholders with actual values
const prompt = langfusePrompt.prompt
.replace(/\{\{grade_values\}\}/g, grade.join(', '))
.replace(/\{\{unit_values\}\}/g, unit.join(', '))
.replace(/\{\{textbook_vocab_values\}\}/g, textbookVocab)
.replace(/\{\{additional_vocab_values\}\}/g, additionalVocab)
.replace(/\{\{grammar_values\}\}/g, grammar.join(', '))
.replace(/\{\{topic_values\}\}/g, topic.join(', '));
const result = await generateText({
model: openai(AI_CONFIG.model),
prompt: prompt,
});
return Response.json({
article: result.text,
createdAt: new Date().toISOString(),
});
} catch (error) {
console.error('Error generating article:', error);
return Response.json(
{ error: 'Failed to generate article' },
{ status: 500 }
);
}
}