refactor(iod): 重构数联网相关组件和逻辑
-优化了 Data、Scene 和 Team组件的逻辑,使用 currentIodMessage 替代复杂的条件判断- 改进了 IodRelevant 组件的动画和数据处理方式 - 调整了 Message 组件以支持数联网搜索功能 - 重构了 PlaygroundIodProvider,简化了上下文类型和数据处理 - 更新了数据库相关操作,使用新的 HistoryMessage 类型 - 新增了 IodDb 类来管理数联网连接配置
This commit is contained in:
@@ -7,7 +7,7 @@ import {
|
||||
promptForRag,
|
||||
systemPromptForNonRagOption
|
||||
} from "~/services/ollama"
|
||||
import type { ChatHistory, Message, MeteringEntry } from "~/store/option"
|
||||
import type { ChatHistory, MeteringEntry } from "~/store/option"
|
||||
import { useStoreMessageOption } from "~/store/option"
|
||||
import { SystemMessage } from "@langchain/core/messages"
|
||||
import {
|
||||
@@ -47,6 +47,7 @@ import {
|
||||
removeReasoning
|
||||
} from "@/libs/reasoning"
|
||||
import { getDefaultIodSources } from "@/libs/iod.ts"
|
||||
import type { Message } from "@/types/message.ts"
|
||||
|
||||
export const useMessageOption = () => {
|
||||
const {
|
||||
@@ -214,36 +215,39 @@ export const useMessageOption = () => {
|
||||
data: meter
|
||||
})
|
||||
|
||||
let defaultMessage: Message = {
|
||||
isBot: true,
|
||||
name: selectedModel,
|
||||
message,
|
||||
iodSearch,
|
||||
webSearch,
|
||||
webSources: [],
|
||||
iodSources: getDefaultIodSources(),
|
||||
images: [image]
|
||||
}
|
||||
|
||||
if (!isRegenerate) {
|
||||
newMessage = [
|
||||
...messages,
|
||||
{
|
||||
...JSON.parse(JSON.stringify(defaultMessage)),
|
||||
id: generateID(),
|
||||
isBot: false,
|
||||
name: "You",
|
||||
message,
|
||||
webSources: [],
|
||||
iodSources: getDefaultIodSources(),
|
||||
images: [image]
|
||||
},
|
||||
{
|
||||
isBot: true,
|
||||
name: selectedModel,
|
||||
...JSON.parse(JSON.stringify(defaultMessage)),
|
||||
id: generateMessageId,
|
||||
message: "",
|
||||
webSources: [],
|
||||
iodSources: getDefaultIodSources(),
|
||||
id: generateMessageId
|
||||
}
|
||||
]
|
||||
} else {
|
||||
newMessage = [
|
||||
...messages,
|
||||
{
|
||||
isBot: true,
|
||||
name: selectedModel,
|
||||
message: "▋",
|
||||
webSources: [],
|
||||
iodSources: getDefaultIodSources(),
|
||||
id: generateMessageId
|
||||
...JSON.parse(JSON.stringify(defaultMessage)),
|
||||
id: generateMessageId,
|
||||
message: " ",
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -525,6 +529,8 @@ export const useMessageOption = () => {
|
||||
message,
|
||||
image,
|
||||
fullText,
|
||||
iodSearch,
|
||||
webSearch,
|
||||
webSources,
|
||||
iodSources,
|
||||
generationInfo,
|
||||
@@ -566,7 +572,9 @@ export const useMessageOption = () => {
|
||||
setHistory,
|
||||
setHistoryId,
|
||||
userMessage: message,
|
||||
isRegenerating: isRegenerate
|
||||
isRegenerating: isRegenerate,
|
||||
iodSearch,
|
||||
webSearch,
|
||||
})
|
||||
|
||||
if (!errorSave) {
|
||||
@@ -672,6 +680,7 @@ export const useMessageOption = () => {
|
||||
|
||||
let newMessage: Message[] = []
|
||||
let generateMessageId = generateID()
|
||||
setCurrentMessageId(generateMessageId)
|
||||
const meter: MeteringEntry = {
|
||||
id: generateMessageId,
|
||||
queryContent: message,
|
||||
@@ -682,7 +691,6 @@ export const useMessageOption = () => {
|
||||
loading: true,
|
||||
data: meter
|
||||
})
|
||||
|
||||
if (!isRegenerate) {
|
||||
newMessage = [
|
||||
...messages,
|
||||
@@ -690,6 +698,7 @@ export const useMessageOption = () => {
|
||||
isBot: false,
|
||||
name: "You",
|
||||
message,
|
||||
id: generateID(),
|
||||
webSources: [],
|
||||
iodSources: getDefaultIodSources(),
|
||||
images: [image]
|
||||
@@ -889,7 +898,6 @@ export const useMessageOption = () => {
|
||||
content: fullText
|
||||
}
|
||||
])
|
||||
|
||||
await saveMessageOnSuccess({
|
||||
historyId,
|
||||
setHistoryId,
|
||||
@@ -898,6 +906,8 @@ export const useMessageOption = () => {
|
||||
message,
|
||||
image,
|
||||
fullText,
|
||||
iodSearch,
|
||||
webSearch,
|
||||
source: [],
|
||||
generationInfo,
|
||||
prompt_content: promptContent,
|
||||
@@ -914,8 +924,8 @@ export const useMessageOption = () => {
|
||||
const { cot, content } = responseResolver(fullText)
|
||||
const currentMeteringEntry = {
|
||||
...meter,
|
||||
modelInputTokenCount: prompt.length,
|
||||
modelOutputTokenCount: fullText.length,
|
||||
modelInputTokenCount: prompt? prompt.length : 0,
|
||||
modelOutputTokenCount: fullText? fullText.length : 0,
|
||||
model: ollama.modelName ?? ollama.model,
|
||||
relatedDataCount: 0,
|
||||
timeTaken: new Date().getTime() - chatStartTime.getTime(),
|
||||
@@ -943,7 +953,9 @@ export const useMessageOption = () => {
|
||||
userMessage: message,
|
||||
isRegenerating: isRegenerate,
|
||||
prompt_content: promptContent,
|
||||
prompt_id: promptId
|
||||
prompt_id: promptId,
|
||||
iodSearch,
|
||||
webSearch,
|
||||
})
|
||||
|
||||
if (!errorSave) {
|
||||
@@ -1274,7 +1286,9 @@ export const useMessageOption = () => {
|
||||
fullText,
|
||||
source,
|
||||
generationInfo,
|
||||
reasoning_time_taken: timetaken
|
||||
reasoning_time_taken: timetaken,
|
||||
iodSearch,
|
||||
webSearch,
|
||||
})
|
||||
|
||||
setIsProcessing(false)
|
||||
@@ -1290,7 +1304,9 @@ export const useMessageOption = () => {
|
||||
setHistory,
|
||||
setHistoryId,
|
||||
userMessage: message,
|
||||
isRegenerating: isRegenerate
|
||||
isRegenerating: isRegenerate,
|
||||
iodSearch,
|
||||
webSearch,
|
||||
})
|
||||
|
||||
if (!errorSave) {
|
||||
|
||||
Reference in New Issue
Block a user