news-analyze/server/api/ai/summerize/[slug].ts
2025-05-10 22:05:10 +08:00

34 lines
932 B
TypeScript

import { Groq } from "groq-sdk";
import sql from "~/server/components/postgres";
const groq = new Groq();
export default defineEventHandler(async (event) => {
const slug = getRouterParam(event, "slug");
const fetchNewsArticle = await sql`
select * from newArticle
where slug = ${slug}
`;
const chatCompletion = await groq.chat.completions.create({
messages: [
{
role: "user",
content: `${fetchNewsArticle.title}\n${fetchNewsArticle.content}`,
},
{
role: "system",
content: `You are a news summarizer. You will be given a news article and you will summarize it into a short paragraph.`,
},
],
model: "llama3-70b-8192",
temperature: 1,
max_completion_tokens: 1024,
top_p: 1,
stream: true,
stop: null,
});
for await (const chunk of chatCompletion) {
process.stdout.write(chunk.choices[0]?.delta?.content || "");
}
});