### What problem does this PR solve? Fix: Fixed the issue that similarity threshold modification in chat and search configuration failed #3221 ### Type of change - [x] Bug Fix (non-breaking change which fixes an issue)
57 lines
1.7 KiB
TypeScript
57 lines
1.7 KiB
TypeScript
import {
|
|
LlmSettingEnabledSchema,
|
|
LlmSettingFieldSchema,
|
|
} from '@/components/llm-setting-items/next';
|
|
import { MetadataFilterSchema } from '@/components/metadata-filter';
|
|
import { rerankFormSchema } from '@/components/rerank';
|
|
import {
|
|
similarityThresholdSchema,
|
|
vectorSimilarityWeightSchema,
|
|
} from '@/components/similarity-slider';
|
|
import { topnSchema } from '@/components/top-n-item';
|
|
import { useTranslate } from '@/hooks/common-hooks';
|
|
import { z } from 'zod';
|
|
|
|
export function useChatSettingSchema() {
|
|
const { t } = useTranslate('chat');
|
|
|
|
const promptConfigSchema = z.object({
|
|
quote: z.boolean(),
|
|
keyword: z.boolean(),
|
|
tts: z.boolean(),
|
|
empty_response: z.string().optional(),
|
|
prologue: z.string().optional(),
|
|
system: z.string().min(1, { message: t('systemMessage') }),
|
|
refine_multiturn: z.boolean(),
|
|
use_kg: z.boolean(),
|
|
parameters: z.array(
|
|
z.object({
|
|
key: z.string(),
|
|
optional: z.boolean(),
|
|
}),
|
|
),
|
|
tavily_api_key: z.string().optional(),
|
|
reasoning: z.boolean().optional(),
|
|
cross_languages: z.array(z.string()).optional(),
|
|
});
|
|
|
|
const formSchema = z.object({
|
|
name: z.string().min(1, { message: t('assistantNameMessage') }),
|
|
icon: z.string(),
|
|
description: z.string().optional(),
|
|
kb_ids: z.array(z.string()).min(0, {
|
|
message: t('knowledgeBasesMessage'),
|
|
}),
|
|
prompt_config: promptConfigSchema,
|
|
...rerankFormSchema,
|
|
llm_setting: z.object(LlmSettingFieldSchema),
|
|
...LlmSettingEnabledSchema,
|
|
llm_id: z.string().optional(),
|
|
...vectorSimilarityWeightSchema,
|
|
...similarityThresholdSchema,
|
|
...topnSchema,
|
|
...MetadataFilterSchema,
|
|
});
|
|
|
|
return formSchema;
|
|
}
|