提交 3cc4303d authored 作者: 王鹏飞's avatar 王鹏飞

chore: 移除天工AI

上级 0e5e2976
......@@ -11,7 +11,7 @@ export function useAI(config) {
{ label: '文心一言', value: 'yiyan' },
{ label: 'DeepSeek', value: 'deepseek' },
{ label: '通义千问', value: 'qwen' },
{ label: '天工', value: 'tiangong' },
// { label: '天工', value: 'tiangong' },
]
const ai = useStorage('ai', 'tiangong')
......@@ -184,74 +184,105 @@ export function useAI(config) {
async function generateText(data) {
isLoading.value = true
const docAction = {
2: 'write',
3: 'rewrite',
4: 'expand',
5: 'rewrite',
7: 'abbreviate',
8: 'summary',
}
const params = {
content: data.content,
doc_action: docAction[data.type],
full_text: !!(data.type === 2),
}
await fetchEventSource('/api/lab/v1/experiment/marketing-ai/sky-agent3-chat', {
// const docAction = {
// 2: 'write',
// 3: 'rewrite',
// 4: 'expand',
// 5: 'rewrite',
// 7: 'abbreviate',
// 8: 'summary',
// }
// const params = {
// content: data.content,
// doc_action: docAction[data.type],
// full_text: !!(data.type === 2),
// }
await fetchEventSource('/api/qwen/compatible-mode/v1/chat/completions', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
...config,
...data,
api_type: parseInt(data.type) === 1 ? 1 : 2,
context: data.content,
params: params,
}),
headers: { 'Content-Type': 'application/json', Authorization: `Bearer sk-afd0fcdb53bf4058b2068b8548820150` },
body: JSON.stringify({ stream: true, model: 'qwen-max', messages: [{ role: 'user', content: data.content }] }),
async onopen(response) {
if (response.ok) {
return
return response
} else {
isLoading.value = false
// reject(response)
throw response
}
},
onmessage(res) {
const message = JSON.parse(res.data)
// 聊天返回内容
if (data.type === '1') {
if (message.code === 0) {
ElMessage.error(message.message)
console.log(res.data)
if (res.data === '[DONE]') {
isLoading.value = false
// resolve(messages.value.at(-1))
return
}
try {
const message = JSON.parse(res.data)
if (message.error) {
ElMessage.error(message.error.message)
return
}
const conversationId = message.conversation_id
const messageIndex = messages.value.findIndex((session) => session.conversationId === conversationId)
const content = message?.arguments?.reduce((a, b) => {
a = b?.messages[0]?.text || ''
return a
}, '')
if (messageIndex === -1) {
messages.value.push({ conversationId, role: 'assistant', content, input: data.context })
} else {
if (content) {
messages.value[messageIndex].content = content
}
}
} else {
// 按钮功能返回内容
const requestId = message.request_id
const messageIndex = messages.value.findIndex((session) => session.conversationId === requestId)
const id = message.id
const messageIndex = messages.value.findIndex((session) => session.id === id)
let content = message?.choices[0]?.delta.content || ''
// if (isReplace) {
// content = content.replaceAll('\n', '<br/>')
// }
if (messageIndex === -1) {
messages.value.push({
conversationId: requestId,
conversationId: id,
id,
role: 'assistant',
content: message.data?.text || '',
content: content.replace(/<think>[\s\S]*?<\/think>/g, '').replace(/^((<br\s*\/?>)|\s|\\n|\\r)+/g, ''),
input: data.context,
})
} else {
messages.value[messageIndex].content = message.data?.text
messages.value[messageIndex].content = (messages.value[messageIndex].content + content)
.replace(/<think>[\s\S]*?<\/think>/g, '')
.replace(/^((<br\s*\/?>)|\s|\\n|\\r)+/g, '')
}
} catch (error) {
console.log(error)
isLoading.value = false
// reject(error)
}
// const message = JSON.parse(res.data)
// // 聊天返回内容
// if (data.type === '1') {
// if (message.code === 0) {
// ElMessage.error(message.message)
// return
// }
// const conversationId = message.conversation_id
// const messageIndex = messages.value.findIndex((session) => session.conversationId === conversationId)
// const content = message?.arguments?.reduce((a, b) => {
// a = b?.messages[0]?.text || ''
// return a
// }, '')
// if (messageIndex === -1) {
// messages.value.push({ conversationId, role: 'assistant', content, input: data.context })
// } else {
// if (content) {
// messages.value[messageIndex].content = content
// }
// }
// } else {
// // 按钮功能返回内容
// const requestId = message.request_id
// const messageIndex = messages.value.findIndex((session) => session.conversationId === requestId)
// if (messageIndex === -1) {
// messages.value.push({
// conversationId: requestId,
// role: 'assistant',
// content: message.data?.text || '',
// input: data.context,
// })
// } else {
// messages.value[messageIndex].content = message.data?.text
// }
// }
isLoading.value = false
},
onclose() {
......
......@@ -2,7 +2,7 @@
import { useClipboard } from '@vueuse/core'
import { useAI } from '@/composables/useAI'
import { useMapStore } from '@/stores/map'
import { useUserStore } from '@/stores/user'
// import { useUserStore } from '@/stores/user'
import { useConnection } from '../composables/useConnection'
import { useIndustry } from '../composables/useIndustry'
import {
......@@ -94,7 +94,7 @@ async function handleSend(event) {
}
async function handleSendType(type, content) {
const userName = useUserStore().user.name
// const userName = useUserStore().user.name
content = xss(content, {
whiteList: {}, // 白名单为空,表示过滤所有标签
stripIgnoreTag: true, // 过滤所有非白名单标签的HTML
......@@ -102,19 +102,20 @@ async function handleSendType(type, content) {
})
switch (type) {
case 2:
content = `${content}`
// content = `${content}`
content = `请帮我创作以下内容:${content.replace('请帮我创作一个', '')}`
break
case 3:
content = `我是${userName},请帮我改写以下内容:${content.replace('请帮我创作一个', '')}`
content = `请帮我改写以下内容:${content.replace('请帮我创作一个', '')}`
break
case 4:
content = `我是${userName},请帮我扩写以下内容:${content.replace('请帮我创作一个', '')}`
content = `请帮我扩写以下内容:${content.replace('请帮我创作一个', '')}`
break
case 7:
content = `我是${userName},请帮我缩写以下内容:${content.replace('请帮我创作一个', '')}`
content = `请帮我缩写以下内容:${content.replace('请帮我创作一个', '')}`
break
case 8:
content = `我是${userName},请帮我总结以下内容:${content.replace('请帮我创作一个', '')}`
content = `请帮我总结以下内容:${content.replace('请帮我创作一个', '')}`
break
}
if (type == 99) {
......@@ -178,23 +179,29 @@ async function handleSave(message) {
type="primary"
@click="handleSendType(5, item.input || item.content)"
v-if="item.role == 'assistant'"
>刷新({{ usages.ai_refresh_count }}/{{ usages.ai_refresh_max_count }})</el-button
>
>刷新
<!-- ({{ usages.ai_refresh_count }}/{{ usages.ai_refresh_max_count }}) -->
</el-button>
<el-button size="small" type="primary" @click="handleSendType(2, item.content)"
>AI创作({{ usages.ai_creation_count }}/{{ usages.ai_creation_max_count }})</el-button
>
>AI创作
<!-- ({{ usages.ai_creation_count }}/{{ usages.ai_creation_max_count }}) -->
</el-button>
<el-button size="small" type="primary" @click="handleSendType(3, item.content)"
>AI改写({{ usages.ai_polish_count }}/{{ usages.ai_polish_max_count }})</el-button
>
>AI改写
<!-- ({{ usages.ai_polish_count }}/{{ usages.ai_polish_max_count }}) -->
</el-button>
<el-button size="small" type="primary" @click="handleSendType(4, item.content)"
>AI扩写({{ usages.ai_expand_count }}/{{ usages.ai_expand_max_count }})</el-button
>
>AI扩写
<!-- ({{ usages.ai_expand_count }}/{{ usages.ai_expand_max_count }}) -->
</el-button>
<el-button size="small" type="primary" @click="handleSendType(7, item.content)"
>AI缩写({{ usages.ai_abbr_count }}/{{ usages.ai_abbr_max_count }})</el-button
>
>AI缩写
<!-- ({{ usages.ai_abbr_count }}/{{ usages.ai_abbr_max_count }}) -->
</el-button>
<el-button size="small" type="primary" @click="handleSendType(8, item.content)"
>AI总结({{ usages.ai_summary_count }}/{{ usages.ai_summary_max_count }})</el-button
>
>AI总结
<!-- ({{ usages.ai_summary_count }}/{{ usages.ai_summary_max_count }}) -->
</el-button>
</template>
<!-- 图片 -->
<template v-if="form.type == 2">
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论