This commit is contained in:
Archer
2023-11-28 19:28:46 +08:00
committed by GitHub
parent e765c3bf95
commit a74e1d7166
75 changed files with 1139 additions and 417 deletions

View File

@@ -2,16 +2,15 @@ export type FeConfigsType = {
show_emptyChat?: boolean;
show_register?: boolean;
show_appStore?: boolean;
show_contact?: boolean;
show_git?: boolean;
show_pay?: boolean;
show_openai_account?: boolean;
show_promotion?: boolean;
hide_app_flow?: boolean;
concatMd?: string;
docUrl?: string;
openAPIDocUrl?: string;
systemTitle?: string;
authorText?: string;
googleClientVerKey?: string;
isPlus?: boolean;
oauth?: {

View File

@@ -26,6 +26,14 @@ export type VectorModelItemType = {
maxToken: number;
};
export type ReRankModelItemType = {
model: string;
name: string;
price: number;
requestUrl?: string;
requestAuth?: string;
};
export type AudioSpeechModelType = {
model: string;
name: string;

View File

@@ -4,7 +4,8 @@ import type {
FunctionModelItemType,
VectorModelItemType,
AudioSpeechModelType,
WhisperModelType
WhisperModelType,
ReRankModelItemType
} from './model.d';
export const defaultChatModels: ChatModelItemType[] = [
@@ -117,6 +118,8 @@ export const defaultVectorModels: VectorModelItemType[] = [
}
];
export const defaultReRankModels: ReRankModelItemType[] = [];
export const defaultAudioSpeechModels: AudioSpeechModelType[] = [
{
model: 'tts-1',

View File

@@ -4,6 +4,7 @@ import { PermissionTypeEnum } from '../../support/permission/constant';
import type { AIChatModuleProps, DatasetModuleProps } from '../module/node/type.d';
import { VariableInputEnum } from '../module/constants';
import { SelectedDatasetType } from '../module/api';
import { DatasetSearchModeEnum } from '../dataset/constant';
export interface AppSchema {
_id: string;
@@ -18,6 +19,7 @@ export interface AppSchema {
updateTime: number;
modules: ModuleItemType[];
permission: `${PermissionTypeEnum}`;
inited?: boolean;
}
export type AppListItemType = {
@@ -62,7 +64,7 @@ export type AppSimpleEditFormType = {
datasets: SelectedDatasetType;
similarity: number;
limit: number;
rerank: boolean;
searchMode: `${DatasetSearchModeEnum}`;
searchEmptyText: string;
};
userGuide: {
@@ -106,7 +108,7 @@ export type AppSimpleEditConfigTemplateType = {
datasets?: boolean;
similarity?: boolean;
limit?: boolean;
rerank?: boolean;
searchMode: `${DatasetSearchModeEnum}`;
searchEmptyText?: boolean;
};
userGuide?: {

View File

@@ -5,6 +5,7 @@ import type { FlowNodeInputItemType } from '../module/node/type.d';
import { getGuideModule, splitGuideModule } from '../module/utils';
import { defaultChatModels } from '../ai/model';
import { ModuleItemType } from '../module/type.d';
import { DatasetSearchModeEnum } from '../dataset/constant';
export const getDefaultAppForm = (templateId = 'fastgpt-universal'): AppSimpleEditFormType => {
const defaultChatModel = defaultChatModels[0];
@@ -25,7 +26,7 @@ export const getDefaultAppForm = (templateId = 'fastgpt-universal'): AppSimpleEd
similarity: 0.4,
limit: 5,
searchEmptyText: '',
rerank: false
searchMode: DatasetSearchModeEnum.embedding
},
userGuide: {
welcomeText: '',
@@ -91,10 +92,9 @@ export const appModules2Form = ({
module.inputs,
ModuleInputKeyEnum.datasetLimit
);
defaultAppForm.dataset.rerank = findInputValueByKey(
module.inputs,
ModuleInputKeyEnum.datasetStartReRank
);
defaultAppForm.dataset.searchMode =
findInputValueByKey(module.inputs, ModuleInputKeyEnum.datasetSearchMode) ||
DatasetSearchModeEnum.embedding;
// empty text
const emptyOutputs =

View File

@@ -86,4 +86,31 @@ export const TrainingTypeMap = {
// }
};
export enum DatasetSearchModeEnum {
embedding = 'embedding',
embeddingReRank = 'embeddingReRank',
embFullTextReRank = 'embFullTextReRank'
}
export const DatasetSearchModeMap = {
[DatasetSearchModeEnum.embedding]: {
icon: 'core/dataset/modeEmbedding',
title: 'core.dataset.search.mode.embedding',
desc: 'core.dataset.search.mode.embedding desc',
value: DatasetSearchModeEnum.embedding
},
[DatasetSearchModeEnum.embeddingReRank]: {
icon: 'core/dataset/modeEmbeddingRerank',
title: 'core.dataset.search.mode.embeddingReRank',
desc: 'core.dataset.search.mode.embeddingReRank desc',
value: DatasetSearchModeEnum.embeddingReRank
},
[DatasetSearchModeEnum.embFullTextReRank]: {
icon: 'core/dataset/modeEmbFTRerank',
title: 'core.dataset.search.mode.embFullTextReRank',
desc: 'core.dataset.search.mode.embFullTextReRank desc',
value: DatasetSearchModeEnum.embFullTextReRank
}
};
export const FolderAvatarSrc = '/imgs/files/folder.svg';

View File

@@ -61,7 +61,8 @@ export enum ModuleInputKeyEnum {
datasetSelectList = 'datasets',
datasetSimilarity = 'similarity',
datasetLimit = 'limit',
datasetStartReRank = 'rerank',
datasetSearchMode = 'searchMode',
datasetParamsModal = 'datasetParamsModal',
// context extract
contextExtractInput = 'content',
@@ -98,5 +99,6 @@ export enum ModuleOutputKeyEnum {
export enum VariableInputEnum {
input = 'input',
textarea = 'textarea',
select = 'select'
}

View File

@@ -16,6 +16,8 @@ export enum FlowNodeInputTypeEnum {
selectChatModel = 'selectChatModel',
// dataset special input
selectDataset = 'selectDataset',
selectDatasetParamsModal = 'selectDatasetParamsModal',
hidden = 'hidden'
}

View File

@@ -17,8 +17,11 @@ export const ClassifyQuestionModule: FlowModuleTemplateType = {
flowType: FlowNodeTypeEnum.classifyQuestion,
avatar: '/imgs/module/cq.png',
name: '问题分类',
intro:
'根据用户的历史记录和当前问题判断该次提问的类型。可以添加多组问题类型,下面是一个模板例子:\n类型1: 打招呼\n类型2: 关于 laf 通用问题\n类型3: 关于 laf 代码问题\n类型4: 其他问题',
intro: `根据用户的历史记录和当前问题判断该次提问的类型。可以添加多组问题类型,下面是一个模板例子:
类型1: 打招呼
类型2: 关于商品“使用”问题
类型3: 关于商品“购买”问题
类型4: 其他问题`,
showStatus: true,
inputs: [
Input_Template_TFSwitch,

View File

@@ -12,6 +12,7 @@ import {
} from '../../constants';
import { Input_Template_TFSwitch, Input_Template_UserChatInput } from '../input';
import { Output_Template_Finish } from '../output';
import { DatasetSearchModeEnum } from '../../../dataset/constant';
export const DatasetSearchModule: FlowModuleTemplateType = {
id: FlowNodeTypeEnum.datasetSearchNode,
@@ -36,7 +37,7 @@ export const DatasetSearchModule: FlowModuleTemplateType = {
},
{
key: ModuleInputKeyEnum.datasetSimilarity,
type: FlowNodeInputTypeEnum.slider,
type: FlowNodeInputTypeEnum.hidden,
label: '最低相关性',
value: 0.4,
valueType: ModuleDataTypeEnum.number,
@@ -52,7 +53,7 @@ export const DatasetSearchModule: FlowModuleTemplateType = {
},
{
key: ModuleInputKeyEnum.datasetLimit,
type: FlowNodeInputTypeEnum.slider,
type: FlowNodeInputTypeEnum.hidden,
label: '单次搜索上限',
description: '最多取 n 条记录作为本次问题引用',
value: 5,
@@ -68,13 +69,20 @@ export const DatasetSearchModule: FlowModuleTemplateType = {
showTargetInPlugin: false
},
{
key: ModuleInputKeyEnum.datasetStartReRank,
type: FlowNodeInputTypeEnum.switch,
label: '结果重排',
description: '将召回的结果进行进一步重排,可增加召回率',
plusField: true,
value: false,
valueType: ModuleDataTypeEnum.boolean,
key: ModuleInputKeyEnum.datasetSearchMode,
type: FlowNodeInputTypeEnum.hidden,
label: 'core.dataset.search.Mode',
valueType: ModuleDataTypeEnum.string,
showTargetInApp: false,
showTargetInPlugin: false,
value: DatasetSearchModeEnum.embedding
},
{
key: ModuleInputKeyEnum.datasetParamsModal,
type: FlowNodeInputTypeEnum.selectDatasetParamsModal,
label: '',
connected: false,
valueType: ModuleDataTypeEnum.any,
showTargetInApp: false,
showTargetInPlugin: false
},

View File

@@ -18,10 +18,12 @@ export const HistoryModule: FlowModuleTemplateType = {
key: ModuleInputKeyEnum.historyMaxAmount,
type: FlowNodeInputTypeEnum.numberInput,
label: '最长记录数',
description:
'该记录数不代表模型可接收这么多的历史记录具体可接收多少历史记录取决于模型的能力通常建议不要超过20条。',
value: 6,
valueType: ModuleDataTypeEnum.number,
min: 0,
max: 50,
max: 100,
showTargetInApp: false,
showTargetInPlugin: false
},