axRAG
function axRAG(queryFn: (query: string) => Promise<string>, options?: object): AxFlow<{
originalQuestion: string;
}, {
finalAnswer: string;
healingAttempts: number;
iterationCount: number;
qualityAchieved: number;
retrievedContexts: string[];
totalHops: number;
}, object & object & object & object & object & object & object & object & object & object, {
accumulatedContext: string;
allEvidence: string[];
answerGeneratorResult: BuildObject<[object & object, object & object]>;
answerHealerResult: BuildObject<[object & object]>;
completenessScore: number;
contextualizerResult: BuildObject<[object & object]>;
currentAnswer: string;
currentHop: number;
currentIssues: string[];
currentQuality: number;
currentQueries: string[];
disableQualityHealing: boolean;
evidenceSources: string[];
evidenceSynthesizerResult: BuildObject<[object & object, object & object]>;
gapAnalyzerResult: BuildObject<[object & object, object & object]>;
healingAttempts: number;
healingResult: {
healingDocument: string;
};
iteration: number;
maxHops: number;
maxIterations: number;
needsMoreInfo: boolean;
originalQuestion: string;
qualityAssessorResult: BuildObject<[object & object, object & object]>;
qualityTarget: number;
qualityThreshold: number;
qualityValidatorResult: BuildObject<[object & object, object & object]>;
queryGeneratorResult: BuildObject<[object & object, object & object]>;
queryRefinerResult: BuildObject<[object & object]>;
questionDecomposerResult: BuildObject<[object & object, object & object]>;
retrievalResult: {
retrievalConfidence: number;
retrievedDocument: string;
};
retrievalResults: string[];
retrievedContexts: string[];
searchQuery: string;
shouldContinue: boolean;
shouldContinueHealing: boolean;
synthesizedEvidence: string;
}>;
Defined in: https://github.com/ax-llm/ax/blob/9a5a7060a48f9eef46efc680b0cdf6b42bff5df2/src/ax/prompts/rag.ts#L12
Advanced Multi-hop RAG with iterative query refinement, context accumulation, parallel sub-queries, and self-healing quality feedback loops
Parameters
Parameter | Type | Description |
---|---|---|
queryFn | (query : string ) => Promise <string > | Function to execute search queries and return results |
options? | { debug? : boolean ; disableQualityHealing? : boolean ; logger? : AxFlowLoggerFunction ; maxHops? : number ; maxIterations? : number ; qualityTarget? : number ; qualityThreshold? : number ; } | Configuration options |
options.debug? | boolean | - |
options.disableQualityHealing? | boolean | - |
options.logger? | AxFlowLoggerFunction | - |
options.maxHops? | number | - |
options.maxIterations? | number | - |
options.qualityTarget? | number | - |
options.qualityThreshold? | number | - |
Returns
AxFlow
<{
originalQuestion
: string
;
}, {
finalAnswer
: string
;
healingAttempts
: number
;
iterationCount
: number
;
qualityAchieved
: number
;
retrievedContexts
: string
[];
totalHops
: number
;
}, object
& object
& object
& object
& object
& object
& object
& object
& object
& object
, {
accumulatedContext
: string
;
allEvidence
: string
[];
answerGeneratorResult
: BuildObject
<[object
& object
, object
& object
]>;
answerHealerResult
: BuildObject
<[object
& object
]>;
completenessScore
: number
;
contextualizerResult
: BuildObject
<[object
& object
]>;
currentAnswer
: string
;
currentHop
: number
;
currentIssues
: string
[];
currentQuality
: number
;
currentQueries
: string
[];
disableQualityHealing
: boolean
;
evidenceSources
: string
[];
evidenceSynthesizerResult
: BuildObject
<[object
& object
, object
& object
]>;
gapAnalyzerResult
: BuildObject
<[object
& object
, object
& object
]>;
healingAttempts
: number
;
healingResult
: {
healingDocument
: string
;
};
iteration
: number
;
maxHops
: number
;
maxIterations
: number
;
needsMoreInfo
: boolean
;
originalQuestion
: string
;
qualityAssessorResult
: BuildObject
<[object
& object
, object
& object
]>;
qualityTarget
: number
;
qualityThreshold
: number
;
qualityValidatorResult
: BuildObject
<[object
& object
, object
& object
]>;
queryGeneratorResult
: BuildObject
<[object
& object
, object
& object
]>;
queryRefinerResult
: BuildObject
<[object
& object
]>;
questionDecomposerResult
: BuildObject
<[object
& object
, object
& object
]>;
retrievalResult
: {
retrievalConfidence
: number
;
retrievedDocument
: string
;
};
retrievalResults
: string
[];
retrievedContexts
: string
[];
searchQuery
: string
;
shouldContinue
: boolean
;
shouldContinueHealing
: boolean
;
synthesizedEvidence
: string
;
}>
AxFlow instance with advanced RAG capability