diff --git a/admin/service/route/app.js b/admin/service/route/app.js
index a89755805..6c077fb1f 100644
--- a/admin/service/route/app.js
+++ b/admin/service/route/app.js
@@ -1,4 +1,4 @@
-import { User, Model, Kb } from '../schema.js';
+import { Model, Kb } from '../schema.js';
import { auth } from './system.js';
export const useAppRoute = (app) => {
@@ -8,18 +8,19 @@ export const useAppRoute = (app) => {
const start = parseInt(req.query._start) || 0;
const end = parseInt(req.query._end) || 20;
const order = req.query._order === 'DESC' ? -1 : 1;
- const sort = req.query._sort || '_id';
- const userId = req.query.userId || '';
+ const sort = req.query._sort;
const name = req.query.name || '';
+ const id = req.query.id || '';
+
const where = {
- ...(userId ? { userId: userId } : {}),
- name
+ ...(name && { name: { $regex: name, $options: 'i' } }),
+ ...(id && { _id: id })
};
- const modelsRaw = await Model.find()
+ const modelsRaw = await Model.find(where)
.skip(start)
.limit(end - start)
- .sort({ [sort]: order });
+ .sort({ [sort]: order, 'share.isShare': -1, 'share.collection': -1 });
const models = [];
@@ -37,15 +38,19 @@ export const useAppRoute = (app) => {
id: model._id.toString(),
userId: model.userId,
name: model.name,
+ model: model.chat?.chatModel,
relatedKbs: kbNames, // 将relatedKbs的id转换为相应的Kb名称
searchMode: model.chat?.searchMode,
systemPrompt: model.chat?.systemPrompt || '',
- temperature: model.chat?.temperature
+ 'share.topNum': model.share?.topNum || 0,
+ 'share.isShare': model.share?.isShare || false,
+ 'share.intro': model.share?.intro,
+ 'share.collection': model.share?.collection || 0
};
models.push(orderedModel);
}
- const totalCount = await Model.countDocuments();
+ const totalCount = await Model.countDocuments(where);
res.header('Access-Control-Expose-Headers', 'X-Total-Count');
res.header('X-Total-Count', totalCount);
res.json(models);
@@ -54,4 +59,28 @@ export const useAppRoute = (app) => {
res.status(500).json({ error: 'Error fetching models', details: err.message });
}
});
+
+ // 修改 app 信息
+ app.put('/models/:id', auth(), async (req, res) => {
+ try {
+ const _id = req.params.id;
+
+ let {
+ share: { isShare, intro, topNum }
+ } = req.body;
+
+ await Model.findByIdAndUpdate(_id, {
+ $set: {
+ 'share.topNum': Number(topNum),
+ 'share.isShare': isShare === 'true',
+ 'share.intro': intro
+ }
+ });
+
+ res.json({});
+ } catch (err) {
+ console.log(`Error updating user: ${err}`);
+ res.status(500).json({ error: 'Error updating user' });
+ }
+ });
};
diff --git a/admin/service/schema.js b/admin/service/schema.js
index 1346a55ce..ffc019b88 100644
--- a/admin/service/schema.js
+++ b/admin/service/schema.js
@@ -69,6 +69,7 @@ const modelSchema = new mongoose.Schema({
chatModel: String
},
share: {
+ topNum: Number,
isShare: Boolean,
isShareDetail: Boolean,
intro: String,
diff --git a/admin/src/App.tsx b/admin/src/App.tsx
index 075621832..cfc1e8f68 100644
--- a/admin/src/App.tsx
+++ b/admin/src/App.tsx
@@ -54,7 +54,25 @@ function App() {
/>
}
/>
-
+ }
+ label="应用"
+ list={
+
+ }
+ />
}
/>
- }
- label="应用"
- list={}
- />
+
{/* model share setting */}
-
+ {/*
分享设置
@@ -373,7 +373,7 @@ ${e.password ? `密码为: ${e.password}` : ''}`;
/>
-
+ */}
关联的知识库
@@ -411,7 +411,7 @@ ${e.password ? `密码为: ${e.password}` : ''}`;
>
)}
{/* shareChat */}
-
+
免登录聊天窗口
diff --git a/client/src/service/models/model.ts b/client/src/service/models/model.ts
index b4c86ce0b..e80938732 100644
--- a/client/src/service/models/model.ts
+++ b/client/src/service/models/model.ts
@@ -61,6 +61,10 @@ const ModelSchema = new Schema({
}
},
share: {
+ topNum: {
+ type: Number,
+ default: 0
+ },
isShare: {
type: Boolean,
default: false