From de2a60d12f09e0ab979e3a14a1721291eadd0d59 Mon Sep 17 00:00:00 2001 From: Philipp Kunz Date: Tue, 25 Feb 2025 19:15:32 +0000 Subject: [PATCH] fix(OpenAiProvider): Corrected audio model ID in OpenAiProvider --- changelog.md | 7 +++++++ test/test.ts | 28 ++++++++++++++++++++++------ ts/00_commitinfo_data.ts | 2 +- ts/provider.openai.ts | 2 +- 4 files changed, 31 insertions(+), 8 deletions(-) diff --git a/changelog.md b/changelog.md index aa9901c..08b8b38 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,12 @@ # Changelog +## 2025-02-25 - 0.5.1 - fix(OpenAiProvider) +Corrected audio model ID in OpenAiProvider + +- Fixed audio model identifier from 'o3-mini' to 'tts-1-hd' in the OpenAiProvider's audio method. +- Addressed minor code formatting issues in test suite for better readability. +- Corrected spelling errors in test documentation and comments. + ## 2025-02-25 - 0.5.0 - feat(documentation and configuration) Enhanced package and README documentation diff --git a/test/test.ts b/test/test.ts index a61363e..8d10768 100644 --- a/test/test.ts +++ b/test/test.ts @@ -21,8 +21,7 @@ tap.test('should create chat response with openai', async () => { const response = await testSmartai.openaiProvider.chat({ systemMessage: 'Hello', userMessage: userMessage, - messageHistory: [ - ], + messageHistory: [], }); console.log(`userMessage: ${userMessage}`); console.log(response.message); @@ -55,7 +54,7 @@ tap.test('should recognize companies in a pdf', async () => { address: string; city: string; country: string; - EU: boolean; // wether the entity is within EU + EU: boolean; // whether the entity is within EU }; entityReceiver: { type: 'official state entity' | 'company' | 'person'; @@ -63,7 +62,7 @@ tap.test('should recognize companies in a pdf', async () => { address: string; city: string; country: string; - EU: boolean; // wether the entity is within EU + EU: boolean; // whether the entity is within EU }; date: string; // the date of the document as YYYY-MM-DD title: string; // a short title, suitable for a filename @@ -75,10 +74,27 @@ tap.test('should recognize companies in a pdf', async () => { pdfDocuments: [pdfBuffer], }); console.log(result); -}) +}); + +tap.test('should create audio response with openai', async () => { + // Call the audio method with a sample message. + const audioStream = await testSmartai.openaiProvider.audio({ + message: 'This is a test of audio generation.', + }); + // Read all chunks from the stream. + const chunks: Uint8Array[] = []; + for await (const chunk of audioStream) { + chunks.push(chunk as Uint8Array); + } + const audioBuffer = Buffer.concat(chunks); + await smartfile.fs.toFs(audioBuffer, './.nogit/testoutput.mp3'); + console.log(`Audio Buffer length: ${audioBuffer.length}`); + // Assert that the resulting buffer is not empty. + expect(audioBuffer.length).toBeGreaterThan(0); +}); tap.test('should stop the smartai instance', async () => { await testSmartai.stop(); }); -export default tap.start(); +export default tap.start(); \ No newline at end of file diff --git a/ts/00_commitinfo_data.ts b/ts/00_commitinfo_data.ts index 998501a..cac625a 100644 --- a/ts/00_commitinfo_data.ts +++ b/ts/00_commitinfo_data.ts @@ -3,6 +3,6 @@ */ export const commitinfo = { name: '@push.rocks/smartai', - version: '0.5.0', + version: '0.5.1', description: 'SmartAi is a versatile TypeScript library designed to facilitate integration and interaction with various AI models, offering functionalities for chat, audio generation, document processing, and vision tasks.' } diff --git a/ts/provider.openai.ts b/ts/provider.openai.ts index cf723e1..f8b24ab 100644 --- a/ts/provider.openai.ts +++ b/ts/provider.openai.ts @@ -141,7 +141,7 @@ export class OpenAiProvider extends MultiModalModel { public async audio(optionsArg: { message: string }): Promise { const done = plugins.smartpromise.defer(); const result = await this.openAiApiClient.audio.speech.create({ - model: this.options.audioModel ?? 'o3-mini', + model: this.options.audioModel ?? 'tts-1-hd', input: optionsArg.message, voice: 'nova', response_format: 'mp3',