feat: node prompt version (#4141)

* feat: node prompt version

* fix

* delete unused code

* fix

* fix code
This commit is contained in:
heheer
2025-03-19 21:46:57 +08:00
committed by archer
parent 6a4eada85b
commit 8eec8566db
17 changed files with 206 additions and 107 deletions

View File

@@ -14,8 +14,8 @@ import { useSystemStore } from '@/web/common/system/useSystemStore';
import AIModelSelector from '@/components/Select/AIModelSelector';
import CustomPromptEditor from '@fastgpt/web/components/common/Textarea/CustomPromptEditor';
import {
PROMPT_QUESTION_GUIDE,
PROMPT_QUESTION_GUIDE_FOOTER
getQuestionGuideFooterPrompt,
getQuestionGuidePrompt
} from '@fastgpt/global/core/ai/prompt/agent';
// question generator config
@@ -38,7 +38,7 @@ const QGConfig = ({
return (
<Flex alignItems={'center'}>
<MyIcon name={'core/chat/QGFill'} mr={2} w={'20px'} />
<FormLabel>{t('common:core.app.Question Guide')}</FormLabel>
<FormLabel color={'myGray.600'}>{t('common:core.app.Question Guide')}</FormLabel>
<ChatFunctionTip type={'nextQuestion'} />
<Box flex={1} />
<MyTooltip label={t('app:config_question_guide')}>
@@ -168,7 +168,7 @@ const QGConfigModal = ({
}
}}
>
{customPrompt || PROMPT_QUESTION_GUIDE}
{customPrompt || getQuestionGuidePrompt()}
</Box>
</Box>
</>
@@ -178,8 +178,8 @@ const QGConfigModal = ({
{isOpenCustomPrompt && (
<CustomPromptEditor
defaultValue={customPrompt}
defaultPrompt={PROMPT_QUESTION_GUIDE}
footerPrompt={PROMPT_QUESTION_GUIDE_FOOTER}
defaultPrompt={getQuestionGuidePrompt()}
footerPrompt={getQuestionGuideFooterPrompt()}
onChange={(e) => {
onChange({
...value,

View File

@@ -36,9 +36,9 @@ import JsonEditor from '@fastgpt/web/components/common/Textarea/JsonEditor';
import MyMenu from '@fastgpt/web/components/common/MyMenu';
import { useSystemStore } from '@/web/common/system/useSystemStore';
import QuestionTip from '@fastgpt/web/components/common/MyTooltip/QuestionTip';
import { Prompt_CQJson, Prompt_ExtractJson } from '@fastgpt/global/core/ai/prompt/agent';
import MyModal from '@fastgpt/web/components/common/MyModal';
import FormLabel from '@fastgpt/web/components/common/MyBox/FormLabel';
import { getCQPrompt, getExtractJsonPrompt } from '@fastgpt/global/core/ai/prompt/agent';
export const AddModelButton = ({
onCreate,
@@ -677,7 +677,9 @@ export const ModelEditModal = ({
<HStack spacing={1}>
<Box>{t('account:model.custom_cq_prompt')}</Box>
<QuestionTip
label={t('account:model.custom_cq_prompt_tip', { prompt: Prompt_CQJson })}
label={t('account:model.custom_cq_prompt_tip', {
prompt: getCQPrompt()
})}
/>
</HStack>
</Td>
@@ -691,7 +693,7 @@ export const ModelEditModal = ({
<Box>{t('account:model.custom_extract_prompt')}</Box>
<QuestionTip
label={t('account:model.custom_extract_prompt_tip', {
prompt: Prompt_ExtractJson
prompt: getExtractJsonPrompt()
})}
/>
</HStack>

View File

@@ -10,7 +10,9 @@ import MyTooltip from '@fastgpt/web/components/common/MyTooltip';
import {
Prompt_userQuotePromptList,
Prompt_QuoteTemplateList,
Prompt_systemQuotePromptList
Prompt_systemQuotePromptList,
getQuoteTemplate,
getQuotePrompt
} from '@fastgpt/global/core/ai/prompt/AIChat';
import PromptEditor from '@fastgpt/web/components/common/Textarea/PromptEditor';
import PromptTemplate from '@/components/PromptTemplate';
@@ -48,6 +50,8 @@ const EditModal = ({ onClose, ...props }: RenderInputProps & { onClose: () => vo
const { t } = useTranslation();
const onChangeNode = useContextSelector(WorkflowContext, (v) => v.onChangeNode);
const nodeList = useContextSelector(WorkflowContext, (v) => v.nodeList);
const node = nodeList.find((item) => item.id === nodeId);
const nodeVersion = node?.version;
const { watch, setValue, handleSubmit } = useForm({
defaultValues: {
@@ -219,7 +223,7 @@ const EditModal = ({ onClose, ...props }: RenderInputProps & { onClose: () => vo
<QuestionTip
ml={1}
label={t('workflow:quote_content_tip', {
default: Prompt_QuoteTemplateList[0].value
default: getQuoteTemplate(nodeVersion)
})}
></QuestionTip>
<Box flex={1} />
@@ -254,7 +258,7 @@ const EditModal = ({ onClose, ...props }: RenderInputProps & { onClose: () => vo
<QuestionTip
ml={1}
label={t('workflow:quote_prompt_tip', {
default: quotePromptTemplates[0].value
default: getQuotePrompt(nodeVersion, aiChatQuoteRole)
})}
></QuestionTip>
</Flex>
@@ -263,7 +267,7 @@ const EditModal = ({ onClose, ...props }: RenderInputProps & { onClose: () => vo
title={t('common:core.app.Quote prompt')}
minH={300}
placeholder={t('workflow:quote_prompt_tip', {
default: quotePromptTemplates[0].value
default: getQuotePrompt(nodeVersion, aiChatQuoteRole)
})}
value={aiChatQuotePrompt}
onChange={(e) => {
@@ -288,10 +292,10 @@ const EditModal = ({ onClose, ...props }: RenderInputProps & { onClose: () => vo
onSuccess={(e) => {
const quoteVal = e.value;
const promptVal = quotePromptTemplates.find((item) => item.title === e.title)?.value;
const promptVal = quotePromptTemplates.find((item) => item.title === e.title)?.value!;
setValue('quoteTemplate', quoteVal);
setValue('quotePrompt', promptVal);
setValue('quoteTemplate', Object.values(quoteVal)[0]);
setValue('quotePrompt', Object.values(promptVal)[0]);
}}
/>
)}

View File

@@ -35,7 +35,7 @@ import {
import { DatasetSearchModule } from '@fastgpt/global/core/workflow/template/system/datasetSearch';
import { i18nT } from '@fastgpt/web/i18n/utils';
import {
Input_Template_File_Link_Prompt,
Input_Template_File_Link,
Input_Template_UserChatInput
} from '@fastgpt/global/core/workflow/template/input';
import { workflowStartNodeId } from './constants';
@@ -175,7 +175,7 @@ export function form2AppWorkflow(
value: selectedDatasets?.length > 0 ? [datasetNodeId, 'quoteQA'] : undefined
},
{
...Input_Template_File_Link_Prompt,
...Input_Template_File_Link,
value: [[workflowStartNodeId, NodeOutputKeyEnum.userFiles]]
},
{
@@ -502,7 +502,7 @@ export function form2AppWorkflow(
value: formData.aiSettings.maxHistories
},
{
...Input_Template_File_Link_Prompt,
...Input_Template_File_Link,
value: [[workflowStartNodeId, NodeOutputKeyEnum.userFiles]]
},
{