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/d2df625e2c2fd70a090d6321c042579c2819f0d1/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