Application<TInput, TOutput>
A DashaScript conversational application deployed to the Dasha platform.
Type parameters
Name | Type | Description |
---|---|---|
TInput | Record<string, unknown> | conversation input data type |
TOutput | Record<string, unknown> | conversation output data type |
Hierarchy
EventEmitter<{
error
: [error: Error] ;health
: [isHealthy: boolean] ;reconnecting
: [attempts: number] ;unableToReconnect
: [error: Error] }>↳ Application
Properties
account
• Readonly
account: Account
A user Account that the application was deployed under.
applicationId
• applicationId: string
An internal application UID.
applicationName
• applicationName: string
Application name as seen in .dashaapp
.
axios
• Readonly
axios: null
| AxiosInstance
An instance of the axios
HTTP client used for #httpRequest()
,
or null
if #httpRequest()
has been disabled.
Initialized with the value of DeploymentOptions.axios
connectionProvider
• Optional
connectionProvider: ConnectionProvider<TInput, TOutput>
A ConnectionProvider to use for this application's conversations.
deprecated
use the channel
argument to Conversation.execute instead
customTtsProvider
• customTtsProvider: CustomTtsProvider
A CustomTtsProvider callback to use when the TTS provider
is set to "custom"
in {@link Conversation.audio.tts}.
customerId
• Readonly
customerId: string
An internal client UID.
groupId
• Readonly
groupId: string
An internal application group UID.
inputSchema
• Optional
inputSchema: unknown
JSON Schema of DSL context input variables. Conversation context: https://docs.dasha.ai/en-us/default/dasha-script-language/conversation-context
log
• Readonly
log: Logger
outputSchema
• Optional
outputSchema: unknown
JSON Schema of DSL context output variables. Conversation context: https://docs.dasha.ai/en-us/default/dasha-script-language/conversation-context
queue
• Readonly
queue: ConversationQueue<TInput, TOutput>
A ConversationQueue object for managing planned conversations.
sttDispatcher
• sttDispatcher: SttDispatcher<TInput, TOutput>
An SttDispatcher callback that selects a speech-to-text engine
for all new conversations. If not set explicitly, a "default"
STT provider will be used.
deprecated
use {@link Conversation.audio.stt} instead
ttsDispatcher
• ttsDispatcher: TtsDispatcher<TInput, TOutput>
A TtsDispatcher callback that selects a text-to-speech engine
for all new conversations. If not set explicitly, a "default"
TTS provider will be used.
deprecated
use {@link Conversation.audio.tts} instead
Methods
createConversation
▸ createConversation(input?
: TInput): Conversation<TInput, TOutput>
Create a single Conversation.
Parameters:
Name | Type | Description |
---|---|---|
input? | TInput | conversation's input data; can also be set later with Conversation.input |
Returns: Conversation<TInput, TOutput>
dispose
▸ dispose(): void
Close the connection with the application, freeing all local resources.
Returns: void
healthCheck
▸ healthCheck(): Promise<boolean>
Returns: Promise<boolean>
setExternal
▸ setExternal<TArgs>(name
: string, fn
: (args
: TArgs, conv
: Conversation<TInput, TOutput>) => unknown): void
Set an external call handler for this application.
The handler is called with all the call arguments passed as a dictionary,
as well as the current Conversation object. It can return a JSON-serializable
value, possibly wrapped in a promise, which then is treated as the call's return value.
As a special case, undefined
gets converted to null
.
Type parameters:
Name | Type |
---|---|
TArgs | Record<string, unknown> |
Parameters:
Name | Type |
---|---|
name | string |
fn | (args : TArgs, conv : Conversation<TInput, TOutput>) => unknown |
Returns: void
start
▸ start(options?
: { concurrency?
: number }): Promise<void>
Start the deployed application, enabling it to receive incoming requests and run queued conversations.
Parameters:
Name | Type | Description |
---|---|---|
options? | object | - |
options.concurrency? | number | max number of conversations to run at once |
Returns: Promise<void>
stop
▸ stop(options?
: { cancelationToken?
: CancelToken ; checkPeriodInMs?
: number ; waitUntilAllProcessed?
: boolean }): Promise<void>
Stop the running application, disabling the creation of new conversations. Conversations that are already running are unaffected.
Parameters:
Name | Type |
---|---|
options? | object |
options.cancelationToken? | CancelToken |
options.checkPeriodInMs? | number |
options.waitUntilAllProcessed? | boolean |
Returns: Promise<void>
waitUntilCurrentProcessed
▸ waitUntilCurrentProcessed(options?
: { cancelationToken?
: CancelToken ; checkPeriodInMs?
: number }): Promise<boolean>
Parameters:
Name | Type |
---|---|
options? | object |
options.cancelationToken? | CancelToken |
options.checkPeriodInMs? | number |
Returns: Promise<boolean>