Skip to content

Commit 1dfff30

Browse files
feat: resource authorization
1 parent b1a6c46 commit 1dfff30

File tree

9 files changed

+845
-6
lines changed

9 files changed

+845
-6
lines changed
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
import { Result } from '@/request/Result'
2+
import { get, put, post, del } from '@/request/index'
3+
import type { pageRequest } from '@/api/type/common'
4+
import type { Ref } from 'vue'
5+
6+
const prefix = '/workspace'
7+
/**
8+
* 获取资源权限
9+
* @query 参数
10+
*/
11+
const getResourceAuthorization: (workspace_id: String) => Promise<Result<any>> = (workspace_id) => {
12+
return get(`${prefix}/${workspace_id}/user_resource_permission`)
13+
}
14+
15+
/**
16+
* 修改成员权限
17+
* @param 参数 member_id
18+
* @param 参数 {
19+
"team_resource_permission_list": [
20+
{
21+
"auth_target_type": "KNOWLEDGE",
22+
"target_id": "string",
23+
"auth_type": "ROLE",
24+
"permission": {
25+
"VIEW": true,
26+
"MANAGE": true,
27+
"ROLE": true
28+
}
29+
}
30+
]
31+
}
32+
*/
33+
const putResourceAuthorization: (workspace_id: String, body: any) => Promise<Result<any>> = (
34+
workspace_id,
35+
body,
36+
) => {
37+
return put(`${prefix}/${workspace_id}/user_resource_permission`, body)
38+
}
39+
40+
export default {
41+
getResourceAuthorization,
42+
putResourceAuthorization,
43+
}

