feat: chat with file function is ready

This commit is contained in:
RockYang
2024-06-27 18:01:49 +08:00
parent 3fdcc895ed
commit a27ce36a32
14 changed files with 329 additions and 75 deletions

View File

@@ -24,7 +24,7 @@
<div class="content" :style="{height: leftBoxHeight+'px'}">
<el-row v-for="chat in chatList" :key="chat.chat_id">
<div :class="chat.chat_id === activeChat.chat_id?'chat-list-item active':'chat-list-item'"
@click="changeChat(chat)">
@click="loadChat(chat)">
<el-image :src="chat.icon" class="avatar"/>
<span class="chat-title-input" v-if="chat.edit">
<el-input v-model="tmpChatTitle" size="small" @keydown="titleKeydown($event, chat)"
@@ -424,12 +424,8 @@ const newChat = () => {
connect(null, roleId.value)
}
// 切换会话
const changeChat = (chat) => {
localStorage.setItem("chat_id", chat.chat_id)
loadChat(chat)
}
// 切换会话
const loadChat = function (chat) {
if (!isLogin.value) {
store.setShowLoginDialog(true)
@@ -753,7 +749,7 @@ const sendMessage = function () {
// 如果携带了文件,则串上文件地址
let content = prompt.value
if (files.value.length > 0) {
content = files.value.map(file => file.url).join(" ") + " " + content
content += files.value.map(file => file.url).join(" ")
}
// 追加消息
chatData.value.push({

View File

@@ -162,7 +162,7 @@
</el-form-item>
<el-form-item label="绑定API-KEY" prop="apikey">
<el-select v-model="item.key_id" placeholder="请选择 API KEY" clearable>
<el-select v-model="item.key_id" placeholder="请选择 API KEY" filterable clearable>
<el-option v-for="v in apiKeys" :value="v.id" :label="v.name" :key="v.id">
{{ v.name }}
<el-text type="info" size="small">{{ substr(v.api_url, 50) }}</el-text>
@@ -229,7 +229,7 @@ const platforms = ref([])
// 获取 API KEY
const apiKeys = ref([])
httpGet('/api/admin/apikey/list?status=true&type=chat').then(res => {
httpGet('/api/admin/apikey/list?type=chat').then(res => {
apiKeys.value = res.data
}).catch(e => {
ElMessage.error("获取 API KEY 失败" + e.message)