@peopl-health/nexus 3.13.5 → 3.13.6
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/config/llmConfig.js
CHANGED
|
@@ -8,15 +8,17 @@ const state = {
|
|
|
8
8
|
anthropicClient: null,
|
|
9
9
|
openaiClient: null,
|
|
10
10
|
provider: null,
|
|
11
|
-
variant:
|
|
11
|
+
variant: null
|
|
12
12
|
};
|
|
13
13
|
|
|
14
14
|
const setOpenAIProvider = (provider) => {
|
|
15
15
|
state.provider = provider || null;
|
|
16
|
-
state.variant = provider?.variant ||
|
|
16
|
+
state.variant = provider?.variant || null;
|
|
17
17
|
state.openaiClient = provider?.getClient?.() || provider?.client || null;
|
|
18
18
|
};
|
|
19
19
|
|
|
20
|
+
const getProviderVariant = () => state.variant;
|
|
21
|
+
|
|
20
22
|
const getOpenAIProvider = ({ instantiate = true, variant = state.variant } = {}) => {
|
|
21
23
|
if (state.provider) return state.provider;
|
|
22
24
|
if (!instantiate || !state.openaiClient) return null;
|
|
@@ -55,13 +57,13 @@ const _resetState = () => {
|
|
|
55
57
|
state.anthropicClient = null;
|
|
56
58
|
state.openaiClient = null;
|
|
57
59
|
state.provider = null;
|
|
58
|
-
state.variant =
|
|
60
|
+
state.variant = null;
|
|
59
61
|
};
|
|
60
62
|
|
|
61
63
|
module.exports = {
|
|
62
64
|
get openaiClient() { return state.openaiClient; },
|
|
63
65
|
get providerInstance() { return state.provider; },
|
|
64
|
-
|
|
66
|
+
getProviderVariant,
|
|
65
67
|
getAnthropicClient,
|
|
66
68
|
setOpenAIProvider,
|
|
67
69
|
getOpenAIProvider,
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
const { Config_ID } = require('../config/airtableConfig');
|
|
2
|
+
const { getProviderVariant } = require('../config/llmConfig');
|
|
2
3
|
|
|
3
4
|
const { logger } = require('../utils/logger');
|
|
4
5
|
|
|
@@ -99,7 +100,7 @@ const listAssistantController = async (req, res) => {
|
|
|
99
100
|
try {
|
|
100
101
|
const nodeEnv = process.env.NODE_ENV;
|
|
101
102
|
const airtableStatus = nodeEnv === 'production' ? 'prod' : nodeEnv === 'development' ? 'dev' : nodeEnv;
|
|
102
|
-
const assistants = await getRecordByFilter(Config_ID,
|
|
103
|
+
const assistants = await getRecordByFilter(Config_ID, getProviderVariant(), '1', airtableStatus);
|
|
103
104
|
return res.status(200).json({ success: true, assistants });
|
|
104
105
|
} catch (error) {
|
|
105
106
|
logger.error('[AssistantController] List error', { error: error.message });
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
const mongoose = require('mongoose');
|
|
2
2
|
|
|
3
|
-
const
|
|
4
|
-
|
|
5
|
-
const llmConfig = require('../config/llmConfig');
|
|
3
|
+
const { getProviderVariant, getOpenAIProvider } = require('../config/llmConfig');
|
|
6
4
|
const { Historial_Clinico_ID, Monitoreo_ID } = require('../config/airtableConfig');
|
|
7
5
|
|
|
8
6
|
const { logger } = require('../utils/logger');
|
|
@@ -499,7 +497,7 @@ const getOpenAIThreadMessagesController = async (req, res) => {
|
|
|
499
497
|
try {
|
|
500
498
|
const { phoneNumber } = req.params;
|
|
501
499
|
const { limit = 50, order = 'desc', runId } = req.query;
|
|
502
|
-
const variant =
|
|
500
|
+
const variant = getProviderVariant();
|
|
503
501
|
|
|
504
502
|
if (!phoneNumber) {
|
|
505
503
|
return res.status(400).json({
|
|
@@ -516,7 +514,7 @@ const getOpenAIThreadMessagesController = async (req, res) => {
|
|
|
516
514
|
});
|
|
517
515
|
}
|
|
518
516
|
|
|
519
|
-
const provider =
|
|
517
|
+
const provider = getOpenAIProvider({ instantiate: true, variant });
|
|
520
518
|
if (!provider) throw new Error('OpenAI provider not initialized');
|
|
521
519
|
|
|
522
520
|
const queryParams = {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const
|
|
1
|
+
const { getProviderVariant } = require('../config/llmConfig');
|
|
2
2
|
|
|
3
3
|
const { withTracing } = require('../utils/tracingDecorator');
|
|
4
4
|
const { logger } = require('../utils/logger');
|
|
@@ -22,7 +22,7 @@ const runAssistantAndWait = async ({ thread, assistant, message = null, runConfi
|
|
|
22
22
|
throw new Error('runAssistantAndWait requires thread and assistant');
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
const variant =
|
|
25
|
+
const variant = getProviderVariant();
|
|
26
26
|
const provider = createLLMProvider({ variant });
|
|
27
27
|
const { polling, tools: configTools, ...config } = runConfig;
|
|
28
28
|
const tools = assistant.getToolSchemas?.() || configTools || [];
|
package/lib/index.js
CHANGED
|
@@ -91,7 +91,11 @@ class Nexus {
|
|
|
91
91
|
|
|
92
92
|
if (llm === 'openai') {
|
|
93
93
|
try {
|
|
94
|
-
|
|
94
|
+
const resolvedLLMConfig = {
|
|
95
|
+
...llmConfig,
|
|
96
|
+
variant: llmConfig.variant || runtimeConfig.get('VARIANT'),
|
|
97
|
+
};
|
|
98
|
+
this.llmProvider = llmConfigModule.configureOpenAIProvider(resolvedLLMConfig);
|
|
95
99
|
} catch (err) {
|
|
96
100
|
logger.warn('[Nexus] Failed to expose OpenAI provider', { error: err?.message || err });
|
|
97
101
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const
|
|
1
|
+
const { getProviderVariant } = require('../config/llmConfig');
|
|
2
2
|
const { Historial_Clinico_ID } = require('../config/airtableConfig');
|
|
3
3
|
|
|
4
4
|
const { logger } = require('../utils/logger');
|
|
@@ -28,7 +28,7 @@ const createAssistantCore = async (code, assistant_id, _messages = [], force = f
|
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
if (force && findThread?.getConversationId()) {
|
|
31
|
-
const provider = createLLMProvider({ variant:
|
|
31
|
+
const provider = createLLMProvider({ variant: getProviderVariant() });
|
|
32
32
|
await provider.deleteConversation(findThread.getConversationId());
|
|
33
33
|
logger.info('[createAssistant] Deleted old conversation, will create new one');
|
|
34
34
|
}
|
|
@@ -137,7 +137,7 @@ const preProcessMessagesCore = async (code, message_ = null, thread) => {
|
|
|
137
137
|
return { shouldProcess: false, messages: null, timings };
|
|
138
138
|
}
|
|
139
139
|
|
|
140
|
-
const provider = createLLMProvider({ variant:
|
|
140
|
+
const provider = createLLMProvider({ variant: getProviderVariant() });
|
|
141
141
|
logger.info(`[preProcessMessages] Processing ${lastMessage.length} messages in parallel`);
|
|
142
142
|
const processStart = Date.now();
|
|
143
143
|
const processResult = await processThreadMessage(code, lastMessage, provider);
|