This commit is contained in:
Dave Horton
2023-11-30 16:16:07 -05:00
parent 29dc2f7052
commit c4dcb051be
4 changed files with 382 additions and 515 deletions

View File

@@ -89,10 +89,12 @@ class SttTask extends Task {
} }
else if (vendor == 'aws') { else if (vendor == 'aws') {
/* get AWS access token */ /* get AWS access token */
const {accessKeyId, secretAccessKey, region } = credentials; const {accessKeyId, secretAccessKey, securityToken, region } = credentials;
const { servedFromCache, ...newCredentials} = await getAwsAuthToken(accessKeyId, secretAccessKey, region); if (!securityToken) {
this.logger.debug({newCredentials}, `got aws security token ${servedFromCache ? 'from cache' : ''}`); const { servedFromCache, ...newCredentials} = await getAwsAuthToken(accessKeyId, secretAccessKey, region);
credentials = {...newCredentials, region}; this.logger.debug({newCredentials}, `got aws security token ${servedFromCache ? 'from cache' : ''}`);
credentials = {...newCredentials, region};
}
} }
return credentials; return credentials;
} }

View File

@@ -60,7 +60,13 @@ const stickyVars = {
aws: [ aws: [
'AWS_VOCABULARY_NAME', 'AWS_VOCABULARY_NAME',
'AWS_VOCABULARY_FILTER_METHOD', 'AWS_VOCABULARY_FILTER_METHOD',
'AWS_VOCABULARY_FILTER_NAME' 'AWS_VOCABULARY_FILTER_NAME',
'AWS_LANGUAGE_MODEL_NAME',
'AWS_ACCESS_KEY_ID',
'AWS_SECRET_ACCESS_KEY',
'AWS_REGION',
'AWS_SECURITY_TOKEN',
'AWS_PII_ENTITY_TYPES'
], ],
nuance: [ nuance: [
'NUANCE_ACCESS_TOKEN', 'NUANCE_ACCESS_TOKEN',
@@ -491,17 +497,27 @@ module.exports = (logger) => {
}; };
} }
else if (['aws', 'polly'].includes(vendor)) { else if (['aws', 'polly'].includes(vendor)) {
const {awsOptions = {}} = rOpts;
const vocabularyName = awsOptions.vocabularyName || rOpts.vocabularyName;
const vocabularyFilterName = awsOptions.vocabularyFilterName || rOpts.vocabularyFilterName;
const filterMethod = awsOptions.vocabularyFilterMethod || rOpts.filterMethod;
opts = { opts = {
...opts, ...opts,
...(rOpts.vocabularyName && {AWS_VOCABULARY_NAME: rOpts.vocabularyName}), ...(vocabularyName && {AWS_VOCABULARY_NAME: vocabularyName}),
...(rOpts.vocabularyFilterName && {AWS_VOCABULARY_FILTER_NAME: rOpts.vocabularyFilterName}), ...(vocabularyFilterName && {AWS_VOCABULARY_FILTER_NAME: vocabularyFilterName}),
...(rOpts.filterMethod && {AWS_VOCABULARY_FILTER_METHOD: rOpts.filterMethod}), ...(filterMethod && {AWS_VOCABULARY_FILTER_METHOD: filterMethod}),
...(sttCredentials && { ...(sttCredentials && {
AWS_ACCESS_KEY_ID: sttCredentials.accessKeyId, AWS_ACCESS_KEY_ID: sttCredentials.accessKeyId,
AWS_SECRET_ACCESS_KEY: sttCredentials.secretAccessKey, AWS_SECRET_ACCESS_KEY: sttCredentials.secretAccessKey,
AWS_REGION: sttCredentials.region, AWS_REGION: sttCredentials.region,
AWS_SESSION_TOKEN: sttCredentials.sessionToken AWS_SECURITY_TOKEN: sttCredentials.securityToken
}), }),
...(awsOptions.accessKey && {AWS_ACCESS_KEY_ID: awsOptions.accessKey}),
...(awsOptions.secretKey && {AWS_SECRET_ACCESS_KEY: awsOptions.secretKey}),
...(awsOptions.region && {AWS_REGION: awsOptions.region}),
...(awsOptions.securityToken && {AWS_SECURITY_TOKEN: awsOptions.securityToken}),
...(awsOptions.languageModelName && {AWS_LANGUAGE_MODEL_NAME: awsOptions.languageModelName}),
...(awsOptions.piiEntityTypes && {AWS_PII_ENTITY_TYPES: awsOptions.piiEntityTypes}),
}; };
} }
else if ('microsoft' === vendor) { else if ('microsoft' === vendor) {
@@ -810,6 +826,17 @@ module.exports = (logger) => {
if (clientId && secret) return {client_id: clientId, secret}; if (clientId && secret) return {client_id: clientId, secret};
if (kryptonEndpoint) return {nuance_stt_uri: kryptonEndpoint}; if (kryptonEndpoint) return {nuance_stt_uri: kryptonEndpoint};
} }
else if (recognizer.vendor === 'aws') {
const {accessKey, secretKey, region, securityToken} = recognizer.awsOptions || {};
if (accessKey || secretKey || region || securityToken) {
return {
accessKeyId: accessKey,
secretAccessKey: secretKey,
region,
securityToken
};
}
}
else if (recognizer.vendor === 'nvidia') { else if (recognizer.vendor === 'nvidia') {
const {rivaUri} = recognizer.nvidiaOptions || {}; const {rivaUri} = recognizer.nvidiaOptions || {};
if (rivaUri) return {riva_uri: rivaUri}; if (rivaUri) return {riva_uri: rivaUri};

828
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -31,19 +31,19 @@
"@jambonz/http-health-check": "^0.0.1", "@jambonz/http-health-check": "^0.0.1",
"@jambonz/mw-registrar": "^0.2.4", "@jambonz/mw-registrar": "^0.2.4",
"@jambonz/realtimedb-helpers": "^0.8.7", "@jambonz/realtimedb-helpers": "^0.8.7",
"@jambonz/speech-utils": "^0.0.29", "@jambonz/speech-utils": "^0.0.30",
"@jambonz/stats-collector": "^0.1.9", "@jambonz/stats-collector": "^0.1.9",
"@jambonz/time-series": "^0.2.8", "@jambonz/time-series": "^0.2.8",
"@jambonz/verb-specifications": "^0.0.46", "@jambonz/verb-specifications": "^0.0.48",
"@opentelemetry/api": "^1.4.0", "@opentelemetry/api": "^1.7.0",
"@opentelemetry/exporter-jaeger": "^1.9.0", "@opentelemetry/exporter-jaeger": "^1.18.1",
"@opentelemetry/exporter-trace-otlp-http": "^0.35.0", "@opentelemetry/exporter-trace-otlp-http": "^0.45.1",
"@opentelemetry/exporter-zipkin": "^1.9.0", "@opentelemetry/exporter-zipkin": "^1.18.1",
"@opentelemetry/instrumentation": "^0.35.0", "@opentelemetry/instrumentation": "^0.45.1",
"@opentelemetry/resources": "^1.9.0", "@opentelemetry/resources": "^1.18.1",
"@opentelemetry/sdk-trace-base": "^1.9.0", "@opentelemetry/sdk-trace-base": "^1.18.1",
"@opentelemetry/sdk-trace-node": "^1.9.0", "@opentelemetry/sdk-trace-node": "^1.18.1",
"@opentelemetry/semantic-conventions": "^1.9.0", "@opentelemetry/semantic-conventions": "^1.18.1",
"bent": "^7.3.12", "bent": "^7.3.12",
"debug": "^4.3.4", "debug": "^4.3.4",
"deepcopy": "^2.1.0", "deepcopy": "^2.1.0",