v4.6.6-search test adapt diff search mode (#685)

This commit is contained in:
Archer
2024-01-03 15:40:03 +08:00
committed by GitHub
parent c766a0ed8a
commit 13b10720ac
57 changed files with 1101 additions and 612 deletions

View File

@@ -148,5 +148,19 @@ export enum SearchScoreTypeEnum {
reRank = 'reRank',
rrf = 'rrf'
}
export const SearchScoreTypeMap = {
[SearchScoreTypeEnum.embedding]: {
label: 'core.dataset.search.score.embedding'
},
[SearchScoreTypeEnum.fullText]: {
label: 'core.dataset.search.score.fullText'
},
[SearchScoreTypeEnum.reRank]: {
label: 'core.dataset.search.score.reRank'
},
[SearchScoreTypeEnum.rrf]: {
label: 'core.dataset.search.score.rrf'
}
};
export const FolderAvatarSrc = '/imgs/files/folder.svg';

View File

@@ -162,7 +162,10 @@ export type DatasetFileSchema = {
};
/* ============= search =============== */
export type SearchDataResponseItemType = Omit<DatasetDataItemType, 'isOwner' | 'canWrite'> & {
export type SearchDataResponseItemType = Omit<
DatasetDataItemType,
'indexes' | 'isOwner' | 'canWrite'
> & {
score: { type: `${SearchScoreTypeEnum}`; value: number; index: number }[];
// score: number;
};

View File

@@ -27,7 +27,7 @@ export const Input_Template_History: FlowNodeInputItemType = {
export const Input_Template_UserChatInput: FlowNodeInputItemType = {
key: ModuleInputKeyEnum.userChatInput,
type: FlowNodeInputTypeEnum.target,
type: FlowNodeInputTypeEnum.hidden,
label: 'core.module.input.label.user question',
required: true,
valueType: ModuleIOValueTypeEnum.string,

View File

@@ -3,6 +3,14 @@ import { ModuleOutputKeyEnum } from '../constants';
import { FlowNodeOutputTypeEnum } from '../node/constant';
import { ModuleIOValueTypeEnum } from '../constants';
export const Output_Template_UserChatInput: FlowNodeOutputItemType = {
key: ModuleOutputKeyEnum.userChatInput,
label: 'core.module.input.label.user question',
type: FlowNodeOutputTypeEnum.hidden,
valueType: ModuleIOValueTypeEnum.string,
targets: []
};
export const Output_Template_Finish: FlowNodeOutputItemType = {
key: ModuleOutputKeyEnum.finish,
label: 'core.module.output.label.running done',

View File

@@ -16,7 +16,7 @@ import {
Input_Template_UserChatInput
} from '../input';
import { chatNodeSystemPromptTip } from '../tip';
import { Output_Template_Finish } from '../output';
import { Output_Template_Finish, Output_Template_UserChatInput } from '../output';
export const AiChatModule: FlowModuleTemplateType = {
id: FlowNodeTypeEnum.chatNode,
@@ -131,6 +131,7 @@ export const AiChatModule: FlowModuleTemplateType = {
Input_Template_UserChatInput
],
outputs: [
Output_Template_UserChatInput,
{
key: ModuleOutputKeyEnum.history,
label: '新的上下文',

View File

@@ -10,6 +10,7 @@ import {
Input_Template_Switch,
Input_Template_UserChatInput
} from '../input';
import { Output_Template_UserChatInput } from '../output';
export const ClassifyQuestionModule: FlowModuleTemplateType = {
id: FlowNodeTypeEnum.classifyQuestion,
@@ -72,6 +73,7 @@ export const ClassifyQuestionModule: FlowModuleTemplateType = {
}
],
outputs: [
Output_Template_UserChatInput,
// custom output
{
key: 'wqre',

View File

@@ -15,6 +15,7 @@ import {
Input_Template_Switch,
Input_Template_UserChatInput
} from '../input';
import { Output_Template_UserChatInput } from '../output';
export const AiCFR: FlowModuleTemplateType = {
id: FlowNodeTypeEnum.chatNode,
@@ -50,6 +51,7 @@ export const AiCFR: FlowModuleTemplateType = {
Input_Template_UserChatInput
],
outputs: [
Output_Template_UserChatInput,
{
key: ModuleOutputKeyEnum.text,
label: 'core.module.output.label.cfr result',

View File

@@ -11,7 +11,7 @@ import {
ModuleTemplateTypeEnum
} from '../../constants';
import { Input_Template_Switch, Input_Template_UserChatInput } from '../input';
import { Output_Template_Finish } from '../output';
import { Output_Template_Finish, Output_Template_UserChatInput } from '../output';
import { DatasetSearchModeEnum } from '../../../dataset/constant';
export const DatasetSearchModule: FlowModuleTemplateType = {
@@ -90,6 +90,7 @@ export const DatasetSearchModule: FlowModuleTemplateType = {
Input_Template_UserChatInput
],
outputs: [
Output_Template_UserChatInput,
{
key: ModuleOutputKeyEnum.datasetIsEmpty,
label: '搜索结果为空',

View File

@@ -15,7 +15,7 @@ import {
Input_Template_Switch,
Input_Template_UserChatInput
} from '../input';
import { Output_Template_Finish } from '../output';
import { Output_Template_Finish, Output_Template_UserChatInput } from '../output';
export const RunAppModule: FlowModuleTemplateType = {
id: FlowNodeTypeEnum.runApp,
@@ -41,6 +41,7 @@ export const RunAppModule: FlowModuleTemplateType = {
Input_Template_UserChatInput
],
outputs: [
Output_Template_UserChatInput,
{
key: ModuleOutputKeyEnum.history,
label: '新的上下文',

View File

@@ -24,10 +24,9 @@ export async function initPg() {
);
`);
await PgClient.query(`
CREATE INDEX CONCURRENTLY IF NOT EXISTS vector_index ON ${PgDatasetTableName}
USING hnsw (vector vector_ip_ops) WITH (m = 32, ef_construction = 64);
`);
await PgClient.query(
`CREATE INDEX CONCURRENTLY IF NOT EXISTS vector_index ON ${PgDatasetTableName} USING hnsw (vector vector_ip_ops) WITH (m = 32, ef_construction = 64);`
);
console.log('init pg successful');
} catch (error) {

View File

@@ -80,8 +80,8 @@ const ChatItemSchema = new Schema({
});
try {
ChatItemSchema.index({ dataId: -1 });
ChatItemSchema.index({ time: -1 });
ChatItemSchema.index({ userId: 1 });
ChatItemSchema.index({ appId: 1 });
ChatItemSchema.index({ chatId: 1 });
ChatItemSchema.index({ userGoodFeedback: 1 });

View File

@@ -86,6 +86,8 @@ export const getSameRawTextCollection = async ({
datasetId: string;
hashRawText?: string;
}) => {
if (!hashRawText) return undefined;
const collection = await MongoDatasetCollection.findOne({
datasetId,
hashRawText