index.js
1.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
const dasha = require("@dasha.ai/sdk");
const fs = require("fs");
async function main() {
const app = await dasha.deploy("./app");
app.connectionProvider = async (conv) =>
conv.input.phone === "chat"
? dasha.chat.connect(await dasha.chat.createConsoleChat())
: dasha.sip.connect(new dasha.sip.Endpoint("default"));
await app.start();
app.setExternal("performed_stage", (args, conv) => {
const arr = args.stages;
const val = args.stage;
arr.push(val);
return arr;
});
const conv = app.createConversation({ phone: process.argv[2] ?? "" });
if (conv.input.phone !== "chat") conv.on("transcription", console.log);
const logFile = await fs.promises.open("./log.txt", "w");
await logFile.appendFile("#".repeat(100) + "\n");
conv.on("transcription", async (entry) => {
await logFile.appendFile(`${entry.speaker}: ${entry.text}\n`);
});
conv.on("debugLog", async (event) => {
if (event?.msg?.msgId === "RecognizedSpeechMessage") {
const logEntry = event?.msg?.results[0]?.facts;
await logFile.appendFile(JSON.stringify(logEntry, undefined, 2) + "\n");
}
});
const result = await conv.execute();
console.log(result.output);
await app.stop();
app.dispose();
await logFile.close();
}
main().catch((error) => {
console.error(error);
process.exitCode = 1;
});