mirror of
https://github.com/infiniflow/ragflow.git
synced 2025-12-08 20:42:30 +08:00
Feat: Add variables to the metadata filtering function of the knowledge retrieval component. #10861 (#10974)
### What problem does this PR solve? Feat: Add variables to the metadata filtering function of the knowledge retrieval component. #10861 ### Type of change - [x] New Feature (non-breaking change which adds functionality)
This commit is contained in:
@ -8,6 +8,7 @@ import { MetadataFilterConditions } from './metadata-filter-conditions';
|
|||||||
|
|
||||||
type MetadataFilterProps = {
|
type MetadataFilterProps = {
|
||||||
prefix?: string;
|
prefix?: string;
|
||||||
|
canReference?: boolean;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const MetadataFilterSchema = {
|
export const MetadataFilterSchema = {
|
||||||
@ -27,7 +28,10 @@ export const MetadataFilterSchema = {
|
|||||||
.optional(),
|
.optional(),
|
||||||
};
|
};
|
||||||
|
|
||||||
export function MetadataFilter({ prefix = '' }: MetadataFilterProps) {
|
export function MetadataFilter({
|
||||||
|
prefix = '',
|
||||||
|
canReference,
|
||||||
|
}: MetadataFilterProps) {
|
||||||
const { t } = useTranslate('chat');
|
const { t } = useTranslate('chat');
|
||||||
const form = useFormContext();
|
const form = useFormContext();
|
||||||
|
|
||||||
@ -68,6 +72,7 @@ export function MetadataFilter({ prefix = '' }: MetadataFilterProps) {
|
|||||||
<MetadataFilterConditions
|
<MetadataFilterConditions
|
||||||
kbIds={kbIds}
|
kbIds={kbIds}
|
||||||
prefix={prefix}
|
prefix={prefix}
|
||||||
|
canReference={canReference}
|
||||||
></MetadataFilterConditions>
|
></MetadataFilterConditions>
|
||||||
)}
|
)}
|
||||||
</>
|
</>
|
||||||
|
|||||||
@ -17,6 +17,7 @@ import { Input } from '@/components/ui/input';
|
|||||||
import { Separator } from '@/components/ui/separator';
|
import { Separator } from '@/components/ui/separator';
|
||||||
import { useFetchKnowledgeMetadata } from '@/hooks/use-knowledge-request';
|
import { useFetchKnowledgeMetadata } from '@/hooks/use-knowledge-request';
|
||||||
import { SwitchOperatorOptions } from '@/pages/agent/constant';
|
import { SwitchOperatorOptions } from '@/pages/agent/constant';
|
||||||
|
import { PromptEditor } from '@/pages/agent/form/components/prompt-editor';
|
||||||
import { useBuildSwitchOperatorOptions } from '@/pages/agent/form/switch-form';
|
import { useBuildSwitchOperatorOptions } from '@/pages/agent/form/switch-form';
|
||||||
import { Plus, X } from 'lucide-react';
|
import { Plus, X } from 'lucide-react';
|
||||||
import { useCallback } from 'react';
|
import { useCallback } from 'react';
|
||||||
@ -26,9 +27,11 @@ import { useTranslation } from 'react-i18next';
|
|||||||
export function MetadataFilterConditions({
|
export function MetadataFilterConditions({
|
||||||
kbIds,
|
kbIds,
|
||||||
prefix = '',
|
prefix = '',
|
||||||
|
canReference,
|
||||||
}: {
|
}: {
|
||||||
kbIds: string[];
|
kbIds: string[];
|
||||||
prefix?: string;
|
prefix?: string;
|
||||||
|
canReference?: boolean;
|
||||||
}) {
|
}) {
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
const form = useFormContext();
|
const form = useFormContext();
|
||||||
@ -117,7 +120,18 @@ export function MetadataFilterConditions({
|
|||||||
render={({ field }) => (
|
render={({ field }) => (
|
||||||
<FormItem className="flex-1 overflow-hidden">
|
<FormItem className="flex-1 overflow-hidden">
|
||||||
<FormControl>
|
<FormControl>
|
||||||
<Input placeholder={t('common.pleaseInput')} {...field} />
|
{canReference ? (
|
||||||
|
<PromptEditor
|
||||||
|
{...field}
|
||||||
|
multiLine={false}
|
||||||
|
showToolbar={false}
|
||||||
|
></PromptEditor>
|
||||||
|
) : (
|
||||||
|
<Input
|
||||||
|
placeholder={t('common.pleaseInput')}
|
||||||
|
{...field}
|
||||||
|
/>
|
||||||
|
)}
|
||||||
</FormControl>
|
</FormControl>
|
||||||
<FormMessage />
|
<FormMessage />
|
||||||
</FormItem>
|
</FormItem>
|
||||||
|
|||||||
@ -123,7 +123,7 @@ function RetrievalForm({ node }: INextOperatorForm) {
|
|||||||
></SimilaritySliderFormField>
|
></SimilaritySliderFormField>
|
||||||
<TopNFormField></TopNFormField>
|
<TopNFormField></TopNFormField>
|
||||||
<RerankFormFields></RerankFormFields>
|
<RerankFormFields></RerankFormFields>
|
||||||
<MetadataFilter></MetadataFilter>
|
<MetadataFilter canReference></MetadataFilter>
|
||||||
<EmptyResponseField></EmptyResponseField>
|
<EmptyResponseField></EmptyResponseField>
|
||||||
<CrossLanguageFormField name="cross_languages"></CrossLanguageFormField>
|
<CrossLanguageFormField name="cross_languages"></CrossLanguageFormField>
|
||||||
<UseKnowledgeGraphFormField name="use_kg"></UseKnowledgeGraphFormField>
|
<UseKnowledgeGraphFormField name="use_kg"></UseKnowledgeGraphFormField>
|
||||||
|
|||||||
@ -52,7 +52,7 @@ const RetrievalForm = () => {
|
|||||||
></SimilaritySliderFormField>
|
></SimilaritySliderFormField>
|
||||||
<TopNFormField></TopNFormField>
|
<TopNFormField></TopNFormField>
|
||||||
<RerankFormFields></RerankFormFields>
|
<RerankFormFields></RerankFormFields>
|
||||||
<MetadataFilter></MetadataFilter>
|
<MetadataFilter canReference></MetadataFilter>
|
||||||
<EmptyResponseField></EmptyResponseField>
|
<EmptyResponseField></EmptyResponseField>
|
||||||
<CrossLanguageFormField name="cross_languages"></CrossLanguageFormField>
|
<CrossLanguageFormField name="cross_languages"></CrossLanguageFormField>
|
||||||
<UseKnowledgeGraphFormField name="use_kg"></UseKnowledgeGraphFormField>
|
<UseKnowledgeGraphFormField name="use_kg"></UseKnowledgeGraphFormField>
|
||||||
|
|||||||
Reference in New Issue
Block a user