Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
P
poc-fe
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
poc
poc-fe
Commits
76d094c0
You need to sign in or sign up before continuing.
Commit
76d094c0
authored
Oct 31, 2024
by
shirlyn.guo
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 记忆变量
parent
287eb221
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
799 additions
and
20 deletions
+799
-20
memory-variableLabels.png
src/assets/images/memory-variableLabels.png
+0
-0
zh-cn.yaml
src/locales/langs/zh-cn.yaml
+34
-0
zh-hk.yaml
src/locales/langs/zh-hk.yaml
+34
-0
personal-app-config.ts
src/store/types/personal-app-config.ts
+6
-1
app-preview.vue
...nal-space/personal-app-setting/components/app-preview.vue
+46
-3
app-setting.vue
...nal-space/personal-app-setting/components/app-setting.vue
+207
-16
memory-preview-modal.vue
.../personal-app-setting/components/memory-preview-modal.vue
+91
-0
memory-variable-modal.vue
...personal-app-setting/components/memory-variable-modal.vue
+347
-0
locales.d.ts
types/locales.d.ts
+34
-0
No files found.
src/assets/images/memory-variableLabels.png
0 → 100644
View file @
76d094c0
40.5 KB
src/locales/langs/zh-cn.yaml
View file @
76d094c0
...
...
@@ -38,6 +38,7 @@ common_module:
copy_success_message
:
'
复制成功'
delete_success_message
:
'
删除成功'
save_success_message
:
'
保存成功'
save_fail_message
:
'
保存失败'
edit_success_message
:
'
编辑成功'
publish_success_message
:
'
发布成功'
clear_success_message
:
'
清空成功'
...
...
@@ -61,6 +62,7 @@ common_module:
collect_successfully
:
'
收藏成功'
collect_unsubscribed
:
'
已取消收藏'
cancel
:
'
取消'
preservation
:
'
保存'
dialogue_module
:
continue_question_message
:
'
你可以继续提问'
...
...
@@ -223,6 +225,38 @@ personal_space_module:
continuous_question_default_desc
:
'
根据用户最近一轮对话,在回复后自动提供3个提问建议。'
continuous_question_close
:
'
关闭'
continuous_question_close_desc
:
'
在每轮回复后,不会提供用户任何提问建议'
memory
:
'
记忆'
add_memory_variable
:
'
添加记忆变量'
memory_variable
:
'
记忆变量'
memory_message
:
'
开发者可根据应用设定记忆变量,应用用户在对话过程中可以录入变量内容,每个变量支持存储一维、单个数据。
在对话过程中,应用将依据存储的变量值进行答复。下面以「旅游助手」为例:'
memory_variable_message
:
'
记录聊天对话中的一维、单个的应用信息或用户信息,能让智能体回答更加个性化。'
memory_variable_action_edit
:
'
编辑'
memory_variable_action_copy
:
'
复制名称'
variable_name
:
'
变量名称'
variable_value
:
'
变量值'
memory_variable_modal
:
edit_memory_variable
:
'
编辑记忆变量'
memory_variable_message_tip
:
'
删除变量或修改变量名称/描述,应用更新发布后会导致应用用户对应的变量数据被删除或重置为默认值,请谨慎操作'
memory_variable_table_name
:
'
名称'
memory_variable_table_name_tip
:
'
填写内容'
memory_variable_table_name_content
:
'
1.仅支持英文、中文'
memory_variable_table_name_length
:
'
2.长度50字以内'
memory_variable_table_default_value
:
'
默认值'
default_value_tip
:
'
开发者可以为应用用户预先设定默认值'
default_value_tip_example
:
'
实例:北京'
memory_variable_table_action
:
'
操作'
default_value_placeholder
:
'
请输入'
name_placeholder
:
'
请输入名称'
add_variable
:
'
新增变量'
memory_variable_rules
:
name_not_null
:
'
请输入名称'
name_length
:
'
名称长度不能超过50个字'
name_supports
:
'
仅支持英文和中文'
name_not_duplicated
:
'
名称不能重复'
preview
:
'
预览与调试'
...
...
src/locales/langs/zh-hk.yaml
View file @
76d094c0
...
...
@@ -38,6 +38,7 @@ common_module:
copy_success_message
:
'
複製成功'
delete_success_message
:
'
刪除成功'
save_success_message
:
'
保存成功'
save_fail_message
:
'
保存失敗'
edit_success_message
:
'
編輯成功'
publish_success_message
:
'
發佈成功'
clear_success_message
:
'
清空成功'
...
...
@@ -61,6 +62,7 @@ common_module:
collect_successfully
:
'
收藏成功'
collect_unsubscribed
:
'
已取消收藏'
cancel
:
'
取消'
preservation
:
'
保存'
dialogue_module
:
continue_question_message
:
'
你可以繼續提問'
...
...
@@ -223,6 +225,38 @@ personal_space_module:
continuous_question_default_desc
:
'
根據用戶最近一輪對話,在回覆後自動提供3個提問建議。'
continuous_question_close
:
'
關閉'
continuous_question_close_desc
:
'
在每輪迴復後,不會提供用戶任何提問建議'
memory
:
'
記憶'
add_memory_variable
:
'
添加記憶變數'
memory_variable
:
'
記憶變量'
memory_message
:
'
开发者可根据应用设定记忆变量,应用用户在对话过程中可以录入变量内容,每个变量支持存储一维、单个数据。
在对话过程中,应用将依据存储的变量值进行答复。下面以「旅游助手」为例:'
memory_variable_message
:
'
记录聊天对话中的一维、单个的应用信息或用户信息,能让智能体回答更加个性化。'
memory_variable_action_edit
:
'
編輯'
memory_variable_action_copy
:
'
複製名稱'
variable_name
:
'
变量名稱'
variable_value
:
'
变量值'
memory_variable_modal
:
edit_memory_variable
:
'
編輯記憶變數'
memory_variable_message_tip
:
'
删除變數或修改變數名稱/描述,應用更新發佈後會導致應用用戶對應的變數數據被删除或重置為預設值,請謹慎操作'
memory_variable_table_name
:
'
名稱'
memory_variable_table_name_tip
:
'
填写内容'
memory_variable_table_name_content
:
'
1.僅支持英文、中文'
memory_variable_table_name_length
:
'
2.長度50字以内'
memory_variable_table_default_value
:
'
預設值'
default_value_tip
:
'
開發者可以為應用用戶預先設定預設值'
default_value_tip_example
:
'
實例:北京'
memory_variable_table_action
:
'
操作'
default_value_placeholder
:
'
請輸入'
name_placeholder
:
'
請輸入名稱'
add_variable
:
'
新增變數'
memory_variable_rules
:
name_not_null
:
'
請求輸入名稱'
name_length
:
'
名字長度不能超過50個字'
name_supports
:
'
僅支持英文和中文'
name_not_duplicated
:
'
名稱不能重複'
preview
:
'
預覽與調試'
...
...
src/store/types/personal-app-config.ts
View file @
76d094c0
export
interface
VariableStructureItem
{
key
:
string
variableDefault
:
string
|
null
}
export
interface
PersonalAppConfigState
{
baseInfo
:
{
agentId
:
string
//应用ID
...
...
@@ -13,7 +18,7 @@ export interface PersonalAppConfigState {
continuousQuestionStatus
:
'default'
|
'close'
//追问状态
continuousQuestionSystem
:
string
// 追问提示词 customizable时必填
continuousQuestionTurn
:
number
// 追问轮次 1-5 customizable时必填
variableStructure
:
object
[]
variableStructure
:
VariableStructureItem
[]
}
knowledgeConfig
:
{
knowledgeIds
:
string
[]
//知识库ID
...
...
src/views/personal-space/personal-app-setting/components/app-preview.vue
View file @
76d094c0
...
...
@@ -6,6 +6,8 @@ import MessageList from './message-list.vue'
import
FooterInput
from
'./footer-input.vue'
import
{
fetchCreateContinueQuestions
}
from
'@/apis/agent-application'
import
{
usePersonalAppConfigStore
}
from
'@/store/modules/personal-app-config'
import
{
Brain
,
Down
}
from
'@icon-park/vue-next'
import
MemoryPreviewModal
from
'./memory-preview-modal.vue'
const
{
t
}
=
useI18n
()
...
...
@@ -19,6 +21,7 @@ const messageList = ref<ConversationMessageItem[]>([])
const
continuousQuestionStatus
=
ref
<
'default'
|
'close'
>
(
personalAppConfigStore
.
commConfig
.
continuousQuestionStatus
)
const
continuousQuestionList
=
ref
<
string
[]
>
([])
const
isShowMemoryPreviewModal
=
ref
(
false
)
function
handleAddMessageItem
(
messageItem
:
ConversationMessageItem
)
{
messageList
.
value
.
push
(
messageItem
)
...
...
@@ -67,13 +70,51 @@ function handleUpdateContinueQuestionStatus(status: 'default' | 'close') {
continuousQuestionStatus
.
value
=
status
continuousQuestionList
.
value
=
[]
}
function
handleMemoryVariable
()
{
isShowMemoryPreviewModal
.
value
=
true
}
</
script
>
<
template
>
<div
class=
"flex h-full min-w-[300px] flex-1 flex-col overflow-hidden bg-[#f2f5f9]"
>
<p
class=
"mb-[18px] px-5 py-[18px] text-base"
>
{{
t
(
'personal_space_module.agent_module.agent_setting_module.agent_config_module.preview'
)
}}
</p>
<div
class=
"flex justify-between"
>
<p
class=
"mb-[18px] px-5 py-[18px] text-base"
>
{{
t
(
'personal_space_module.agent_module.agent_setting_module.agent_config_module.preview'
)
}}
</p>
<div
v-show=
"personalAppConfigStore.commConfig.variableStructure.length !== 0"
class=
"memory-content cursor-pointer"
>
<n-popover
placement=
"bottom"
arrow-wrapper-class=
"memory-content"
trigger=
"hover"
class=
"p-[4px]! top-[-25px]"
:show-arrow=
"false"
>
<template
#
trigger
>
<div
class=
"mb-[18px] flex items-center justify-center px-5 py-[18px] text-[14px]"
>
<Brain
theme=
"outline"
size=
"16"
fill=
"#333"
/>
<div
class=
"mx-[4px]"
>
{{
t
(
'personal_space_module.agent_module.agent_setting_module.agent_config_module.memory'
)
}}
</div>
<Down
theme=
"outline"
size=
"16"
fill=
"#333"
class=
"inline"
/>
</div>
</
template
>
<div>
<div
v-show=
"personalAppConfigStore.commConfig.variableStructure !== null"
class=
"cursor-pointer px-[8px] py-[5px] hover:bg-[#f2f5f9]"
@
click=
"handleMemoryVariable"
>
{{ t('personal_space_module.agent_module.agent_setting_module.agent_config_module.memory_variable') }}
</div>
</div>
</n-popover>
</div>
</div>
<div
class=
"flex w-full flex-1 overflow-hidden"
>
<div
v-show=
"messageList.length === 0"
class=
"flex w-full"
>
...
...
@@ -102,6 +143,8 @@ function handleUpdateContinueQuestionStatus(status: 'default' | 'close') {
@
create-continue-questions=
"handleCreateContinueQuestions"
@
update-continuous-question-status=
"handleUpdateContinueQuestionStatus"
/>
<MemoryPreviewModal
v-model=
"isShowMemoryPreviewModal"
/>
</div>
</template>
...
...
src/views/personal-space/personal-app-setting/components/app-setting.vue
View file @
76d094c0
This diff is collapsed.
Click to expand it.
src/views/personal-space/personal-app-setting/components/memory-preview-modal.vue
0 → 100644
View file @
76d094c0
<
script
setup
lang=
"ts"
>
import
{
usePersonalAppConfigStore
}
from
'@/store/modules/personal-app-config'
import
{
Close
}
from
'@icon-park/vue-next'
import
{
DataTableColumns
}
from
'naive-ui'
import
{
ref
,
watch
}
from
'vue'
import
{
MemoryVariableForm
}
from
'./memory-variable-modal.vue'
import
{
useI18n
}
from
'vue-i18n'
const
{
t
}
=
useI18n
()
const
memoryVariableColumns
=
createColumns
()
const
personalAppConfigStore
=
usePersonalAppConfigStore
()
const
memoryVariableData
=
ref
([])
const
isShowMemoryPreviewModal
=
defineModel
<
boolean
>
()
function
createColumns
():
DataTableColumns
<
MemoryVariableForm
>
{
return
[
{
title
:
t
(
'personal_space_module.agent_module.agent_setting_module.agent_config_module.variable_name'
),
key
:
'key'
,
width
:
150
,
},
{
title
:
t
(
'personal_space_module.agent_module.agent_setting_module.agent_config_module.variable_value'
),
key
:
'variableDefault'
,
},
]
}
watch
(
()
=>
personalAppConfigStore
.
commConfig
.
variableStructure
,
(
newValue
)
=>
{
if
(
newValue
!==
null
)
{
memoryVariableData
.
value
=
JSON
.
parse
(
JSON
.
stringify
(
newValue
))
}
},
{
immediate
:
true
},
)
function
handlePreviewModalClose
()
{
isShowMemoryPreviewModal
.
value
=
false
}
</
script
>
<
template
>
<n-modal
v-model:show=
"isShowMemoryPreviewModal"
class=
"h-auto max-h-[720px]"
:mask-closable=
"false"
>
<div
class=
"flex flex-col items-center justify-center"
>
<div
class=
"max-h-[720px] w-[880px] rounded-lg bg-white p-[24px]"
>
<div
class=
"flex items-center justify-end text-[20px]"
>
<Close
theme=
"outline"
size=
"18"
fill=
"#00000073"
class=
"cursor-pointer"
@
click=
"handlePreviewModalClose"
/>
</div>
<div
class=
""
>
<n-tabs
type=
"line"
animated
>
<n-tab-pane
name=
"oasis"
:tab=
"t('personal_space_module.agent_module.agent_setting_module.agent_config_module.memory_variable')"
>
<div
class=
"flex max-h-[490px] justify-center overflow-y-hidden bg-[#f3f4fb]"
>
<n-data-table
:columns=
"memoryVariableColumns"
:max-height=
"440"
:data=
"memoryVariableData"
/>
</div>
</n-tab-pane>
</n-tabs>
</div>
</div>
</div>
</n-modal>
</
template
>
<
style
lang=
"scss"
scoped
>
:deep
(
.n-tabs
)
{
.n-tabs-tab
{
font-size
:
20px
;
}
.n-tabs-bar
{
background-color
:
#fff
;
}
.n-tabs-nav
{
&
.n-tabs-nav--line-type
{
&
.n-tabs-nav--top
{
.n-tabs-nav-scroll-content
{
border-bottom
:
none
;
}
}
}
}
}
</
style
>
src/views/personal-space/personal-app-setting/components/memory-variable-modal.vue
0 → 100644
View file @
76d094c0
This diff is collapsed.
Click to expand it.
types/locales.d.ts
View file @
76d094c0
...
...
@@ -39,6 +39,7 @@ declare namespace I18n {
copy_success_message
:
string
delete_success_message
:
string
save_success_message
:
string
save_fail_message
:
string
edit_success_message
:
string
publish_success_message
:
string
clear_success_message
:
string
...
...
@@ -62,6 +63,7 @@ declare namespace I18n {
collect_successfully
:
string
collect_unsubscribed
:
string
cancel
:
string
preservation
:
string
dialogue_module
:
{
continue_question_message
:
string
...
...
@@ -225,6 +227,38 @@ declare namespace I18n {
continuous_question_default_desc
:
string
continuous_question_close
:
string
continuous_question_close_desc
:
string
memory
:
string
add_memory_variable
:
string
memory_variable
:
string
memory_message
:
string
memory_variable_message
:
string
memory_variable_action_edit
:
string
memory_variable_action_copy
:
string
variable_name
:
string
variable_value
:
string
memory_variable_modal
:
{
edit_memory_variable
:
string
memory_variable_message_tip
:
string
memory_variable_table_name
:
string
memory_variable_table_name_tip
:
string
memory_variable_table_name_content
:
string
memory_variable_table_name_length
:
string
memory_variable_table_default_value
:
string
default_value_tip
:
string
default_value_tip_example
:
string
memory_variable_table_action
:
string
default_value_placeholder
:
string
name_placeholder
:
string
add_variable
:
string
memory_variable_rules
:
{
name_not_null
:
string
name_length
:
string
name_supports
:
string
name_not_duplicated
:
string
}
}
preview
:
string
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment