mirror of
https://git.mirrors.martin98.com/https://github.com/infiniflow/ragflow.git
synced 2025-06-30 06:35:16 +08:00

### What problem does this PR solve? feat: Add component Invoke #2908 ### Type of change - [x] New Feature (non-breaking change which adds functionality)
102 lines
2.0 KiB
TypeScript
102 lines
2.0 KiB
TypeScript
import { FormInstance } from 'antd';
|
|
import { Node } from 'reactflow';
|
|
|
|
export interface DSLComponentList {
|
|
id: string;
|
|
name: string;
|
|
}
|
|
|
|
export interface IOperatorForm {
|
|
onValuesChange?(changedValues: any, values: any): void;
|
|
form?: FormInstance;
|
|
node?: Node<NodeData>;
|
|
nodeId?: string;
|
|
}
|
|
|
|
export interface IBeginForm {
|
|
prologue?: string;
|
|
}
|
|
|
|
export interface IRetrievalForm {
|
|
similarity_threshold?: number;
|
|
keywords_similarity_weight?: number;
|
|
top_n?: number;
|
|
top_k?: number;
|
|
rerank_id?: string;
|
|
empty_response?: string;
|
|
kb_ids: string[];
|
|
}
|
|
|
|
export interface IGenerateForm {
|
|
max_tokens?: number;
|
|
temperature?: number;
|
|
top_p?: number;
|
|
presence_penalty?: number;
|
|
frequency_penalty?: number;
|
|
cite?: boolean;
|
|
prompt: number;
|
|
llm_id: string;
|
|
parameters: { key: string; component_id: string };
|
|
}
|
|
export interface ICategorizeItem {
|
|
name: string;
|
|
description?: string;
|
|
examples?: string;
|
|
to?: string;
|
|
}
|
|
|
|
export interface IGenerateParameter {
|
|
id?: string;
|
|
key: string;
|
|
component_id?: string;
|
|
}
|
|
|
|
export interface IInvokeVariable extends IGenerateParameter {
|
|
value?: string;
|
|
}
|
|
|
|
export type ICategorizeItemResult = Record<
|
|
string,
|
|
Omit<ICategorizeItem, 'name'>
|
|
>;
|
|
export interface ICategorizeForm extends IGenerateForm {
|
|
category_description: ICategorizeItemResult;
|
|
}
|
|
|
|
export interface IRelevantForm extends IGenerateForm {
|
|
yes: string;
|
|
no: string;
|
|
}
|
|
|
|
export interface ISwitchCondition {
|
|
items: ISwitchItem[];
|
|
logical_operator: string;
|
|
to: string;
|
|
}
|
|
|
|
export interface ISwitchItem {
|
|
cpn_id: string;
|
|
operator: string;
|
|
value: string;
|
|
}
|
|
|
|
export interface ISwitchForm {
|
|
conditions: ISwitchCondition[];
|
|
end_cpn_id: string;
|
|
no: string;
|
|
}
|
|
|
|
export type NodeData = {
|
|
label: string; // operator type
|
|
name: string; // operator name
|
|
color: string;
|
|
form:
|
|
| IBeginForm
|
|
| IRetrievalForm
|
|
| IGenerateForm
|
|
| ICategorizeForm
|
|
| ISwitchForm;
|
|
};
|
|
|
|
export type IPosition = { top: number; right: number; idx: number };
|