ui/src/enums/system.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
export enum AuthorizationEnum {
2+
MANAGE = 'MANAGE',
3+
USE = 'USE',
4+
DATASET = 'DATASET',
5+
APPLICATION = 'APPLICATION'
6+
}
Lines changed: 216 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,216 @@
1+
export default {
2+
title: '应用',
3+
createApplication: '创建应用',
4+
importApplication: '导入应用',
5+
copyApplication: '复制应用',
6+
workflow: '高级编排',
7+
simple: '简单配置',
8+
searchBar: {
9+
placeholder: '按名称搜索'
10+
},
11+
setting: {
12+
demo: '演示'
13+
},
14+
delete: {
15+
confirmTitle: '是否删除应用:',
16+
confirmMessage: '删除后该应用将不再提供服务,请谨慎操作。'
17+
},
18+
tip: {
19+
ExportError: '导出失败',
20+
professionalMessage: '社区版最多支持 5 个应用,如需拥有更多应用,请升级为专业版。',
21+
saveErrorMessage: '保存失败,请检查输入或稍后再试',
22+
loadingErrorMessage: '加载配置失败,请检查输入或稍后再试'
23+
},
24+
applicationForm: {
25+
title: {
26+
appTest: '调试预览',
27+
copy: '副本'
28+
},
29+
form: {
30+
appName: {
31+
label: '名称',
32+
placeholder: '请输入应用名称',
33+
requiredMessage: '请输入应用名称'
34+
},
35+
appDescription: {
36+
label: '描述',
37+
placeholder: '描述该应用的应用场景及用途,如:XXX 小助手回答用户提出的 XXX 产品使用问题'
38+
},
39+
appType: {
40+
label: '类型',
41+
simplePlaceholder: '适合新手创建小助手',
42+
workflowPlaceholder: '适合高级用户自定义小助手的工作流'
43+
},
44+
appTemplate: {
45+
blankApp: '空白应用',
46+
assistantApp: '知识库问答助手'
47+
},
48+
aiModel: {
49+
label: 'AI 模型',
50+
placeholder: '请选择 AI 模型'
51+
},
52+
roleSettings: {
53+
label: '系统角色',
54+
placeholder: '你是 xxx 小助手'
55+
},
56+
prompt: {
57+
label: '提示词',
58+
noReferences: ' (无引用知识库)',
59+
references: ' (引用知识库)',
60+
placeholder: '请输入提示词',
61+
requiredMessage: '请输入提示词',
62+
tooltip:
63+
'通过调整提示词内容,可以引导大模型聊天方向,该提示词会被固定在上下文的开头,可以使用变量。',
64+
noReferencesTooltip:
65+
'通过调整提示词内容,可以引导大模型聊天方向,该提示词会被固定在上下文的开头。可以使用变量:{question} 是用户提出问题的占位符。',
66+
referencesTooltip:
67+
'通过调整提示词内容,可以引导大模型聊天方向,该提示词会被固定在上下文的开头。可以使用变量:{data} 是引用知识库中分段的占位符;{question} 是用户提出问题的占位符。',
68+
defaultPrompt: `已知信息:{data}
69+
用户问题:{question}
70+
回答要求:
71+
- 请使用中文回答用户问题`
72+
},
73+
historyRecord: {
74+
label: '历史聊天记录'
75+
},
76+
relatedKnowledge: {
77+
label: '关联知识库',
78+
placeholder: '关联的知识库展示在这里'
79+
},
80+
multipleRoundsDialogue: '多轮对话',
81+
82+
prologue: '开场白',
83+
defaultPrologue:
84+
'您好,我是 XXX 小助手,您可以向我提出 XXX 使用问题。\n- XXX 主要功能有什么?\n- XXX 如何收费?\n- 需要转人工服务',
85+
86+
problemOptimization: {
87+
label: '问题优化',
88+
tooltip: '根据历史聊天优化完善当前问题,更利于匹配知识点。'
89+
},
90+
voiceInput: {
91+
label: '语音输入',
92+
placeholder: '请选择语音识别模型',
93+
requiredMessage: '请选择语音输入模型',
94+
autoSend: '自动发送'
95+
},
96+
voicePlay: {
97+
label: '语音播放',
98+
placeholder: '请选择语音合成模型',
99+
requiredMessage: '请选择语音播放模型',
100+
autoPlay: '自动播放',
101+
browser: '浏览器播放(免费)',
102+
tts: 'TTS模型',
103+
listeningTest: '试听'
104+
},
105+
reasoningContent: {
106+
label: '输出思考',
107+
tooltip: '请根据模型返回的思考标签设置,标签中间的内容将会认定为思考过程',
108+
start: '开始',
109+
end: '结束'
110+
}
111+
},
112+
buttons: {
113+
publish: '保存并发布',
114+
115+
addModel: '添加模型'
116+
},
117+
118+
dialog: {
119+
addDataset: '添加关联知识库',
120+
addDatasetPlaceholder: '所选知识库必须使用相同的 Embedding 模型',
121+
selected: '已选',
122+
countDataset: '个知识库',
123+
124+
selectSearchMode: '检索模式',
125+
vectorSearch: '向量检索',
126+
vectorSearchTooltip: '向量检索是一种基于向量相似度的检索方式,适用于知识库中的大数据量场景。',
127+
fullTextSearch: '全文检索',
128+
fullTextSearchTooltip:
129+
'全文检索是一种基于文本相似度的检索方式,适用于知识库中的小数据量场景。',
130+
hybridSearch: '混合检索',
131+
hybridSearchTooltip:
132+
'混合检索是一种基于向量和文本相似度的检索方式,适用于知识库中的中等数据量场景。',
133+
similarityThreshold: '相似度高于',
134+
similarityTooltip: '相似度越高相关性越强。',
135+
topReferences: '引用分段数 TOP',
136+
maxCharacters: '最多引用字符数',
137+
noReferencesAction: '无引用知识库分段时',
138+
continueQuestioning: '继续向 AI 模型提问',
139+
provideAnswer: '指定回答内容',
140+
designated_answer:
141+
'你好,我是 XXX 小助手,我的知识库只包含了 XXX 产品相关知识,请重新描述您的问题。',
142+
defaultPrompt1:
143+
'()里面是用户问题,根据上下文回答揣测用户问题({question}) 要求: 输出一个补全问题,并且放在',
144+
defaultPrompt2: '标签中'
145+
}
146+
},
147+
applicationAccess: {
148+
title: '应用接入',
149+
wecom: '企业微信应用',
150+
wecomTip: '打造企业微信智能应用',
151+
dingtalk: '钉钉应用',
152+
dingtalkTip: '打造钉钉智能应用',
153+
wechat: '公众号',
154+
wechatTip: '打造公众号智能应用',
155+
lark: '飞书应用',
156+
larkTip: '打造飞书智能应用',
157+
slack: 'Slack',
158+
slackTip: '打造 Slack 智能应用',
159+
setting: '配置',
160+
callback: '回调地址',
161+
callbackTip: '请输入回调地址',
162+
wecomPlatform: '企业微信后台',
163+
wechatPlatform: '微信公众平台',
164+
dingtalkPlatform: '钉钉开放平台',
165+
larkPlatform: '飞书开放平台',
166+
wecomSetting: {
167+
title: '企业微信应用配置',
168+
cropId: '企业 ID',
169+
cropIdPlaceholder: '请输入企业 ID',
170+
agentIdPlaceholder: '请输入Agent ID',
171+
secretPlaceholder: '请输入Secret',
172+
tokenPlaceholder: '请输入Token',
173+
encodingAesKeyPlaceholder: '请输入EncodingAESKey',
174+
authenticationSuccessful: '认证成功',
175+
urlInfo: '-应用管理-自建-创建的应用-接收消息-设置 API 接收的 "URL" 中'
176+
},
177+
dingtalkSetting: {
178+
title: '钉钉应用配置',
179+
clientIdPlaceholder: '请输入Client ID',
180+
clientSecretPlaceholder: '请输入Client Secret',
181+
urlInfo: '-机器人页面,设置 "消息接收模式" 为 HTTP模式 ,并把上面URL填写到"消息接收地址"中'
182+
},
183+
wechatSetting: {
184+
title: '公众号应用配置',
185+
appId: '开发者ID (APP ID)',
186+
appIdPlaceholder: '请输入开发者ID (APP ID)',
187+
appSecret: '开发者密钥 (APP SECRET)',
188+
appSecretPlaceholder: '请输入开发者密钥 (APP SECRET)',
189+
token: '令牌 (TOKEN)',
190+
tokenPlaceholder: '请输入令牌 (TOKEN)',
191+
aesKey: '消息加解密密钥',
192+
aesKeyPlaceholder: '请输入消息加解密密钥',
193+
urlInfo: '-设置与开发-基本配置-服务器配置的 "服务器地址URL" 中'
194+
},
195+
larkSetting: {
196+
title: '飞书应用配置',
197+
appIdPlaceholder: '请输入App ID',
198+
appSecretPlaceholder: '请输入App Secret',
199+
verificationTokenPlaceholder: '请输入Verification Token',
200+
urlInfo: '-事件与回调-事件配置-配置订阅方式的 "请求地址" 中',
201+
folderTokenPlaceholder: '请输入Folder Token'
202+
},
203+
slackSetting: {
204+
title: 'Slack 应用配置',
205+
signingSecretPlaceholder: '请输入 Signing Secret',
206+
botUserTokenPlaceholder: '请输入 Bot User Token'
207+
},
208+
copyUrl: '复制链接填入到'
209+
},
210+
hitTest: {
211+
title: '命中测试',
212+
text: '针对用户提问调试段落匹配情况,保障回答效果。',
213+
emptyMessage1: '命中段落显示在这里',
214+
emptyMessage2: '没有命中的分段'
215+
}
216+
}

