【增加】AI 配置 Chat角色
parent
9658af7c04
commit
f14032d69d
|
@ -5,8 +5,8 @@ import { config } from '@/config/axios/config'
|
||||||
|
|
||||||
// 聊天VO
|
// 聊天VO
|
||||||
export interface ChatMessageVO {
|
export interface ChatMessageVO {
|
||||||
id: string // 编号
|
id: number // 编号
|
||||||
conversationId: string // 会话编号
|
conversationId: number // 会话编号
|
||||||
type: string // 消息类型
|
type: string // 消息类型
|
||||||
userId: string // 用户编号
|
userId: string // 用户编号
|
||||||
roleId: string // 角色编号
|
roleId: string // 角色编号
|
||||||
|
@ -25,7 +25,7 @@ export interface ChatMessageSendVO {
|
||||||
// AI chat 聊天
|
// AI chat 聊天
|
||||||
export const ChatMessageApi = {
|
export const ChatMessageApi = {
|
||||||
// 消息列表
|
// 消息列表
|
||||||
messageList: async (conversationId: string) => {
|
messageList: async (conversationId: number) => {
|
||||||
return await request.get({
|
return await request.get({
|
||||||
url: `/ai/chat/message/list-by-conversation-id?conversationId=${conversationId}`
|
url: `/ai/chat/message/list-by-conversation-id?conversationId=${conversationId}`
|
||||||
})
|
})
|
||||||
|
|
|
@ -199,7 +199,7 @@ import { marked } from 'marked'
|
||||||
// 代码高亮 https://highlightjs.org/
|
// 代码高亮 https://highlightjs.org/
|
||||||
import 'highlight.js/styles/vs2015.min.css'
|
import 'highlight.js/styles/vs2015.min.css'
|
||||||
import hljs from 'highlight.js'
|
import hljs from 'highlight.js'
|
||||||
|
const route = useRoute() // 路由
|
||||||
const message = useMessage() // 消息弹窗
|
const message = useMessage() // 消息弹窗
|
||||||
|
|
||||||
// 自定义渲染器
|
// 自定义渲染器
|
||||||
|
@ -220,7 +220,7 @@ const { copy } = useClipboard()
|
||||||
|
|
||||||
const searchName = ref('') // 查询的内容
|
const searchName = ref('') // 查询的内容
|
||||||
const inputTimeout = ref<any>() // 处理输入中回车的定时器
|
const inputTimeout = ref<any>() // 处理输入中回车的定时器
|
||||||
const conversationId = ref(0) // 选中的对话编号
|
const conversationId = ref<number>(-1) // 选中的对话编号
|
||||||
const conversationInProgress = ref(false) // 对话进行中
|
const conversationInProgress = ref(false) // 对话进行中
|
||||||
const conversationInAbortController = ref<any>() // 对话进行中 abort 控制器(控制 stream 对话)
|
const conversationInAbortController = ref<any>() // 对话进行中 abort 控制器(控制 stream 对话)
|
||||||
|
|
||||||
|
@ -297,7 +297,7 @@ const onSend = async () => {
|
||||||
if (conversationInProgress.value) {
|
if (conversationInProgress.value) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
const content = prompt.value?.trim()
|
const content = prompt.value?.trim() + ''
|
||||||
if (content.length < 2) {
|
if (content.length < 2) {
|
||||||
ElMessage({
|
ElMessage({
|
||||||
message: '请输入内容!',
|
message: '请输入内容!',
|
||||||
|
@ -316,7 +316,7 @@ const onSend = async () => {
|
||||||
const userMessage = {
|
const userMessage = {
|
||||||
conversationId: conversationId.value,
|
conversationId: conversationId.value,
|
||||||
content: content
|
content: content
|
||||||
}
|
} as ChatMessageVO
|
||||||
// list.value.push(userMessage)
|
// list.value.push(userMessage)
|
||||||
// // 滚动到住下面
|
// // 滚动到住下面
|
||||||
// scrollToBottom()
|
// scrollToBottom()
|
||||||
|
@ -387,6 +387,9 @@ const doSendStream = async (userMessage: ChatMessageVO) => {
|
||||||
/** 查询列表 */
|
/** 查询列表 */
|
||||||
const messageList = async () => {
|
const messageList = async () => {
|
||||||
try {
|
try {
|
||||||
|
if (!conversationId.value) {
|
||||||
|
return
|
||||||
|
}
|
||||||
// 获取列表数据
|
// 获取列表数据
|
||||||
const res = await ChatMessageApi.messageList(conversationId.value)
|
const res = await ChatMessageApi.messageList(conversationId.value)
|
||||||
|
|
||||||
|
@ -504,7 +507,7 @@ const onPromptInput = (event) => {
|
||||||
}, 400)
|
}, 400)
|
||||||
}
|
}
|
||||||
|
|
||||||
const getConversation = async (conversationId: string) => {
|
const getConversation = async (conversationId: number) => {
|
||||||
// 获取对话信息
|
// 获取对话信息
|
||||||
useConversation.value = await ChatConversationApi.getChatConversationMy(conversationId)
|
useConversation.value = await ChatConversationApi.getChatConversationMy(conversationId)
|
||||||
console.log('useConversation.value', useConversation.value)
|
console.log('useConversation.value', useConversation.value)
|
||||||
|
@ -527,12 +530,16 @@ const getChatConversationList = async () => {
|
||||||
|
|
||||||
/** 初始化 **/
|
/** 初始化 **/
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
|
// 设置当前对话
|
||||||
|
if (route.query.conversationId) {
|
||||||
|
conversationId.value = route.query.conversationId as number
|
||||||
|
}
|
||||||
// 获得聊天会话列表
|
// 获得聊天会话列表
|
||||||
await getChatConversationList()
|
await getChatConversationList()
|
||||||
// 获取对话信息
|
// 获取对话信息
|
||||||
getConversation(conversationId.value)
|
await getConversation(conversationId.value)
|
||||||
// 获取列表数据
|
// 获取列表数据
|
||||||
messageList()
|
await messageList()
|
||||||
// scrollToBottom();
|
// scrollToBottom();
|
||||||
// await nextTick
|
// await nextTick
|
||||||
// 监听滚动事件,判断用户滚动状态
|
// 监听滚动事件,判断用户滚动状态
|
||||||
|
|
|
@ -149,7 +149,10 @@ const handlerCardUse = async (role) => {
|
||||||
const conversation = await ChatConversationApi.createChatConversationMy(data)
|
const conversation = await ChatConversationApi.createChatConversationMy(data)
|
||||||
// 调整页面
|
// 调整页面
|
||||||
router.push({
|
router.push({
|
||||||
path: `/ai/chat/index?conversationId=${conversation.id}`
|
path: `/ai/chat/index`,
|
||||||
|
query: {
|
||||||
|
conversationId: conversation,
|
||||||
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue