platform/services/ai-bot/love-agent/src/config.ts
Kristina c2defd9638
Some checks are pending
CI / build (push) Waiting to run
CI / svelte-check (push) Blocked by required conditions
CI / formatting (push) Blocked by required conditions
CI / test (push) Blocked by required conditions
CI / uitest (push) Waiting to run
CI / uitest-pg (push) Waiting to run
CI / uitest-qms (push) Waiting to run
CI / uitest-workspaces (push) Waiting to run
CI / docker-build (push) Blocked by required conditions
CI / dist-build (push) Blocked by required conditions
Try nova-3 multi-lang (#8791)
Signed-off-by: Kristina Fefelova <kristin.fefelova@gmail.com>
2025-04-30 23:24:44 +07:00

59 lines
2.1 KiB
TypeScript

//
// Copyright © 2024 Hardcore Engineering Inc.
//
// Licensed under the Eclipse Public License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License. You may
// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
//
// See the License for the specific language governing permissions and
// limitations under the License.
//
import { SttProvider } from './type.js'
interface Config {
DeepgramApiKey: string
DeepgramModel: string
OpenAiTranscriptModel: string
OpenaiApiKey: string
OpenaiBaseUrl: string
OpenaiProvideLanguage: boolean
PlatformToken: string
PlatformUrl: string
SttProvider: SttProvider
VadSilenceDurationMs: number
VadPrefixPaddingMs: number
VadThreshold: number
}
const config: Config = (() => {
const params: Partial<Config> = {
DeepgramApiKey: process.env.DEEPGRAM_API_KEY ?? '',
DeepgramModel: process.env.DEEPGRAM_MODEL ?? 'nova-3',
OpenAiTranscriptModel: process.env.OPENAI_TRANSCRIPT_MODEL ?? 'gpt-4o-transcribe',
OpenaiApiKey: process.env.OPENAI_API_KEY ?? '',
OpenaiBaseUrl: process.env.OPENAI_BASE_URL ?? '',
OpenaiProvideLanguage: (process.env.OPENAI_PROVIDE_LANGUAGE ?? 'true') === 'true',
PlatformToken: process.env.PLATFORM_TOKEN,
PlatformUrl: process.env.PLATFORM_URL,
SttProvider: (process.env.STT_PROVIDER as SttProvider) ?? 'deepgram',
VadSilenceDurationMs: parseInt(process.env.SILENCE_DURATION_MS ?? '1000'),
VadPrefixPaddingMs: parseInt(process.env.PREFIX_PADDING_MS ?? '1000'),
VadThreshold: parseFloat(process.env.VAD_THRESHOLD ?? '0.5')
}
const missingEnv = (Object.keys(params) as Array<keyof Config>).filter((key) => params[key] === undefined)
if (missingEnv.length > 0) {
throw Error(`Missing env variables: ${missingEnv.join(', ')}`)
}
return params as Config
})()
export default config