@fonoster/autopilot 0.7.25 → 0.7.28
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/README.md +1 -1
- package/dist/Autopilot.js +5 -1
- package/dist/assistants/index.js +1 -1
- package/dist/handleVoiceRequest.js +17 -7
- package/dist/loadAssistantConfig.js +17 -7
- package/dist/machine/machine.d.ts +0 -1
- package/dist/machine/machine.js +0 -9
- package/dist/machine/types.d.ts +0 -1
- package/dist/models/ollama/types.d.ts +1 -1
- package/dist/models/ollama/types.js +1 -1
- package/dist/vad/makeVad.js +17 -7
- package/package.json +6 -6
package/README.md
CHANGED
|
@@ -90,7 +90,7 @@ The Autopilot supports multiple language model providers. The following is a lis
|
|
|
90
90
|
|------------|------------------------------------------------------------|------------------------------------------------------------------------------|
|
|
91
91
|
| OpenAI | OpenAI provides various GPT models for conversational AI | `gpt-4o`, `gpt-4o-mini`, `gpt-3.5-turbo`, `gpt-4-turbo` |
|
|
92
92
|
| Groq | Groq offers high-performance AI models optimized for speed | `gemm-7b-it`, `llama3-groq-70b-8192-tool-use-preview`, `llama3-1-8b-instant` |
|
|
93
|
-
| Ollama | Self-hosted Ollama models | `
|
|
93
|
+
| Ollama | Self-hosted Ollama models | `llama3-groq-tool-use` |
|
|
94
94
|
|
|
95
95
|
## Adding Knowledge Base
|
|
96
96
|
|
package/dist/Autopilot.js
CHANGED
|
@@ -70,7 +70,9 @@ class Autopilot {
|
|
|
70
70
|
stream.onData(this.handleVoicePayload.bind(this));
|
|
71
71
|
this.vadWorker.on("message", (event) => {
|
|
72
72
|
logger.verbose("received speech event from vad", { event });
|
|
73
|
-
|
|
73
|
+
if (event === "SPEECH_START") {
|
|
74
|
+
this.actor.send({ type: "SPEECH_START" });
|
|
75
|
+
}
|
|
74
76
|
});
|
|
75
77
|
}
|
|
76
78
|
handleVoicePayload(chunk) {
|
|
@@ -87,6 +89,8 @@ class Autopilot {
|
|
|
87
89
|
stream.onData((speech) => {
|
|
88
90
|
logger.verbose("received speech result", { speech });
|
|
89
91
|
if (speech) {
|
|
92
|
+
// Testing using STT for both VAD and STT (experimental)
|
|
93
|
+
this.actor.send({ type: "SPEECH_END" });
|
|
90
94
|
this.actor.send({ type: "SPEECH_RESULT", speech });
|
|
91
95
|
}
|
|
92
96
|
});
|
package/dist/assistants/index.js
CHANGED
|
@@ -14,7 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./loadAndValidateAssistant"), exports);
|
|
18
17
|
/*
|
|
19
18
|
* Copyright (C) 2024 by Fonoster Inc (https://fonoster.com)
|
|
20
19
|
* http://github.com/fonoster/fonoster
|
|
@@ -33,4 +32,5 @@ __exportStar(require("./loadAndValidateAssistant"), exports);
|
|
|
33
32
|
* See the License for the specific language governing permissions and
|
|
34
33
|
* limitations under the License.
|
|
35
34
|
*/
|
|
35
|
+
__exportStar(require("./loadAndValidateAssistant"), exports);
|
|
36
36
|
__exportStar(require("./types"), exports);
|
|
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
25
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
36
|
exports.handleVoiceRequest = handleVoiceRequest;
|
|
27
37
|
/*
|
|
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
25
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
36
|
exports.loadAssistantConfig = loadAssistantConfig;
|
|
27
37
|
/*
|
|
@@ -158,7 +158,6 @@ declare const machine: import("xstate").StateMachine<AutopilotContext, {
|
|
|
158
158
|
maxIdleTimeoutCount: number;
|
|
159
159
|
idleTimeoutCount: number;
|
|
160
160
|
maxSpeechWaitTimeout: number;
|
|
161
|
-
speechResponseStartTime: number;
|
|
162
161
|
speechResponseTime: number;
|
|
163
162
|
isSpeaking: false;
|
|
164
163
|
};
|
package/dist/machine/machine.js
CHANGED
|
@@ -19,7 +19,6 @@ exports.machine = void 0;
|
|
|
19
19
|
* See the License for the specific language governing permissions and
|
|
20
20
|
* limitations under the License.
|
|
21
21
|
*/
|
|
22
|
-
const perf_hooks_1 = require("perf_hooks");
|
|
23
22
|
const logger_1 = require("@fonoster/logger");
|
|
24
23
|
const xstate_1 = require("xstate");
|
|
25
24
|
const logger = (0, logger_1.getLogger)({ service: "autopilot", filePath: __filename });
|
|
@@ -135,18 +134,11 @@ const machine = (0, xstate_1.setup)({
|
|
|
135
134
|
logger.verbose("called processUserRequest action", {
|
|
136
135
|
speechBuffer: context.speechBuffer
|
|
137
136
|
});
|
|
138
|
-
context.speechResponseStartTime = perf_hooks_1.performance.now();
|
|
139
137
|
// Stop any speech that might be playing
|
|
140
138
|
context.voice.stopSpeech();
|
|
141
139
|
const languageModel = context.languageModel;
|
|
142
140
|
const speech = context.speechBuffer.trim();
|
|
143
141
|
const response = await languageModel.invoke(speech);
|
|
144
|
-
const speechResponseTime = perf_hooks_1.performance.now() - context.speechResponseStartTime;
|
|
145
|
-
context.speechResponseTime = Math.round(speechResponseTime);
|
|
146
|
-
context.speechResponseStartTime = 0;
|
|
147
|
-
logger.verbose("response from language model", {
|
|
148
|
-
speechResponseTime
|
|
149
|
-
});
|
|
150
142
|
try {
|
|
151
143
|
if (response.type === "say" && !response.content) {
|
|
152
144
|
logger.verbose("call might already be hung up");
|
|
@@ -197,7 +189,6 @@ const machine = (0, xstate_1.setup)({
|
|
|
197
189
|
maxIdleTimeoutCount: input.conversationSettings.idleOptions?.maxTimeoutCount || 3,
|
|
198
190
|
idleTimeoutCount: 0,
|
|
199
191
|
maxSpeechWaitTimeout: input.conversationSettings.maxSpeechWaitTimeout,
|
|
200
|
-
speechResponseStartTime: 0,
|
|
201
192
|
speechResponseTime: 0,
|
|
202
193
|
isSpeaking: false
|
|
203
194
|
}),
|
package/dist/machine/types.d.ts
CHANGED
|
@@ -3,5 +3,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.OllamaModel = void 0;
|
|
4
4
|
var OllamaModel;
|
|
5
5
|
(function (OllamaModel) {
|
|
6
|
-
OllamaModel["
|
|
6
|
+
OllamaModel["LLAMA_3_GROQ_TOOL_USE"] = "llama3-groq-tool-use";
|
|
7
7
|
})(OllamaModel || (exports.OllamaModel = OllamaModel = {}));
|
package/dist/vad/makeVad.js
CHANGED
|
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
25
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
36
|
exports.makeVad = makeVad;
|
|
27
37
|
/* eslint-disable no-loops/no-loops */
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fonoster/autopilot",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.28",
|
|
4
4
|
"description": "Voice AI for the Fonoster platform",
|
|
5
5
|
"author": "Pedro Sanders <psanders@fonoster.com>",
|
|
6
6
|
"homepage": "https://github.com/fonoster/fonoster#readme",
|
|
@@ -35,10 +35,10 @@
|
|
|
35
35
|
"url": "https://github.com/fonoster/fonoster/issues"
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@fonoster/common": "^0.7.
|
|
39
|
-
"@fonoster/logger": "^0.7.
|
|
40
|
-
"@fonoster/types": "^0.7.
|
|
41
|
-
"@fonoster/voice": "^0.7.
|
|
38
|
+
"@fonoster/common": "^0.7.28",
|
|
39
|
+
"@fonoster/logger": "^0.7.26",
|
|
40
|
+
"@fonoster/types": "^0.7.26",
|
|
41
|
+
"@fonoster/voice": "^0.7.28",
|
|
42
42
|
"@langchain/community": "^0.2.31",
|
|
43
43
|
"@langchain/core": "^0.2.32",
|
|
44
44
|
"@langchain/groq": "^0.0.17",
|
|
@@ -56,5 +56,5 @@
|
|
|
56
56
|
"devDependencies": {
|
|
57
57
|
"typescript": "^5.5.4"
|
|
58
58
|
},
|
|
59
|
-
"gitHead": "
|
|
59
|
+
"gitHead": "274bd90431185741b718ff06b44961ea1ca081da"
|
|
60
60
|
}
|