mirror of
https://github.com/hpware/news-analyze.git
synced 2025-06-23 15:51:01 +08:00
- Implemented a new chat endpoint that utilizes Groq for chat completions based on news articles. - Added a summarize endpoint that fetches news articles from the database and generates summaries using Groq. - Introduced a new package "@vueuse/core" for improved reactivity. - Created a comprehensive command UI component with various subcomponents for better user interaction. - Developed a scraping module using Scrapy to fetch news articles from Google News. - Added validation and sanitization for slug parameters in the fetch article endpoint.
35 lines
1.0 KiB
TypeScript
35 lines
1.0 KiB
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 body = await readBody(event);
|
|
const fetchNewsArticle = await sql`
|
|
select * from newArticle
|
|
where slug = ${slug}
|
|
`;
|
|
const chatCompletion = await groq.chat.completions.create({
|
|
"messages": [
|
|
{
|
|
"role": "user",
|
|
"content": `${body}`
|
|
},
|
|
{
|
|
"role": "system",
|
|
"content": `You are a news chat, the following content will be used to chat with the user title: ${fetchNewsArticle.title}\n content: ${fetchNewsArticle.content}`
|
|
}
|
|
],
|
|
"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 || '');
|
|
}
|
|
}) |