diff --git a/server/api/ai/chat/[slug].ts b/server/api/ai/chat/[slug].ts index 4b18b38..1b68fa6 100644 --- a/server/api/ai/chat/[slug].ts +++ b/server/api/ai/chat/[slug].ts @@ -4,9 +4,9 @@ import sql from "~/server/components/postgres"; const groq = new Groq(); export default defineEventHandler(async (event) => { - const host = await getRequestHost(event); - const protocol = await getRequestProtocol(event); - const hears = await getRequestHeaders(event); + const host = getRequestHost(event); + const protocol = getRequestProtocol(event); + const hears = getRequestHeaders(event); const slug = getRouterParam(event, "slug"); const body = await readBody(event); if (!slug) { @@ -47,8 +47,8 @@ export default defineEventHandler(async (event) => { content: body.message, }, ], - model: "llama-3.1-8b-instant", - temperature: 1, + model: "gemma2-9b-it", + temperature: 0.71, max_completion_tokens: 1024, top_p: 1, stream: true, @@ -56,7 +56,6 @@ export default defineEventHandler(async (event) => { }); /* - // Save user message await sql` INSERT INTO chat_history (uuid, role, content) VALUES (${slug}, 'user', ${body.message}) @@ -78,7 +77,6 @@ export default defineEventHandler(async (event) => { } /* - // Save complete assistant response if (assistantResponse) { await sql` INSERT INTO chat_history (uuid, role, content) diff --git a/server/api/ai/summerize/[slug].ts b/server/api/ai/summerize/[slug].ts index 2c3e025..0ec15f3 100644 --- a/server/api/ai/summerize/[slug].ts +++ b/server/api/ai/summerize/[slug].ts @@ -4,23 +4,24 @@ import sql from "~/server/components/postgres"; const groq = new Groq(); export default defineEventHandler(async (event) => { + const host = getRequestHost(event); + const protocol = getRequestProtocol(event); const slug = getRouterParam(event, "slug"); - const fetchNewsArticle = await sql` - select * from newArticle - where slug = ${slug} - `; + const buildURL = protocol + "://" + host + "/api/news/get/lt/" + slug; + const data = await fetch(buildURL); + const fetchNewsArticle = await data.json(); const chatCompletion = await groq.chat.completions.create({ messages: [ { role: "user", - content: `${fetchNewsArticle.title}\n${fetchNewsArticle.content}`, + content: `${fetchNewsArticle.title}\n${fetchNewsArticle.paragraph}`, }, { 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", + model: "gemma2-9b-it", temperature: 1, max_completion_tokens: 1024, top_p: 1, @@ -28,7 +29,22 @@ export default defineEventHandler(async (event) => { stop: null, }); - for await (const chunk of chatCompletion) { - process.stdout.write(chunk.choices[0]?.delta?.content || ""); - } + const stream = new ReadableStream({ + async start(controller) { + try { + for await (const chunk of chatCompletion) { + const content = chunk.choices[0]?.delta?.content || ""; + if (content) { + controller.enqueue(new TextEncoder().encode(content)); + } + } + + controller.close(); + } catch (error) { + controller.error(error); + } + }, + }); + return sendStream(event, stream); + });