chore: update create usage data

This commit is contained in:
steven
2023-04-24 18:57:50 +08:00
parent 75b0000556
commit f0965e6b73
2 changed files with 33 additions and 16 deletions

View File

@ -1,5 +1,5 @@
import axios from "axios"; import axios from "axios";
import { head, last } from "lodash-es"; import { first, head, last } from "lodash-es";
import { useEffect, useRef, useState } from "react"; import { useEffect, useRef, useState } from "react";
import { toast } from "react-hot-toast"; import { toast } from "react-hot-toast";
import { import {
@ -162,7 +162,7 @@ const ConversationView = () => {
} }
usageMessageList.unshift({ usageMessageList.unshift({
id: generateUUID(), id: generateUUID(),
createdAt: Date.now(), createdAt: first(usageMessageList)?.createdAt || Date.now(),
creatorRole: CreatorRole.System, creatorRole: CreatorRole.System,
content: prompt, content: prompt,
} as Message); } as Message);

View File

@ -12,23 +12,40 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
const conversation = req.body.conversation as Conversation; const conversation = req.body.conversation as Conversation;
const messages = req.body.messages as Message[]; const messages = req.body.messages as Message[];
try { try {
await prisma.chat.create({ const chat = await prisma.chat.findUnique({
data: { where: {
id: conversation.id, id: conversation.id,
createdAt: new Date(conversation.createdAt),
ctx: {},
messages: {
create: messages.map((message) => ({
id: message.id,
createdAt: new Date(message.createdAt),
role: message.creatorRole,
content: message.content,
upvote: true,
downvote: false,
})),
},
}, },
}); });
if (chat) {
await prisma.message.createMany({
data: messages.map((message) => ({
chatId: chat.id,
createdAt: new Date(message.createdAt),
role: message.creatorRole,
content: message.content,
upvote: true,
downvote: false,
})),
});
} else {
await prisma.chat.create({
data: {
id: conversation.id,
createdAt: new Date(conversation.createdAt),
ctx: {},
messages: {
create: messages.map((message) => ({
createdAt: new Date(message.createdAt),
role: message.creatorRole,
content: message.content,
upvote: true,
downvote: false,
})),
},
},
});
}
} catch (err) { } catch (err) {
console.error(err); console.error(err);
} }