archgraph-argo 0.20.6 → 0.20.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -236,8 +236,9 @@ async function executeWpP2Retrieval({
|
|
|
236
236
|
configuration: configurationEvidence.configuration,
|
|
237
237
|
transport: composition.transport,
|
|
238
238
|
});
|
|
239
|
-
markPhase('retrieval:embed');
|
|
239
|
+
markPhase('retrieval:embed:start');
|
|
240
240
|
const vector = await provider.embed(request.intent);
|
|
241
|
+
markPhase('retrieval:embed:done');
|
|
241
242
|
requireQualifiedVector(vector);
|
|
242
243
|
const purpose = request && typeof request.purpose === 'string' ? request.purpose : '';
|
|
243
244
|
const strict = AUDIT_PURPOSES.has(purpose);
|
|
@@ -254,6 +255,7 @@ async function executeWpP2Retrieval({
|
|
|
254
255
|
const pool = rerank ? Math.max(topK, rerankOptions.poolSize) : topK;
|
|
255
256
|
const channelSeeds = [];
|
|
256
257
|
for (const channel of CHANNELS) {
|
|
258
|
+
markPhase('retrieval:vector:' + channel.channel);
|
|
257
259
|
const vectorSeeds = await exhaustChannel({
|
|
258
260
|
channel,
|
|
259
261
|
neo4jDriver: composition.neo4jDriver,
|
|
@@ -264,6 +266,7 @@ async function executeWpP2Retrieval({
|
|
|
264
266
|
});
|
|
265
267
|
let seeds = vectorSeeds;
|
|
266
268
|
if (hybrid) {
|
|
269
|
+
markPhase('retrieval:lexical:' + channel.channel);
|
|
267
270
|
const lexicalSeeds = await exhaustLexicalChannel({
|
|
268
271
|
channel,
|
|
269
272
|
neo4jDriver: composition.neo4jDriver,
|
|
@@ -276,7 +279,7 @@ async function executeWpP2Retrieval({
|
|
|
276
279
|
channelSeeds.push({ channel, seeds });
|
|
277
280
|
}
|
|
278
281
|
if (rerank) {
|
|
279
|
-
markPhase('retrieval:rerank');
|
|
282
|
+
markPhase('retrieval:rerank:start');
|
|
280
283
|
// Rerank every channel CONCURRENTLY: the LLM calls dominate latency and are
|
|
281
284
|
// independent, so parallelizing turns the cost from sum(channels) into
|
|
282
285
|
// ~one call. fail-open: a null/empty order keeps the original ordering.
|
|
@@ -292,6 +295,7 @@ async function executeWpP2Retrieval({
|
|
|
292
295
|
: seeds
|
|
293
296
|
)));
|
|
294
297
|
channelSeeds.forEach((entry, index) => { entry.seeds = rerankedSeeds[index]; });
|
|
298
|
+
markPhase('retrieval:rerank:done');
|
|
295
299
|
}
|
|
296
300
|
const seedsByType = {};
|
|
297
301
|
for (const { channel, seeds } of channelSeeds) {
|
|
@@ -741,6 +745,7 @@ async function exhaustChannel({
|
|
|
741
745
|
const effectiveMax = Number.isInteger(maxSeeds) && maxSeeds > 0 ? maxSeeds : Number.POSITIVE_INFINITY;
|
|
742
746
|
let offset = 0;
|
|
743
747
|
while (accepted.length < effectiveMax) {
|
|
748
|
+
markPhase('retrieval:vector-window:' + channel.channel);
|
|
744
749
|
const parameters = Object.freeze({
|
|
745
750
|
indexName: channel.indexName,
|
|
746
751
|
channel: channel.channel,
|
package/package.json
CHANGED