@promptbook/markitdown 0.92.0-14 → 0.92.0-16
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.
package/esm/index.es.js
CHANGED
|
@@ -26,7 +26,7 @@ const BOOK_LANGUAGE_VERSION = '1.0.0';
|
|
|
26
26
|
* @generated
|
|
27
27
|
* @see https://github.com/webgptorg/promptbook
|
|
28
28
|
*/
|
|
29
|
-
const PROMPTBOOK_ENGINE_VERSION = '0.92.0-
|
|
29
|
+
const PROMPTBOOK_ENGINE_VERSION = '0.92.0-16';
|
|
30
30
|
/**
|
|
31
31
|
* TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
|
|
32
32
|
* Note: [💞] Ignore a discrepancy between file name and entity name
|
|
@@ -4549,10 +4549,12 @@ function templateParameters(template, parameters) {
|
|
|
4549
4549
|
throw new PipelineExecutionError('Parameter is already opened or not closed');
|
|
4550
4550
|
}
|
|
4551
4551
|
if (parameters[parameterName] === undefined) {
|
|
4552
|
+
console.log('!!! templateParameters 1', { parameterName, template, parameters });
|
|
4552
4553
|
throw new PipelineExecutionError(`Parameter \`{${parameterName}}\` is not defined`);
|
|
4553
4554
|
}
|
|
4554
4555
|
let parameterValue = parameters[parameterName];
|
|
4555
4556
|
if (parameterValue === undefined) {
|
|
4557
|
+
console.log('!!! templateParameters 2', { parameterName, template, parameters });
|
|
4556
4558
|
throw new PipelineExecutionError(`Parameter \`{${parameterName}}\` is not defined`);
|
|
4557
4559
|
}
|
|
4558
4560
|
parameterValue = valueToString(parameterValue);
|
|
@@ -5208,6 +5210,23 @@ function computeCosineSimilarity(embeddingVector1, embeddingVector2) {
|
|
|
5208
5210
|
return 1 - dotProduct / (magnitude1 * magnitude2);
|
|
5209
5211
|
}
|
|
5210
5212
|
|
|
5213
|
+
/**
|
|
5214
|
+
*
|
|
5215
|
+
* @param knowledgePieces
|
|
5216
|
+
* @returns
|
|
5217
|
+
*
|
|
5218
|
+
* @private internal utility of `createPipelineExecutor`
|
|
5219
|
+
*/
|
|
5220
|
+
function knowledgePiecesToString(knowledgePieces) {
|
|
5221
|
+
return knowledgePieces
|
|
5222
|
+
.map((knowledgePiece) => {
|
|
5223
|
+
const { content } = knowledgePiece;
|
|
5224
|
+
return `- ${content}`;
|
|
5225
|
+
})
|
|
5226
|
+
.join('\n');
|
|
5227
|
+
// <- TODO: [🧠] Some smarter aggregation of knowledge pieces, single-line vs multi-line vs mixed
|
|
5228
|
+
}
|
|
5229
|
+
|
|
5211
5230
|
/**
|
|
5212
5231
|
* @@@
|
|
5213
5232
|
*
|
|
@@ -5221,53 +5240,60 @@ async function getKnowledgeForTask(options) {
|
|
|
5221
5240
|
const firstKnowlegeIndex = firstKnowlegePiece === null || firstKnowlegePiece === void 0 ? void 0 : firstKnowlegePiece.index[0];
|
|
5222
5241
|
// <- TODO: Do not use just first knowledge piece and first index to determine embedding model, use also keyword search
|
|
5223
5242
|
if (firstKnowlegePiece === undefined || firstKnowlegeIndex === undefined) {
|
|
5224
|
-
return '
|
|
5243
|
+
return ''; // <- Note: Np knowledge present, return empty string
|
|
5225
5244
|
}
|
|
5226
|
-
|
|
5227
|
-
|
|
5228
|
-
|
|
5229
|
-
|
|
5230
|
-
|
|
5231
|
-
|
|
5232
|
-
|
|
5233
|
-
|
|
5234
|
-
|
|
5235
|
-
|
|
5236
|
-
|
|
5237
|
-
|
|
5238
|
-
|
|
5239
|
-
|
|
5240
|
-
|
|
5241
|
-
|
|
5242
|
-
const
|
|
5243
|
-
|
|
5244
|
-
|
|
5245
|
-
|
|
5245
|
+
try {
|
|
5246
|
+
// TODO: [🚐] Make arrayable LLMs -> single LLM DRY
|
|
5247
|
+
const _llms = arrayableToArray(tools.llm);
|
|
5248
|
+
const llmTools = _llms.length === 1 ? _llms[0] : joinLlmExecutionTools(..._llms);
|
|
5249
|
+
const taskEmbeddingPrompt = {
|
|
5250
|
+
title: 'Knowledge Search',
|
|
5251
|
+
modelRequirements: {
|
|
5252
|
+
modelVariant: 'EMBEDDING',
|
|
5253
|
+
modelName: firstKnowlegeIndex.modelName,
|
|
5254
|
+
},
|
|
5255
|
+
content: task.content,
|
|
5256
|
+
parameters: {
|
|
5257
|
+
/* !!!! */
|
|
5258
|
+
},
|
|
5259
|
+
};
|
|
5260
|
+
const taskEmbeddingResult = await llmTools.callEmbeddingModel(taskEmbeddingPrompt);
|
|
5261
|
+
const knowledgePiecesWithRelevance = preparedPipeline.knowledgePieces.map((knowledgePiece) => {
|
|
5262
|
+
const { index } = knowledgePiece;
|
|
5263
|
+
const knowledgePieceIndex = index.find((i) => i.modelName === firstKnowlegeIndex.modelName);
|
|
5264
|
+
// <- TODO: Do not use just first knowledge piece and first index to determine embedding model
|
|
5265
|
+
if (knowledgePieceIndex === undefined) {
|
|
5266
|
+
return {
|
|
5267
|
+
content: knowledgePiece.content,
|
|
5268
|
+
relevance: 0,
|
|
5269
|
+
};
|
|
5270
|
+
}
|
|
5271
|
+
const relevance = computeCosineSimilarity(knowledgePieceIndex.position, taskEmbeddingResult.content);
|
|
5246
5272
|
return {
|
|
5247
5273
|
content: knowledgePiece.content,
|
|
5248
|
-
relevance
|
|
5274
|
+
relevance,
|
|
5249
5275
|
};
|
|
5250
|
-
}
|
|
5251
|
-
const
|
|
5252
|
-
|
|
5253
|
-
|
|
5254
|
-
|
|
5255
|
-
|
|
5256
|
-
|
|
5257
|
-
|
|
5258
|
-
|
|
5259
|
-
|
|
5260
|
-
|
|
5261
|
-
|
|
5262
|
-
|
|
5263
|
-
|
|
5264
|
-
|
|
5265
|
-
|
|
5266
|
-
|
|
5267
|
-
|
|
5268
|
-
|
|
5269
|
-
|
|
5270
|
-
|
|
5276
|
+
});
|
|
5277
|
+
const knowledgePiecesSorted = knowledgePiecesWithRelevance.sort((a, b) => a.relevance - b.relevance);
|
|
5278
|
+
const knowledgePiecesLimited = knowledgePiecesSorted.slice(0, 5);
|
|
5279
|
+
console.log('!!! Embedding', {
|
|
5280
|
+
task,
|
|
5281
|
+
taskEmbeddingPrompt,
|
|
5282
|
+
taskEmbeddingResult,
|
|
5283
|
+
firstKnowlegePiece,
|
|
5284
|
+
firstKnowlegeIndex,
|
|
5285
|
+
knowledgePiecesWithRelevance,
|
|
5286
|
+
knowledgePiecesSorted,
|
|
5287
|
+
knowledgePiecesLimited,
|
|
5288
|
+
});
|
|
5289
|
+
return knowledgePiecesToString(knowledgePiecesLimited);
|
|
5290
|
+
}
|
|
5291
|
+
catch (error) {
|
|
5292
|
+
assertsError(error);
|
|
5293
|
+
console.error('Error in `getKnowledgeForTask`', error);
|
|
5294
|
+
// Note: If the LLM fails, just return all knowledge pieces
|
|
5295
|
+
return knowledgePiecesToString(preparedPipeline.knowledgePieces);
|
|
5296
|
+
}
|
|
5271
5297
|
}
|
|
5272
5298
|
/**
|
|
5273
5299
|
* TODO: !!!! Verify if this is working
|