修改模型管理类型选择数据,修改通用交互会话名称全部显示

This commit is contained in:
junleea 2025-05-12 13:49:08 +08:00
parent 64daeaeb56
commit bc80406651
2 changed files with 41 additions and 70 deletions

View File

@ -7,11 +7,13 @@
</div> </div>
<el-card class="session-card"> <el-card class="session-card">
<template #header> <template #header>
<h3>当前会话</h3> <h3>当前会话</h3>
</template> </template>
<ul> <el-tooltip :content=sessionName placement="top">
<li>{{ getShortenedName(sessionName) }}</li> <ul>
</ul> <li>{{ getShortenedName(sessionName) }}</li>
</ul>
</el-tooltip>
</el-card> </el-card>
<el-card class="session-card2"> <el-card class="session-card2">
<template #header> <template #header>
@ -24,7 +26,9 @@
:key="index" :key="index"
@click="loadSession(session.ID)" @click="loadSession(session.ID)"
> >
{{ getShortenedName(session.Name) }} <el-tooltip :content="session.Name" placement="top">
<span>{{ getShortenedName(session.Name) }}</span>
</el-tooltip>
</li> </li>
</ul> </ul>
</el-scrollbar> </el-scrollbar>
@ -634,66 +638,6 @@ const doReceiveMessage = (event) => {
const sendMessage = () => { const sendMessage = () => {
sendMessageWithFile() sendMessageWithFile()
return; return;
if (inputMessage.value.trim() === "") {
ElMessage.warning("消息不能为空");
return;
}
let msg = {
msg: inputMessage.value,
type: "ollama",
function: "gen-ai-chat",
session_id: sessionID.value,
model_id: selectModel.value,
temperature: temperature.value,
top_p: topP.value,
};
if (selectedFiles.value.length > 0) {
//
console.log("选中的文件:", selectedFiles.value);
let img_file: File = selectedFiles.value[0];
let img_content = []
for (let i = 0; i < selectedFiles.value.length; i++) {
img_content.push({"img_name": selectedFiles.value[i].UserFileName, "img_url": fileUrl + selectedFiles.value[i].file_store_name});
}
let img_msg: ImageMessage = {
image_content: img_content,
text: inputMessage.value,
};
let img_msg_str = JSON.stringify(img_msg);
msg["msg"] = img_msg_str;
msg["is_image"] = true;
}
try {
socket.value.send(JSON.stringify(msg));
} catch (e) {
ElMessage.error("发送失败!连接已断开!");
return;
}
if (sessionID.value == 0) {
sessionName.value = inputMessage.value;
}
let pMsgContent ="";
if (msg["is_image"]) {
let img_msg: ImageMessage = JSON.parse(msg["msg"]);
//md
let img_content= img_msg.image_content
for (let i = 0; i < img_content.length; i++) {
pMsgContent += `![${img_content[i].img_name}](${img_content[i].img_url})` + "\n";
}
pMsgContent = pMsgContent + img_msg.text;
} else {
pMsgContent = msg.msg;
}
messages.push({ role: "user", content: pMsgContent, finished: true });
inputMessage.value = "";
nextTick(() => {
scrollToBottom(); //
});
loading.value = true;
if (sessionID.value == 0) {
sessionName.value = msg.msg;
}
}; };
@ -704,7 +648,7 @@ const sendMessageWithFile = () => {
} }
let end_msg = { let end_msg = {
msg: inputMessage.value, msg: inputMessage.value,
type: "ollama", type: "null",
function: "gen-ai-chat", function: "gen-ai-chat",
session_id: sessionID.value, session_id: sessionID.value,
model_id: selectModel.value, model_id: selectModel.value,

View File

@ -112,6 +112,7 @@ const getData = async () => {
let result = await FindModelService(req); let result = await FindModelService(req);
page.total = result.data.length; page.total = result.data.length;
page.index = 1; page.index = 1;
page.currentPage = 1;
allData.value = result.data; allData.value = result.data;
// //
let start = (page.index - 1) * page.size; let start = (page.index - 1) * page.size;
@ -123,7 +124,7 @@ const getData = async () => {
start = page.total; start = page.total;
} }
tableData.value = result.data.slice(start, end); tableData.value = result.data.slice(start, end);
await getModelTTypeOptions();
}; };
getData(); getData();
@ -149,12 +150,38 @@ const changePage2 = async (val: number) => {
page.currentPage = val; page.currentPage = val;
}; };
const modelTypeOptions = ref([
{ label: '本地部署模型', value: 'ollama' },
{ label: '星火', value: 'spark' },
{ label: '豆包', value: 'doubao' }
]);
let opts = ref([]);
const getModelTTypeOptions =()=>{
opts.value = [];
let modelTypeMap = new Map();
//
for(let i=0;i<allData.value.length;i++){
let modelType = allData.value[i].Type;
if(!modelTypeMap.has(modelType)){
modelTypeMap.set(modelType,modelType);
}
}
//console.log("modelTypeMap:", modelTypeMap);
//map
for(let [key,value] of modelTypeMap){
opts.value.push({label:key,value:value});
}
//console.log("opts:", opts);
options.value.list[0].opts = opts.value;
options_edit.value.list[0].opts = opts.value;
}
// //
let options = ref<FormOption>({ let options = ref<FormOption>({
labelWidth: '100px', labelWidth: '100px',
span: 12, span: 12,
list: [ list: [
{ type: 'select', label: '类型', prop: 'Type', required: true, allowcreate:true, opts:[{label: '本地部署模型', value: 'ollama'},{label: '星火', value: 'spark'},{label: '豆包', value: 'doubao'}]}, { type: 'select', label: '类型', prop: 'Type', required: true, allowcreate:true, opts: opts.value },
{ type: 'input', label: 'URL', prop: 'Url', required: true }, { type: 'input', label: 'URL', prop: 'Url', required: true },
{ type: 'input', label: '参数', prop: 'Parameter', required: true }, { type: 'input', label: '参数', prop: 'Parameter', required: true },
{ type: 'input', label: '描述', prop: 'Description', required: true }, { type: 'input', label: '描述', prop: 'Description', required: true },
@ -166,7 +193,7 @@ let options_edit = ref<FormOption>({
labelWidth: '100px', labelWidth: '100px',
span: 12, span: 12,
list: [ list: [
{ type: 'select', label: '类型', prop: 'Type', required: true,opts:[{label: '本地部署模型', value: 'ollama'},{label: '星火', value: 'spark'},{label: '豆包', value: 'doubao'}]}, { type: 'select', label: '类型', prop: 'Type', required: true, allowcreate:true,opts:opts.value},
{ type: 'input', label: 'URL', prop: 'Url', required: true }, { type: 'input', label: 'URL', prop: 'Url', required: true },
{ type: 'input', label: '参数', prop: 'Parameter', required: true, rows: 4 }, { type: 'input', label: '参数', prop: 'Parameter', required: true, rows: 4 },
{ type: 'input', label: '描述', prop: 'Description', required: true }, { type: 'input', label: '描述', prop: 'Description', required: true },