@peopl-health/nexus 3.8.0 → 3.8.1
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/lib/eval/EvalProvider.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
const { OpenAI } = require('openai');
|
|
2
2
|
|
|
3
|
-
const { Config_ID } = require('../config/airtableConfig');
|
|
4
3
|
const { getCurrentMexicoDateTime } = require('../utils/dateUtils');
|
|
5
4
|
const { retryWithBackoff } = require('../utils/retryUtils');
|
|
6
5
|
const { logger } = require('../utils/logger');
|
|
@@ -8,7 +7,7 @@ const { Thread } = require('../models/threadModel');
|
|
|
8
7
|
const { DefaultMemoryManager } = require('../memory/DefaultMemoryManager');
|
|
9
8
|
const { OpenAIResponsesProvider } = require('../providers/OpenAIResponsesProvider');
|
|
10
9
|
const { handleFunctionCalls } = require('../providers/OpenAIResponsesProviderTools');
|
|
11
|
-
const {
|
|
10
|
+
const { composePrompt } = require('../services/promptComposerService');
|
|
12
11
|
const { getAssistantById } = require('../services/assistantResolver');
|
|
13
12
|
|
|
14
13
|
const MAX_FUNCTION_ROUNDS = parseInt(process.env.MAX_FUNCTION_ROUNDS || '5', 10);
|
|
@@ -108,12 +107,15 @@ class EvalProvider {
|
|
|
108
107
|
async _resolvePrompt(fallbackPrompt, assistantId, thread, promptVariables) {
|
|
109
108
|
let devContent;
|
|
110
109
|
if (this.promptSource === 'airtable' && assistantId) {
|
|
111
|
-
const
|
|
112
|
-
|
|
110
|
+
const { resolvedPrompt } = await composePrompt({
|
|
111
|
+
promptId: assistantId,
|
|
112
|
+
variables: promptVariables,
|
|
113
|
+
});
|
|
114
|
+
devContent = resolvedPrompt;
|
|
113
115
|
} else {
|
|
114
116
|
devContent = fallbackPrompt;
|
|
117
|
+
devContent = devContent.replace(/\{\{(\w+)\}\}/g, (_, key) => promptVariables[key] ?? '');
|
|
115
118
|
}
|
|
116
|
-
devContent = devContent.replace(/\{\{(\w+)\}\}/g, (_, key) => promptVariables[key] ?? '');
|
|
117
119
|
|
|
118
120
|
let assistant = null;
|
|
119
121
|
let toolSchemas = [];
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
const { OpenAI } = require('openai');
|
|
2
2
|
|
|
3
|
-
const { Config_ID } = require('../config/airtableConfig');
|
|
4
|
-
|
|
5
3
|
const { retryWithBackoff } = require('../utils/retryUtils');
|
|
6
4
|
const { logger } = require('../utils/logger');
|
|
7
5
|
const { getCurrentMexicoDateTime } = require('../utils/dateUtils');
|
|
@@ -10,7 +8,7 @@ const { DefaultMemoryManager } = require('../memory/DefaultMemoryManager');
|
|
|
10
8
|
|
|
11
9
|
const { getLastNMessages } = require('../helpers/messageHelper');
|
|
12
10
|
|
|
13
|
-
const {
|
|
11
|
+
const { composePrompt } = require('../services/promptComposerService');
|
|
14
12
|
const { handleFunctionCalls } = require('./OpenAIResponsesProviderTools');
|
|
15
13
|
|
|
16
14
|
const CONVERSATION_PREFIX = 'conv_';
|
|
@@ -314,10 +312,12 @@ class OpenAIResponsesProvider {
|
|
|
314
312
|
accumulatedUsage.total_tokens += usage.total_tokens || 0;
|
|
315
313
|
};
|
|
316
314
|
|
|
317
|
-
const
|
|
318
|
-
|
|
319
|
-
|
|
315
|
+
const { resolvedPrompt, snippetIds } = await composePrompt({
|
|
316
|
+
promptId: assistantId,
|
|
317
|
+
variables: promptVariables,
|
|
318
|
+
});
|
|
320
319
|
|
|
320
|
+
let devContent = resolvedPrompt;
|
|
321
321
|
if (assistant?.tools?.size) {
|
|
322
322
|
const toolNames = Array.from(assistant.tools.keys()).join(', ');
|
|
323
323
|
devContent += `\n\nYou only have access to these tools: ${toolNames}. Do not call or reference any tools not listed here.`;
|
|
@@ -376,6 +376,8 @@ class OpenAIResponsesProvider {
|
|
|
376
376
|
tools_executed: allToolsExecuted,
|
|
377
377
|
retries: totalRetries,
|
|
378
378
|
usage: accumulatedUsage,
|
|
379
|
+
resolved_prompt: devContent,
|
|
380
|
+
snippet_ids: snippetIds,
|
|
379
381
|
};
|
|
380
382
|
}
|
|
381
383
|
|
|
@@ -243,6 +243,8 @@ const replyAssistantCore = async (code, message_ = null, thread_ = null, runOpti
|
|
|
243
243
|
const response_id = runResult.run?.id || null;
|
|
244
244
|
const usage = runResult.run?.usage || null;
|
|
245
245
|
const model = runResult.run?.model || null;
|
|
246
|
+
const resolved_prompt = runResult.run?.resolved_prompt || null;
|
|
247
|
+
const snippet_ids = runResult.run?.snippet_ids || [];
|
|
246
248
|
|
|
247
249
|
const output = sanitizeOutput(rawOutput);
|
|
248
250
|
if (rawOutput !== output) {
|
|
@@ -294,6 +296,8 @@ const replyAssistantCore = async (code, message_ = null, thread_ = null, runOpti
|
|
|
294
296
|
prompt_config: prompt || null,
|
|
295
297
|
response_id: response_id || null,
|
|
296
298
|
context_message_count: lastMessage?.length || null,
|
|
299
|
+
resolved_prompt: resolved_prompt,
|
|
300
|
+
snippet_ids: snippet_ids,
|
|
297
301
|
}).catch(err => logger.error('[replyAssistant] Failed to store metrics', { error: err.message }));
|
|
298
302
|
|
|
299
303
|
const alertThreshold = parseInt(process.env.TOKEN_ALERT_THRESHOLD, 10);
|