feat: remove assistant description

This commit is contained in:
kangfenmao 2024-07-14 11:59:56 +08:00
parent de17df9f14
commit 31029b0bfd
10 changed files with 11 additions and 56 deletions

View File

@ -16,7 +16,6 @@ interface Props extends AssistantSettingPopupShowParams {
const AssistantSettingPopupContainer: React.FC<Props> = ({ assistant, resolve }) => { const AssistantSettingPopupContainer: React.FC<Props> = ({ assistant, resolve }) => {
const [name, setName] = useState(assistant.name) const [name, setName] = useState(assistant.name)
const [description, setDescription] = useState(assistant.description)
const [prompt, setPrompt] = useState(assistant.prompt) const [prompt, setPrompt] = useState(assistant.prompt)
const [open, setOpen] = useState(true) const [open, setOpen] = useState(true)
const { t } = useTranslation() const { t } = useTranslation()
@ -30,7 +29,7 @@ const AssistantSettingPopupContainer: React.FC<Props> = ({ assistant, resolve })
} }
const onClose = () => { const onClose = () => {
resolve({ ...assistant, name, description, prompt }) resolve({ ...assistant, name, prompt })
} }
return ( return (
@ -41,15 +40,6 @@ const AssistantSettingPopupContainer: React.FC<Props> = ({ assistant, resolve })
value={name} value={name}
onChange={(e) => setName(e.target.value)} onChange={(e) => setName(e.target.value)}
/> />
<Box mt={8} mb={8}>
{t('common.description')}
</Box>
<TextArea
rows={2}
placeholder={t('common.assistant') + t('common.description')}
value={description}
onChange={(e) => setDescription(e.target.value)}
/>
<Box mt={8} mb={8}> <Box mt={8} mb={8}>
{t('common.prompt')} {t('common.prompt')}
</Box> </Box>

View File

@ -4,14 +4,12 @@ export const SYSTEM_ASSISTANTS: SystemAssistant[] = [
{ {
id: '6B1D8E9F-9B7F-4E2B-8FBB-0F5B6F7B0D29', id: '6B1D8E9F-9B7F-4E2B-8FBB-0F5B6F7B0D29',
name: '文章总结', name: '文章总结',
description: '自动总结文章内容,帮助读者从中获取更多的信息',
prompt: '总结下面的文章,给出总结、摘要、观点三个部分内容,其中观点部分要使用列表列出,使用 Markdown 回复', prompt: '总结下面的文章,给出总结、摘要、观点三个部分内容,其中观点部分要使用列表列出,使用 Markdown 回复',
group: '文章' group: '文章'
}, },
{ {
id: '6B1D8E9F-9B7F-4E2B-8FBB-0F5B6F7B0D30', id: '6B1D8E9F-9B7F-4E2B-8FBB-0F5B6F7B0D30',
name: '论文', name: '论文',
description: '根据主题撰写内容翔实、有信服力的论文',
prompt: prompt:
'我希望你能作为一名学者行事。你将负责研究一个你选择的主题,并将研究结果以论文或文章的形式呈现出来。你的任务是确定可靠的来源,以结构良好的方式组织材料,并以引用的方式准确记录。', '我希望你能作为一名学者行事。你将负责研究一个你选择的主题,并将研究结果以论文或文章的形式呈现出来。你的任务是确定可靠的来源,以结构良好的方式组织材料,并以引用的方式准确记录。',
group: '写作' group: '写作'
@ -19,7 +17,6 @@ export const SYSTEM_ASSISTANTS: SystemAssistant[] = [
{ {
id: '6B1D8E9F-9B7F-4E2B-8FBB-0F5B6F7B0D40', id: '6B1D8E9F-9B7F-4E2B-8FBB-0F5B6F7B0D40',
name: '翻译成中文', name: '翻译成中文',
description: '你是一个好用的翻译助手, 可以把任何语言翻译成中文',
prompt: prompt:
'你是一个好用的翻译助手。请将我的英文翻译成中文,将所有非中文的翻译成中文。我发给你所有的话都是需要翻译的内容,你只需要回答翻译结果。翻译结果请符合中文的语言习惯。', '你是一个好用的翻译助手。请将我的英文翻译成中文,将所有非中文的翻译成中文。我发给你所有的话都是需要翻译的内容,你只需要回答翻译结果。翻译结果请符合中文的语言习惯。',
group: '翻译' group: '翻译'
@ -27,7 +24,6 @@ export const SYSTEM_ASSISTANTS: SystemAssistant[] = [
{ {
id: '6B1D8E9F-9B7F-4E2B-8FBB-0F5B6F7B0D41', id: '6B1D8E9F-9B7F-4E2B-8FBB-0F5B6F7B0D41',
name: '翻译成英文', name: '翻译成英文',
description: '你是一个好用的翻译助手, 可以把任何语言翻译成英文',
prompt: prompt:
'你是一个好用的翻译助手。请将我的中文翻译成英文,将所有非中文的翻译成英文。我发给你所有的话都是需要翻译的内容,你只需要回答翻译结果。翻译结果请符合英文的语言习惯。', '你是一个好用的翻译助手。请将我的中文翻译成英文,将所有非中文的翻译成英文。我发给你所有的话都是需要翻译的内容,你只需要回答翻译结果。翻译结果请符合英文的语言习惯。',
group: '翻译' group: '翻译'
@ -35,7 +31,6 @@ export const SYSTEM_ASSISTANTS: SystemAssistant[] = [
{ {
id: '43CEDACF-C9EB-431B-848C-4D08EC26EB90', id: '43CEDACF-C9EB-431B-848C-4D08EC26EB90',
name: '软件工程师', name: '软件工程师',
description: '高级软件工程师,可以解答各种技术问题',
prompt: prompt:
'你是一个高级软件工程师,你需要帮我解答各种技术难题、设计技术方案以及编写代码。你编写的代码必须可以正常运行,而且没有任何 Bug 和其他问题。', '你是一个高级软件工程师,你需要帮我解答各种技术难题、设计技术方案以及编写代码。你编写的代码必须可以正常运行,而且没有任何 Bug 和其他问题。',
group: '软件工程师' group: '软件工程师'
@ -43,7 +38,6 @@ export const SYSTEM_ASSISTANTS: SystemAssistant[] = [
{ {
id: '6B1D8E9F-9B7F-4E2B-8FBB-0F5B6F7B0D2A', id: '6B1D8E9F-9B7F-4E2B-8FBB-0F5B6F7B0D2A',
name: '前端工程师', name: '前端工程师',
description: '高级前端工程师,可以解答各种技术问题',
prompt: prompt:
'你擅长使用 TypeScript, JavaScript, HMLT, CSS 等编程语言。同时你还会使用 Node.js 及各种包来解决开发中遇到的问题。你还会使用 React, Vue 等前端框架。对于我的问题希望你能给出具体的代码示例,最好能够封装成一个函数方便我复制运行测试。', '你擅长使用 TypeScript, JavaScript, HMLT, CSS 等编程语言。同时你还会使用 Node.js 及各种包来解决开发中遇到的问题。你还会使用 React, Vue 等前端框架。对于我的问题希望你能给出具体的代码示例,最好能够封装成一个函数方便我复制运行测试。',
group: '软件工程师' group: '软件工程师'
@ -51,7 +45,6 @@ export const SYSTEM_ASSISTANTS: SystemAssistant[] = [
{ {
id: '6B1D8E9F-9B7F-4E2B-8FBB-0F5B6F7B0D2B', id: '6B1D8E9F-9B7F-4E2B-8FBB-0F5B6F7B0D2B',
name: '后端工程师', name: '后端工程师',
description: '高级后端工程师,可以解答各种技术问题',
prompt: prompt:
'高级后端工程师技术难题解答服务器架构数据库优化API设计网络安全代码审查性能调优微服务分布式系统容器技术持续集成/持续部署(CI/CD)。', '高级后端工程师技术难题解答服务器架构数据库优化API设计网络安全代码审查性能调优微服务分布式系统容器技术持续集成/持续部署(CI/CD)。',
group: '软件工程师' group: '软件工程师'
@ -59,91 +52,78 @@ export const SYSTEM_ASSISTANTS: SystemAssistant[] = [
{ {
id: '6B1D8E9F-9B7F-4E2B-8FBB-0F5B6F7B0D2D', id: '6B1D8E9F-9B7F-4E2B-8FBB-0F5B6F7B0D2D',
name: '测试工程师', name: '测试工程师',
description: '高级测试工程师,可以解答各种测试相关问题',
prompt: '你是一个高级测试工程师,你需要帮我解答各种技术难题', prompt: '你是一个高级测试工程师,你需要帮我解答各种技术难题',
group: '软件工程师' group: '软件工程师'
}, },
{ {
id: '6B1D8E9F-9B7F-4E2B-8FBB-0F5B6F7B0D2E', id: '6B1D8E9F-9B7F-4E2B-8FBB-0F5B6F7B0D2E',
name: 'Python 工程师', name: 'Python 工程师',
description: '你是一个高级Python工程师你需要帮我解答各种技术难题',
prompt: '你是一个高级Python工程师你需要帮我解答各种技术难题', prompt: '你是一个高级Python工程师你需要帮我解答各种技术难题',
group: '编程语言' group: '编程语言'
}, },
{ {
id: '6B1D8E9F-9B7F-4E2B-8FBB-0F5B6F7B0D2F', id: '6B1D8E9F-9B7F-4E2B-8FBB-0F5B6F7B0D2F',
name: 'Java 工程师', name: 'Java 工程师',
description: '你是一个高级Java工程师你需要帮我解答各种技术难题',
prompt: '你是一个高级Java工程师你需要帮我解答各种技术难题', prompt: '你是一个高级Java工程师你需要帮我解答各种技术难题',
group: '编程语言' group: '编程语言'
}, },
{ {
id: '6B1D8E9F-9B7F-4E2B-8FBB-0F5B6F7B0D30', id: '6B1D8E9F-9B7F-4E2B-8FBB-0F5B6F7B0D30',
name: 'C# 工程师', name: 'C# 工程师',
description: '你是一个高级C#工程师,你需要帮我解答各种技术难题',
prompt: '你是一个高级C#工程师,你需要帮我解答各种技术难题', prompt: '你是一个高级C#工程师,你需要帮我解答各种技术难题',
group: '编程语言' group: '编程语言'
}, },
{ {
id: '6B1D8E9F-9B7F-4E2B-8FBB-0F5B6F7B0D31', id: '6B1D8E9F-9B7F-4E2B-8FBB-0F5B6F7B0D31',
name: 'C++ 工程师', name: 'C++ 工程师',
description: '你是一个高级C++工程师,你需要帮我解答各种技术难题',
prompt: '你是一个高级C++工程师,你需要帮我解答各种技术难题', prompt: '你是一个高级C++工程师,你需要帮我解答各种技术难题',
group: '编程语言' group: '编程语言'
}, },
{ {
id: '6B1D8E9F-9B7F-4E2B-8FBB-0F5B6F7B0D32', id: '6B1D8E9F-9B7F-4E2B-8FBB-0F5B6F7B0D32',
name: 'C 工程师', name: 'C 工程师',
description: '你是一个高级C工程师你需要帮我解答各种技术难题',
prompt: '你是一个高级C工程师你需要帮我解答各种技术难题', prompt: '你是一个高级C工程师你需要帮我解答各种技术难题',
group: '编程语言' group: '编程语言'
}, },
{ {
id: '6B1D8E9F-9B7F-4E2B-8FBB-0F5B6F7B0D33', id: '6B1D8E9F-9B7F-4E2B-8FBB-0F5B6F7B0D33',
name: 'Go 工程师', name: 'Go 工程师',
description: '你是一个高级Go工程师你需要帮我解答各种技术难题',
prompt: '你是一个高级Go工程师你需要帮我解答各种技术难题', prompt: '你是一个高级Go工程师你需要帮我解答各种技术难题',
group: '编程语言' group: '编程语言'
}, },
{ {
id: '6B1D8E9F-9B7F-4E2B-8FBB-0F5B6F7B0D34', id: '6B1D8E9F-9B7F-4E2B-8FBB-0F5B6F7B0D34',
name: 'Rust 工程师', name: 'Rust 工程师',
description: '你是一个高级Rust工程师你需要帮我解答各种技术难题',
prompt: '你是一个高级Rust工程师你需要帮我解答各种技术难题', prompt: '你是一个高级Rust工程师你需要帮我解答各种技术难题',
group: '编程语言' group: '编程语言'
}, },
{ {
id: '6B1D8E9F-9B7F-4E2B-8FBB-0F5B6F7B0D35', id: '6B1D8E9F-9B7F-4E2B-8FBB-0F5B6F7B0D35',
name: 'PHP 工程师', name: 'PHP 工程师',
description: '你是一个高级PHP工程师你需要帮我解答各种技术难题',
prompt: '你是一个高级PHP工程师你需要帮我解答各种技术难题', prompt: '你是一个高级PHP工程师你需要帮我解答各种技术难题',
group: '编程语言' group: '编程语言'
}, },
{ {
id: '6B1D8E9F-9B7F-4E2B-8FBB-0F5B6F7B0D36', id: '6B1D8E9F-9B7F-4E2B-8FBB-0F5B6F7B0D36',
name: 'Ruby 工程师', name: 'Ruby 工程师',
description: '你是一个高级Ruby工程师你需要帮我解答各种技术难题',
prompt: '你是一个高级Ruby工程师你需要帮我解答各种技术难题', prompt: '你是一个高级Ruby工程师你需要帮我解答各种技术难题',
group: '编程语言' group: '编程语言'
}, },
{ {
id: '6B1D8E9F-9B7F-4E2B-8FBB-0F5B6F7B0D37', id: '6B1D8E9F-9B7F-4E2B-8FBB-0F5B6F7B0D37',
name: 'Swift 工程师', name: 'Swift 工程师',
description: '你是一个高级Swift工程师你需要帮我解答各种技术难题',
prompt: '你是一个高级Swift工程师你需要帮我解答各种技术难题', prompt: '你是一个高级Swift工程师你需要帮我解答各种技术难题',
group: '编程语言' group: '编程语言'
}, },
{ {
id: '6B1D8E9F-9B7F-4E2B-8FBB-0F5B6F7B0D38', id: '6B1D8E9F-9B7F-4E2B-8FBB-0F5B6F7B0D38',
name: 'Kotlin 工程师', name: 'Kotlin 工程师',
description: '你是一个高级Kotlin工程师你需要帮我解答各种技术难题',
prompt: '你是一个高级Kotlin工程师你需要帮我解答各种技术难题', prompt: '你是一个高级Kotlin工程师你需要帮我解答各种技术难题',
group: '编程语言' group: '编程语言'
}, },
{ {
id: '6B1D8E9F-9B7F-4E2B-8FBB-0F5B6F7B0D39', id: '6B1D8E9F-9B7F-4E2B-8FBB-0F5B6F7B0D39',
name: 'Dart 工程师', name: 'Dart 工程师',
description: '你是一个高级Dart工程师你需要帮我解答各种技术难题',
prompt: '你是一个高级Dart工程师你需要帮我解答各种技术难题', prompt: '你是一个高级Dart工程师你需要帮我解答各种技术难题',
group: '编程语言' group: '编程语言'
} }

View File

@ -104,6 +104,7 @@ const resources = {
'models.add.group_name': 'Group Name', 'models.add.group_name': 'Group Name',
'models.add.group_name.tooltip': 'Optional e.g. ChatGPT', 'models.add.group_name.tooltip': 'Optional e.g. ChatGPT',
'models.add.group_name.placeholder': 'Optional e.g. ChatGPT', 'models.add.group_name.placeholder': 'Optional e.g. ChatGPT',
'models.empty': 'No models found',
'assistant.title': 'Default Assistant', 'assistant.title': 'Default Assistant',
'about.description': 'A powerful AI assistant for producer' 'about.description': 'A powerful AI assistant for producer'
} }
@ -149,7 +150,7 @@ const resources = {
}, },
assistant: { assistant: {
'default.name': '默认助手', 'default.name': '默认助手',
'default.description': '你可以随时随地和我聊天', 'default.description': '你好,我是默认助手。你可以立刻开始跟我聊天。',
'default.topic.name': '默认话题', 'default.topic.name': '默认话题',
'topics.title': '话题', 'topics.title': '话题',
'topics.hide_topics': '隐藏话题', 'topics.hide_topics': '隐藏话题',
@ -210,6 +211,7 @@ const resources = {
'models.add.group_name': '分组名称', 'models.add.group_name': '分组名称',
'models.add.group_name.tooltip': '例如 ChatGPT', 'models.add.group_name.tooltip': '例如 ChatGPT',
'models.add.group_name.placeholder': '例如 ChatGPT', 'models.add.group_name.placeholder': '例如 ChatGPT',
'models.empty': '没有模型',
'assistant.title': '默认助手', 'assistant.title': '默认助手',
'about.description': '一个为创造者而生的 AI 助手' 'about.description': '一个为创造者而生的 AI 助手'
} }

View File

@ -72,7 +72,6 @@ const AppsPage: FC = () => {
</Tooltip> </Tooltip>
)} )}
</AssistantHeader> </AssistantHeader>
<AssistantCardDescription>{assistant.description}</AssistantCardDescription>
<AssistantCardPrompt>{assistant.prompt}</AssistantCardPrompt> <AssistantCardPrompt>{assistant.prompt}</AssistantCardPrompt>
</AssistantCard> </AssistantCard>
</Col> </Col>
@ -116,14 +115,6 @@ const AssistantHeader = styled.div`
align-items: center; align-items: center;
` `
const AssistantCardDescription = styled.div`
font-size: 12px;
color: #888;
margin-top: 10px;
margin-bottom: 10px;
line-height: 1.5;
`
const AssistantCardPrompt = styled.div` const AssistantCardPrompt = styled.div`
color: white; color: white;
margin-top: 10px; margin-top: 10px;

View File

@ -93,7 +93,6 @@ const Assistants: FC<Props> = ({ activeAssistant, setActiveAssistant, onCreateAs
onClick={() => setActiveAssistant(assistant)} onClick={() => setActiveAssistant(assistant)}
className={assistant.id === activeAssistant?.id ? 'active' : ''}> className={assistant.id === activeAssistant?.id ? 'active' : ''}>
<AssistantName>{assistant.name}</AssistantName> <AssistantName>{assistant.name}</AssistantName>
<AssistantLastMessage>{assistant.description}</AssistantLastMessage>
</AssistantItem> </AssistantItem>
</Dropdown> </Dropdown>
</div> </div>
@ -115,14 +114,17 @@ const Container = styled.div`
max-width: var(--assistants-width); max-width: var(--assistants-width);
border-right: 0.5px solid var(--color-border); border-right: 0.5px solid var(--color-border);
height: calc(100vh - var(--navbar-height)); height: calc(100vh - var(--navbar-height));
padding: 10px;
overflow-y: auto; overflow-y: auto;
` `
const AssistantItem = styled.div` const AssistantItem = styled.div`
display: flex; display: flex;
flex-direction: column; flex-direction: column;
padding: 10px 15px; padding: 8px 10px;
position: relative; position: relative;
border-radius: 5px;
margin-bottom: 5px;
cursor: pointer; cursor: pointer;
.anticon { .anticon {
display: none; display: none;

View File

@ -27,7 +27,7 @@ const Messages: FC<Props> = ({ assistant, topic }) => {
const assistantDefaultMessage: Message = { const assistantDefaultMessage: Message = {
id: 'assistant', id: 'assistant',
role: 'assistant', role: 'assistant',
content: assistant.description, content: assistant.prompt || t('assistant.default.description'),
assistantId: assistant.id, assistantId: assistant.id,
topicId: topic.id, topicId: topic.id,
status: 'pending', status: 'pending',

View File

@ -20,13 +20,6 @@ const AssistantSettings: FC = () => {
value={defaultAssistant.name} value={defaultAssistant.name}
onChange={(e) => updateDefaultAssistant({ ...defaultAssistant, name: e.target.value })} onChange={(e) => updateDefaultAssistant({ ...defaultAssistant, name: e.target.value })}
/> />
<SettingSubtitle>{t('common.description')}</SettingSubtitle>
<TextArea
rows={2}
placeholder={t('common.assistant') + t('common.description')}
value={defaultAssistant.description}
onChange={(e) => updateDefaultAssistant({ ...defaultAssistant, description: e.target.value })}
/>
<SettingSubtitle>{t('common.prompt')}</SettingSubtitle> <SettingSubtitle>{t('common.prompt')}</SettingSubtitle>
<TextArea <TextArea
rows={4} rows={4}

View File

@ -141,7 +141,7 @@ const PopupContainer: React.FC<Props> = ({ provider: _provider, resolve }) => {
})} })}
</div> </div>
))} ))}
{isEmpty(list) && <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} description="No models" />} {isEmpty(list) && <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} description={t('settings.models.empty')} />}
</ListContainer> </ListContainer>
</Modal> </Modal>
) )
@ -150,7 +150,7 @@ const PopupContainer: React.FC<Props> = ({ provider: _provider, resolve }) => {
const onShowModelInfo = (model: Model) => { const onShowModelInfo = (model: Model) => {
window.modal.info({ window.modal.info({
title: model.name, title: model.name,
content: model.description, content: model?.description,
icon: null, icon: null,
maskClosable: true maskClosable: true
}) })

View File

@ -7,7 +7,6 @@ export function getDefaultAssistant(): Assistant {
return { return {
id: 'default', id: 'default',
name: i18next.t('assistant.default.name'), name: i18next.t('assistant.default.name'),
description: i18next.t('assistant.default.description'),
prompt: '', prompt: '',
topics: [getDefaultTopic()] topics: [getDefaultTopic()]
} }

View File

@ -3,7 +3,6 @@ import OpenAI from 'openai'
export type Assistant = { export type Assistant = {
id: string id: string
name: string name: string
description: string
prompt: string prompt: string
topics: Topic[] topics: Topic[]
model?: Model model?: Model
@ -55,7 +54,6 @@ export type Model = {
export type SystemAssistant = { export type SystemAssistant = {
id: string id: string
name: string name: string
description: string
prompt: string prompt: string
group: string group: string
} }