mirror of
https://github.com/infiniflow/ragflow.git
synced 2026-01-03 11:05:30 +08:00
### What problem does this PR solve? Feat: Add loop operator node. #10427 ### Type of change - [x] New Feature (non-breaking change which adds functionality)
This commit is contained in:
@ -61,7 +61,6 @@ export const AgentOperatorList = [
|
||||
Operator.Categorize,
|
||||
Operator.Message,
|
||||
Operator.RewriteQuestion,
|
||||
Operator.KeywordExtract,
|
||||
Operator.Switch,
|
||||
Operator.Iteration,
|
||||
Operator.WaitingDialogue,
|
||||
@ -79,10 +78,6 @@ export const DataOperationsOperatorOptions = [
|
||||
|
||||
export const SwitchElseTo = 'end_cpn_ids';
|
||||
|
||||
const initialQueryBaseValues = {
|
||||
query: [],
|
||||
};
|
||||
|
||||
export const initialRetrievalValues = {
|
||||
query: AgentGlobalsSysQueryWithBrace,
|
||||
top_n: 8,
|
||||
@ -139,11 +134,6 @@ export const initialMessageValues = {
|
||||
content: [''],
|
||||
};
|
||||
|
||||
export const initialKeywordExtractValues = {
|
||||
...initialLlmBaseValues,
|
||||
top_n: 3,
|
||||
...initialQueryBaseValues,
|
||||
};
|
||||
export const initialDuckValues = {
|
||||
top_n: 10,
|
||||
channel: Channel.Text,
|
||||
@ -275,14 +265,6 @@ export const initialGithubValues = {
|
||||
},
|
||||
};
|
||||
|
||||
export const initialQWeatherValues = {
|
||||
web_apikey: 'xxx',
|
||||
type: 'weather',
|
||||
user_type: 'free',
|
||||
time_period: 'now',
|
||||
...initialQueryBaseValues,
|
||||
};
|
||||
|
||||
export const initialExeSqlValues = {
|
||||
sql: '',
|
||||
db_type: 'mysql',
|
||||
@ -331,8 +313,6 @@ export const initialWenCaiValues = {
|
||||
},
|
||||
};
|
||||
|
||||
export const initialAkShareValues = { top_n: 10, ...initialQueryBaseValues };
|
||||
|
||||
export const initialYahooFinanceValues = {
|
||||
stock_code: '',
|
||||
info: true,
|
||||
@ -349,22 +329,6 @@ export const initialYahooFinanceValues = {
|
||||
},
|
||||
};
|
||||
|
||||
export const initialJin10Values = {
|
||||
type: 'flash',
|
||||
secret_key: 'xxx',
|
||||
flash_type: '1',
|
||||
contain: '',
|
||||
filter: '',
|
||||
...initialQueryBaseValues,
|
||||
};
|
||||
|
||||
export const initialTuShareValues = {
|
||||
token: 'xxx',
|
||||
src: 'eastmoney',
|
||||
start_date: '2024-01-01 09:00:00',
|
||||
...initialQueryBaseValues,
|
||||
};
|
||||
|
||||
export const initialNoteValues = {
|
||||
text: '',
|
||||
};
|
||||
@ -624,6 +588,13 @@ export const initialVariableAssignerValues = {};
|
||||
|
||||
export const initialVariableAggregatorValues = { outputs: {}, groups: [] };
|
||||
|
||||
export const initialLoopValues = {
|
||||
loop_variables: [],
|
||||
loop_termination_condition: [],
|
||||
maximum_loop_count: 10,
|
||||
outputs: {},
|
||||
};
|
||||
|
||||
export const CategorizeAnchorPointPositions = [
|
||||
{ top: 1, right: 34 },
|
||||
{ top: 8, right: 18 },
|
||||
@ -659,11 +630,6 @@ export const RestrictedUpstreamMap = {
|
||||
Operator.RewriteQuestion,
|
||||
Operator.Relevant,
|
||||
],
|
||||
[Operator.KeywordExtract]: [
|
||||
Operator.Begin,
|
||||
Operator.Message,
|
||||
Operator.Relevant,
|
||||
],
|
||||
[Operator.DuckDuckGo]: [Operator.Begin, Operator.Retrieval],
|
||||
[Operator.Wikipedia]: [Operator.Begin, Operator.Retrieval],
|
||||
[Operator.PubMed]: [Operator.Begin, Operator.Retrieval],
|
||||
@ -672,15 +638,11 @@ export const RestrictedUpstreamMap = {
|
||||
[Operator.Bing]: [Operator.Begin, Operator.Retrieval],
|
||||
[Operator.GoogleScholar]: [Operator.Begin, Operator.Retrieval],
|
||||
[Operator.GitHub]: [Operator.Begin, Operator.Retrieval],
|
||||
[Operator.QWeather]: [Operator.Begin, Operator.Retrieval],
|
||||
[Operator.SearXNG]: [Operator.Begin, Operator.Retrieval],
|
||||
[Operator.ExeSQL]: [Operator.Begin],
|
||||
[Operator.Switch]: [Operator.Begin],
|
||||
[Operator.WenCai]: [Operator.Begin],
|
||||
[Operator.AkShare]: [Operator.Begin],
|
||||
[Operator.YahooFinance]: [Operator.Begin],
|
||||
[Operator.Jin10]: [Operator.Begin],
|
||||
[Operator.TuShare]: [Operator.Begin],
|
||||
[Operator.Crawler]: [Operator.Begin],
|
||||
[Operator.Note]: [],
|
||||
[Operator.Invoke]: [Operator.Begin],
|
||||
@ -706,6 +668,9 @@ export const RestrictedUpstreamMap = {
|
||||
[Operator.Tokenizer]: [Operator.Begin],
|
||||
[Operator.Extractor]: [Operator.Begin],
|
||||
[Operator.File]: [Operator.Begin],
|
||||
[Operator.Loop]: [Operator.Begin],
|
||||
[Operator.LoopStart]: [Operator.Begin],
|
||||
[Operator.ExitLoop]: [Operator.Begin],
|
||||
};
|
||||
|
||||
export const NodeMap = {
|
||||
@ -715,7 +680,6 @@ export const NodeMap = {
|
||||
[Operator.Message]: 'messageNode',
|
||||
[Operator.Relevant]: 'relevantNode',
|
||||
[Operator.RewriteQuestion]: 'rewriteNode',
|
||||
[Operator.KeywordExtract]: 'keywordNode',
|
||||
[Operator.DuckDuckGo]: 'ragNode',
|
||||
[Operator.Wikipedia]: 'ragNode',
|
||||
[Operator.PubMed]: 'ragNode',
|
||||
@ -724,15 +688,11 @@ export const NodeMap = {
|
||||
[Operator.Bing]: 'ragNode',
|
||||
[Operator.GoogleScholar]: 'ragNode',
|
||||
[Operator.GitHub]: 'ragNode',
|
||||
[Operator.QWeather]: 'ragNode',
|
||||
[Operator.SearXNG]: 'ragNode',
|
||||
[Operator.ExeSQL]: 'ragNode',
|
||||
[Operator.Switch]: 'switchNode',
|
||||
[Operator.WenCai]: 'ragNode',
|
||||
[Operator.AkShare]: 'ragNode',
|
||||
[Operator.YahooFinance]: 'ragNode',
|
||||
[Operator.Jin10]: 'ragNode',
|
||||
[Operator.TuShare]: 'ragNode',
|
||||
[Operator.Note]: 'noteNode',
|
||||
[Operator.Crawler]: 'ragNode',
|
||||
[Operator.Invoke]: 'ragNode',
|
||||
@ -758,6 +718,9 @@ export const NodeMap = {
|
||||
[Operator.ListOperations]: 'listOperationsNode',
|
||||
[Operator.VariableAssigner]: 'variableAssignerNode',
|
||||
[Operator.VariableAggregator]: 'variableAggregatorNode',
|
||||
[Operator.Loop]: 'loopNode',
|
||||
[Operator.LoopStart]: 'loopStartNode',
|
||||
[Operator.ExitLoop]: 'exitLoopNode',
|
||||
};
|
||||
|
||||
export enum BeginQueryType {
|
||||
@ -891,3 +854,82 @@ export const ArrayFields = [
|
||||
TypesWithArray.ArrayString,
|
||||
TypesWithArray.ArrayObject,
|
||||
];
|
||||
|
||||
export enum InputMode {
|
||||
Constant = 'constant',
|
||||
Variable = 'variable',
|
||||
}
|
||||
|
||||
export enum LoopTerminationComparisonOperator {
|
||||
Contains = ComparisonOperator.Contains,
|
||||
NotContains = ComparisonOperator.NotContains,
|
||||
StartWith = ComparisonOperator.StartWith,
|
||||
EndWith = ComparisonOperator.EndWith,
|
||||
Is = 'is',
|
||||
IsNot = 'is not',
|
||||
}
|
||||
|
||||
export const LoopTerminationStringComparisonOperator = [
|
||||
LoopTerminationComparisonOperator.Contains,
|
||||
LoopTerminationComparisonOperator.NotContains,
|
||||
LoopTerminationComparisonOperator.StartWith,
|
||||
LoopTerminationComparisonOperator.EndWith,
|
||||
LoopTerminationComparisonOperator.Is,
|
||||
LoopTerminationComparisonOperator.IsNot,
|
||||
ComparisonOperator.Empty,
|
||||
ComparisonOperator.NotEmpty,
|
||||
];
|
||||
|
||||
export const LoopTerminationBooleanComparisonOperator = [
|
||||
LoopTerminationComparisonOperator.Is,
|
||||
LoopTerminationComparisonOperator.IsNot,
|
||||
ComparisonOperator.Empty,
|
||||
ComparisonOperator.NotEmpty,
|
||||
];
|
||||
// object or object array
|
||||
export const LoopTerminationObjectComparisonOperator = [
|
||||
ComparisonOperator.Empty,
|
||||
ComparisonOperator.NotEmpty,
|
||||
];
|
||||
|
||||
// string array or number array
|
||||
export const LoopTerminationStringArrayComparisonOperator = [
|
||||
LoopTerminationComparisonOperator.Contains,
|
||||
LoopTerminationComparisonOperator.NotContains,
|
||||
ComparisonOperator.Empty,
|
||||
ComparisonOperator.NotEmpty,
|
||||
];
|
||||
|
||||
export const LoopTerminationBooleanArrayComparisonOperator = [
|
||||
LoopTerminationComparisonOperator.Is,
|
||||
LoopTerminationComparisonOperator.IsNot,
|
||||
ComparisonOperator.Empty,
|
||||
ComparisonOperator.NotEmpty,
|
||||
];
|
||||
|
||||
export const LoopTerminationNumberComparisonOperator = [
|
||||
ComparisonOperator.Equal,
|
||||
ComparisonOperator.NotEqual,
|
||||
ComparisonOperator.GreatThan,
|
||||
ComparisonOperator.LessThan,
|
||||
ComparisonOperator.GreatEqual,
|
||||
ComparisonOperator.LessEqual,
|
||||
ComparisonOperator.Empty,
|
||||
ComparisonOperator.NotEmpty,
|
||||
];
|
||||
|
||||
export const LoopTerminationStringComparisonOperatorMap = {
|
||||
[TypesWithArray.String]: LoopTerminationStringComparisonOperator,
|
||||
[TypesWithArray.Number]: LoopTerminationNumberComparisonOperator,
|
||||
[TypesWithArray.Boolean]: LoopTerminationBooleanComparisonOperator,
|
||||
[TypesWithArray.Object]: LoopTerminationObjectComparisonOperator,
|
||||
[TypesWithArray.ArrayString]: LoopTerminationStringArrayComparisonOperator,
|
||||
[TypesWithArray.ArrayNumber]: LoopTerminationStringArrayComparisonOperator,
|
||||
[TypesWithArray.ArrayBoolean]: LoopTerminationBooleanArrayComparisonOperator,
|
||||
[TypesWithArray.ArrayObject]: LoopTerminationObjectComparisonOperator,
|
||||
};
|
||||
|
||||
export enum AgentVariableType {
|
||||
Begin = 'begin',
|
||||
Conversation = 'conversation',
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user