@crewdle/mist-connector-openai 1.0.10 → 1.0.12

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/dist/index.js CHANGED
@@ -1,2 +1,3 @@
1
1
  export { OpenAIFileConnector } from './models/OpenAIFileConnector';
2
2
  export { OpenAIGenerativeAIWorkerConnector } from './models/OpenAIGenerativeAIWorkerConnector';
3
+ export { OpenAISpeechConnector } from './models/OpenAISpeechConnector';
@@ -53,10 +53,7 @@ export class OpenAIGenerativeAIWorkerConnector {
53
53
  let totalInputTokens = 0;
54
54
  let totalOutputTokens = 0;
55
55
  let accumulatedOutput = '';
56
- let currentSequence = -1;
57
56
  while (true) {
58
- currentSequence++;
59
- const toolChoice = (currentSequence === 0 && tools?.some((tool) => tool.function.name.startsWith('getQuestion'))) ? 'required' : undefined;
60
57
  const response = await this.client.chat.completions.create({
61
58
  model: options.model.id,
62
59
  messages,
@@ -64,7 +61,6 @@ export class OpenAIGenerativeAIWorkerConnector {
64
61
  temperature: parameters.temperature,
65
62
  response_format: responseFormat,
66
63
  tools,
67
- tool_choice: toolChoice,
68
64
  });
69
65
  const message = response.choices[0].message;
70
66
  totalInputTokens += response.usage?.prompt_tokens ?? 0;
@@ -93,10 +89,7 @@ export class OpenAIGenerativeAIWorkerConnector {
93
89
  const responseFormat = this.getResponseFormat(parameters);
94
90
  const tools = this.getTools(parameters);
95
91
  const messages = this.getMessages(parameters);
96
- let currentSequence = -1;
97
92
  while (true) {
98
- currentSequence++;
99
- const toolChoice = (currentSequence === 0 && tools?.some((tool) => tool.function.name.startsWith('getQuestion'))) ? 'required' : undefined;
100
93
  const stream = await this.client.chat.completions.create({
101
94
  model: options.model.id,
102
95
  messages,
@@ -107,7 +100,6 @@ export class OpenAIGenerativeAIWorkerConnector {
107
100
  include_usage: true,
108
101
  },
109
102
  tools,
110
- tool_choice: toolChoice,
111
103
  response_format: responseFormat,
112
104
  });
113
105
  let message = {};
@@ -0,0 +1,22 @@
1
+ import OpenAI from 'openai';
2
+ export class OpenAISpeechConnector {
3
+ client;
4
+ constructor(apiKey) {
5
+ this.client = new OpenAI({
6
+ apiKey,
7
+ });
8
+ }
9
+ async speak(model, text, voice, instructions) {
10
+ const response = await this.client.audio.speech.create({
11
+ model,
12
+ voice: voice,
13
+ input: text,
14
+ instructions,
15
+ response_format: 'pcm',
16
+ });
17
+ return response.arrayBuffer();
18
+ }
19
+ getEngineType() {
20
+ return 'openai';
21
+ }
22
+ }
@@ -1,2 +1,3 @@
1
1
  export { OpenAIFileConnector } from './models/OpenAIFileConnector';
2
2
  export { OpenAIGenerativeAIWorkerConnector } from './models/OpenAIGenerativeAIWorkerConnector';
3
+ export { OpenAISpeechConnector } from './models/OpenAISpeechConnector';
@@ -0,0 +1,7 @@
1
+ import { GenerativeAIEngineType, IGenerativeAISpeechConnector } from '@crewdle/web-sdk-types';
2
+ export declare class OpenAISpeechConnector implements IGenerativeAISpeechConnector {
3
+ private client;
4
+ constructor(apiKey: string);
5
+ speak(model: string, text: string, voice: string, instructions?: string): Promise<ArrayBuffer>;
6
+ getEngineType(): GenerativeAIEngineType;
7
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crewdle/mist-connector-openai",
3
- "version": "1.0.10",
3
+ "version": "1.0.12",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/types/index.d.ts",
@@ -15,11 +15,11 @@
15
15
  "dist/"
16
16
  ],
17
17
  "devDependencies": {
18
- "@crewdle/web-sdk-types": "^1.0.38",
18
+ "@crewdle/web-sdk-types": "^1.0.44",
19
19
  "@types/node": "^22.13.9",
20
20
  "typescript": "^5.8.2"
21
21
  },
22
22
  "dependencies": {
23
- "openai": "^4.86.1"
23
+ "openai": "^4.100.0"
24
24
  }
25
25
  }