ui/src/locales/lang/zh-CN/views/index.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@ import document from './document'
66
import system from './system'
77
import userManage from './user-manage'
88
import resourceAuthorization from './resource-authorization'
9+
import application from './application'
910
// import notFound from './404'
10-
// import application from './application'
11+
1112
// import applicationOverview from './application-overview'
1213

1314
// import user from './user'
@@ -27,9 +28,10 @@ export default {
2728
document,
2829
system,
2930
userManage,
30-
resourceAuthorization
31+
resourceAuthorization,
32+
application,
3133
// notFound,
32-
// application,
34+
3335
// applicationOverview,
3436

3537
// user,
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,31 @@
11
export default {
22
title: '资源授权',
3+
member: '成员',
4+
manage: '所有者',
5+
permissionSetting: '资源权限配置',
6+
addMember: '添加成员',
7+
addSubTitle: '成员登录后可以访问到您授权的数据。',
8+
searchBar: {
9+
placeholder: '请输入用户名搜索'
10+
},
11+
delete: {
12+
button: '移除',
13+
confirmTitle: '是否移除成员:',
14+
confirmMessage: '移除后将会取消成员拥有的知识库和应用权限。'
15+
},
16+
setting: {
17+
management: '管理',
18+
check: '查看'
19+
},
20+
teamForm: {
21+
form: {
22+
userName: {
23+
label: '用户名/邮箱',
24+
placeholder: '请输入成员的用户名或邮箱',
25+
requiredMessage: '请输入用户名/邮箱'
26+
},
27+
28+
},
29+
30+
}
331
}

ui/src/styles/variables.scss

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,4 +39,7 @@ $primary-color: #3370ff;
3939
/** ai-chat */
4040
--dialog-bg-gradient-color:
4141
linear-gradient(188deg, rgba(235, 241, 255, 0.2) 39.6%, rgba(231, 249, 255, 0.2) 94.3%), #eff0f1;
42+
43+
/** 资源授权 */
44+
--setting-left-width: 280px;
4245
}

0 commit comments

Comments
 (0)