Add localization for manage search feature
This commit is contained in:
160
src/hooks/chat-helper/index.ts
Normal file
160
src/hooks/chat-helper/index.ts
Normal file
@@ -0,0 +1,160 @@
|
||||
import { saveHistory, saveMessage } from "@/libs/db"
|
||||
import { ChatHistory } from "@/store/option"
|
||||
|
||||
export const saveMessageOnError = async ({
|
||||
e,
|
||||
history,
|
||||
setHistory,
|
||||
image,
|
||||
userMessage,
|
||||
botMessage,
|
||||
historyId,
|
||||
selectedModel,
|
||||
setHistoryId,
|
||||
isRegenerating
|
||||
}: {
|
||||
e: any
|
||||
setHistory: (history: ChatHistory) => void
|
||||
history: ChatHistory
|
||||
userMessage: string
|
||||
image: string
|
||||
botMessage: string
|
||||
historyId: string | null
|
||||
selectedModel: string
|
||||
setHistoryId: (historyId: string) => void
|
||||
isRegenerating: boolean
|
||||
}) => {
|
||||
if (
|
||||
e?.name === "AbortError" ||
|
||||
e?.message === "AbortError" ||
|
||||
e?.name?.includes("AbortError") ||
|
||||
e?.message?.includes("AbortError")
|
||||
) {
|
||||
setHistory([
|
||||
...history,
|
||||
{
|
||||
role: "user",
|
||||
content: userMessage,
|
||||
image
|
||||
},
|
||||
{
|
||||
role: "assistant",
|
||||
content: botMessage
|
||||
}
|
||||
])
|
||||
|
||||
if (historyId) {
|
||||
if (!isRegenerating) {
|
||||
await saveMessage(
|
||||
historyId,
|
||||
selectedModel,
|
||||
"user",
|
||||
userMessage,
|
||||
[image],
|
||||
[],
|
||||
1
|
||||
)
|
||||
}
|
||||
await saveMessage(
|
||||
historyId,
|
||||
selectedModel,
|
||||
"assistant",
|
||||
botMessage,
|
||||
[],
|
||||
[],
|
||||
2
|
||||
)
|
||||
} else {
|
||||
const newHistoryId = await saveHistory(userMessage)
|
||||
if (!isRegenerating) {
|
||||
await saveMessage(
|
||||
newHistoryId.id,
|
||||
selectedModel,
|
||||
"user",
|
||||
userMessage,
|
||||
[image],
|
||||
[],
|
||||
1
|
||||
)
|
||||
}
|
||||
await saveMessage(
|
||||
newHistoryId.id,
|
||||
selectedModel,
|
||||
"assistant",
|
||||
botMessage,
|
||||
[],
|
||||
[],
|
||||
2
|
||||
)
|
||||
setHistoryId(newHistoryId.id)
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
export const saveMessageOnSuccess = async ({
|
||||
historyId,
|
||||
setHistoryId,
|
||||
isRegenerate,
|
||||
selectedModel,
|
||||
message,
|
||||
image,
|
||||
fullText,
|
||||
source
|
||||
}: {
|
||||
historyId: string | null
|
||||
setHistoryId: (historyId: string) => void
|
||||
isRegenerate: boolean
|
||||
selectedModel: string | null
|
||||
message: string
|
||||
image: string
|
||||
fullText: string
|
||||
source: any[]
|
||||
}) => {
|
||||
if (historyId) {
|
||||
if (!isRegenerate) {
|
||||
await saveMessage(
|
||||
historyId,
|
||||
selectedModel,
|
||||
"user",
|
||||
message,
|
||||
[image],
|
||||
[],
|
||||
1
|
||||
)
|
||||
}
|
||||
await saveMessage(
|
||||
historyId,
|
||||
selectedModel!,
|
||||
"assistant",
|
||||
fullText,
|
||||
[],
|
||||
source,
|
||||
2
|
||||
)
|
||||
} else {
|
||||
const newHistoryId = await saveHistory(message)
|
||||
await saveMessage(
|
||||
newHistoryId.id,
|
||||
selectedModel,
|
||||
"user",
|
||||
message,
|
||||
[image],
|
||||
[],
|
||||
1
|
||||
)
|
||||
await saveMessage(
|
||||
newHistoryId.id,
|
||||
selectedModel!,
|
||||
"assistant",
|
||||
fullText,
|
||||
[],
|
||||
source,
|
||||
2
|
||||
)
|
||||
setHistoryId(newHistoryId.id)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user