diff --git a/server/app/controller/chat.js b/server/app/controller/chat.js
index 0b6ced7..d43fe2b 100644
--- a/server/app/controller/chat.js
+++ b/server/app/controller/chat.js
@@ -37,25 +37,33 @@ async function saveAIConfig({ res, request }) {
async function getChatHistory({ res }) {
const chatHistory = await chatHistoryDB.findAsync({})
- chatHistory.sort((a, b) => b.createdAt - a.createdAt)
- res.success({ data: chatHistory || [] })
+ const newChatHistory = chatHistory.map(item => {
+ item.id = item._id
+ delete item._id
+ return item
+ }).sort((a, b) => b.createdAt - a.createdAt)
+ res.success({ data: newChatHistory || [] })
}
async function saveChatHistory({ res, request }) {
const chatRecord = request.body
- const { id, _id } = chatRecord
- if (!id) return res.fail({ data: false, msg: '参数错误' })
-
- if (!_id) {
- console.log('不存在-创建')
- chatRecord.createdAt = Date.now()
- await chatHistoryDB.insertAsync(chatRecord)
- } else {
+ const { id = '', chatList } = chatRecord
+ if (!chatList) return res.fail({ data: false, msg: '参数错误' })
+ let updateChat = chatRecord
+ if (id) {
console.log('存在-更新')
chatRecord.updatedAt = Date.now()
- await chatHistoryDB.updateAsync({ _id }, chatRecord)
+ await chatHistoryDB.updateAsync({ _id: id }, chatRecord)
+ } else {
+ console.log('不存在-创建')
+ chatRecord.createdAt = Date.now()
+ delete chatRecord.id
+ const result = await chatHistoryDB.insertAsync(chatRecord)
+ updateChat = result
+ updateChat.id = result._id
+ delete updateChat._id
}
- res.success({ data: true })
+ res.success({ data: { updateChat } })
}
async function removeChatHistory({ res, request }) {
diff --git a/web/src/components/ai-chat/ai-api-config.vue b/web/src/components/ai-chat/ai-api-config.vue
index 338c46b..99af8b1 100644
--- a/web/src/components/ai-chat/ai-api-config.vue
+++ b/web/src/components/ai-chat/ai-api-config.vue
@@ -40,12 +40,20 @@
tag-type="success"
tag-effect="plain"
clearable
+ @change="handleModelsChange"
/>
获取模型
-
-
+
+
+
+
@@ -104,7 +112,7 @@ const AIconfigFormData = ref({
apiUrl: '',
apiKey: '',
models: [],
- titlePrompt: '使用四到五个字直接返回这句话的简要主题,不要解释、不要标点、不要语气词、不要多余文本,不要加粗,如果没有主题,请直接返回“闲聊”'
+ titleGenMedel: ''
})
watch(props.aiConfig, (newVal) => {
@@ -124,7 +132,7 @@ const rules = {
],
apiKey: [{ required: true, message: '请输入API KEY', trigger: 'change' },],
models: [{ required: true, message: '请输入或获取模型列表', trigger: 'change' },],
- titlePrompt: [{ required: false, message: '请输入标题生成提示', trigger: 'change' },]
+ titleGenMedel: [{ required: true, message: '请选择标题生成模型', trigger: 'change' },]
}
const handleFetchModels = async () => {
@@ -177,6 +185,12 @@ const inputApiUrlSuggestion = (query, cb) => {
const origin = new URL(AIconfigFormData.value.apiUrl).origin
cb([{ value: `${ origin }/v1/chat/completions` },])
}
+
+const handleModelsChange = (newVal) => {
+ if (!newVal?.includes(AIconfigFormData.value.titleGenMedel)) {
+ AIconfigFormData.value.titleGenMedel = ''
+ }
+}