@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 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 | `lama3.1` |
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
- this.actor.send({ type: event });
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
  });
@@ -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 (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
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 (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
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
  };
@@ -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
  }),
@@ -15,7 +15,6 @@ type AutopilotContext = {
15
15
  maxIdleTimeoutCount: number;
16
16
  maxSpeechWaitTimeout: number;
17
17
  speechBuffer: string;
18
- speechResponseStartTime: number;
19
18
  speechResponseTime: number;
20
19
  isSpeaking: boolean;
21
20
  knowledgeBaseSourceUrl?: string;
@@ -1,6 +1,6 @@
1
1
  import { BaseModelParams } from "../types";
2
2
  declare enum OllamaModel {
3
- LLAMA3_1 = "llama3.1"
3
+ LLAMA_3_GROQ_TOOL_USE = "llama3-groq-tool-use"
4
4
  }
5
5
  type OllamaParams = BaseModelParams & {
6
6
  model: OllamaModel;
@@ -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["LLAMA3_1"] = "llama3.1";
6
+ OllamaModel["LLAMA_3_GROQ_TOOL_USE"] = "llama3-groq-tool-use";
7
7
  })(OllamaModel || (exports.OllamaModel = OllamaModel = {}));
@@ -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 (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
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.25",
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.25",
39
- "@fonoster/logger": "^0.7.22",
40
- "@fonoster/types": "^0.7.25",
41
- "@fonoster/voice": "^0.7.25",
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": "f5dbfe479bd50b105ce3eb4b3c260503ef718f57"
59
+ "gitHead": "274bd90431185741b718ff06b44961ea1ca081da"
60
60
  }