style: 输入框高度
This commit is contained in:
@@ -12,68 +12,8 @@ export interface AgentParamsType {
|
|||||||
export const fetchAgentReply = (data: AgentParamsType): Promise<AgentResponse> => {
|
export const fetchAgentReply = (data: AgentParamsType): Promise<AgentResponse> => {
|
||||||
return request({
|
return request({
|
||||||
url: '/api/ai-design/chat',
|
url: '/api/ai-design/chat',
|
||||||
method: 'post',
|
method: 'get',
|
||||||
data,
|
data,
|
||||||
meta: { responseAll: true }
|
meta: { responseAll: true }
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// 流式对话
|
|
||||||
export const fetchAgentReplyStream = async (
|
|
||||||
data: AgentParamsType,
|
|
||||||
onMessage: (chunk: string) => void,
|
|
||||||
onEnd: () => void
|
|
||||||
) => {
|
|
||||||
try {
|
|
||||||
const params = new URLSearchParams({
|
|
||||||
message: data.message,
|
|
||||||
threadId: data.threadId,
|
|
||||||
token: data.token,
|
|
||||||
configParams: JSON.stringify(data.configParams)
|
|
||||||
})
|
|
||||||
|
|
||||||
const response = await fetch(`/api/ai-design/chat?${params.toString()}`, {
|
|
||||||
method: 'GET'
|
|
||||||
})
|
|
||||||
|
|
||||||
if (!response.ok) {
|
|
||||||
throw new Error(`HTTP error! status: ${response.status}`)
|
|
||||||
}
|
|
||||||
|
|
||||||
const reader = response.body?.getReader()
|
|
||||||
if (!reader) {
|
|
||||||
throw new Error('Response body is not readable')
|
|
||||||
}
|
|
||||||
|
|
||||||
const decoder = new TextDecoder()
|
|
||||||
let buffer = ''
|
|
||||||
|
|
||||||
while (true) {
|
|
||||||
const { done, value } = await reader.read()
|
|
||||||
if (done) break
|
|
||||||
|
|
||||||
buffer += decoder.decode(value, { stream: true })
|
|
||||||
const lines = buffer.split('\n')
|
|
||||||
buffer = lines.pop() || '' // 保留不完整的行
|
|
||||||
|
|
||||||
for (const line of lines) {
|
|
||||||
console.log('line---', line)
|
|
||||||
|
|
||||||
const trimmedLine = line.trim()
|
|
||||||
if (trimmedLine.startsWith('data: ')) {
|
|
||||||
const chunk = trimmedLine.slice(6)
|
|
||||||
if (chunk === '[DONE]') {
|
|
||||||
onEnd()
|
|
||||||
return
|
|
||||||
} else {
|
|
||||||
onMessage(chunk)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
onEnd()
|
|
||||||
} catch (error) {
|
|
||||||
console.error('Stream error:', error)
|
|
||||||
onEnd()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -77,8 +77,8 @@
|
|||||||
})
|
})
|
||||||
messageList.value.push(aiMessage)
|
messageList.value.push(aiMessage)
|
||||||
|
|
||||||
const threadId = '' //
|
// const threadId = '' //
|
||||||
console.log('token---', params.token, '参数---', params)
|
// console.log('token---', params.token, '参数---', params)
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const urlParams = new URLSearchParams<AgentParamsType>({
|
const urlParams = new URLSearchParams<AgentParamsType>({
|
||||||
|
|||||||
@@ -512,6 +512,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.scroll-content {
|
.scroll-content {
|
||||||
|
display: flex;
|
||||||
flex: 1;
|
flex: 1;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
padding: 3.4rem 1.7rem 1.7rem;
|
padding: 3.4rem 1.7rem 1.7rem;
|
||||||
|
|||||||
Reference in New Issue
Block a user