From 0742ac423ba5dd8f89419658900848255ce07a4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C4=9Bj=20=C5=A0t=C3=A1gl?= Date: Sat, 16 Nov 2024 15:31:05 +0100 Subject: [PATCH] chat: add audio streaming test --- LlmTornado.Demo/ChatDemo.cs | 27 +++++++++++++++++++++++++++ LlmTornado.Demo/Program.cs | 2 ++ LlmTornado/Chat/Conversation.cs | 2 +- LlmTornado/LlmTornado.csproj | 2 +- 4 files changed, 31 insertions(+), 2 deletions(-) diff --git a/LlmTornado.Demo/ChatDemo.cs b/LlmTornado.Demo/ChatDemo.cs index a909272..3b83834 100644 --- a/LlmTornado.Demo/ChatDemo.cs +++ b/LlmTornado.Demo/ChatDemo.cs @@ -473,6 +473,33 @@ public static async Task AudioInWav() Console.WriteLine(str); } + public static async Task AudioInWavStreaming() + { + Conversation chat = Program.Connect().Chat.CreateConversation(new ChatRequest + { + Model = ChatModel.OpenAi.Gpt4.AudioPreview241001, + Modalities = [ ChatModelModalities.Text ], + MaxTokens = 2000 + }); + + byte[] audioData = await File.ReadAllBytesAsync("Static/Audio/sample.wav"); + + chat.AppendUserInput([ + new ChatMessagePart(audioData, ChatAudioFormats.Wav) + ]); + + await chat.StreamResponseRich(new ChatStreamEventHandler + { + MessageTokenHandler = async (str) => + { + Console.Write(str); + return; + } + }); + + int z = 0; + } + public static async Task AudioInAudioOutWav() { Conversation chat = Program.Connect().Chat.CreateConversation(new ChatRequest diff --git a/LlmTornado.Demo/Program.cs b/LlmTornado.Demo/Program.cs index 394646a..7f76b25 100644 --- a/LlmTornado.Demo/Program.cs +++ b/LlmTornado.Demo/Program.cs @@ -95,6 +95,7 @@ public enum Demos TranscriptionWhisperV2Srt, TranscriptionWhisperV2JsonVerbose, TranscriptionWhisperV3TurboJsonVerbose, + ChatAudioWavStreaming, Last } @@ -233,6 +234,7 @@ public static async Task SetupApi() Demos.TranscriptionWhisperV2Srt => TranscriptionDemo.TranscribeFormatSrt, Demos.TranscriptionWhisperV2JsonVerbose => TranscriptionDemo.TranscribeFormatJsonVerbose, Demos.TranscriptionWhisperV3TurboJsonVerbose => TranscriptionDemo.TranscribeFormatJsonVerboseGroq, + Demos.ChatAudioWavStreaming => ChatDemo.AudioInWavStreaming, _ => null }; diff --git a/LlmTornado/Chat/Conversation.cs b/LlmTornado/Chat/Conversation.cs index 733c161..4e2074e 100644 --- a/LlmTornado/Chat/Conversation.cs +++ b/LlmTornado/Chat/Conversation.cs @@ -1076,7 +1076,7 @@ await StreamResponseRich(new ChatStreamEventHandler /// public async Task StreamResponseRich(ChatStreamEventHandler? eventsHandler, CancellationToken token = default) { - ChatRequest req = new(RequestParameters) + ChatRequest req = new ChatRequest(RequestParameters) { Messages = messages.ToList(), CancellationToken = token diff --git a/LlmTornado/LlmTornado.csproj b/LlmTornado/LlmTornado.csproj index 1a04063..9fdd922 100644 --- a/LlmTornado/LlmTornado.csproj +++ b/LlmTornado/LlmTornado.csproj @@ -13,7 +13,7 @@ OpenAI NextGeneration anthropic: haiku 3.5 LlmTornado - 3.1.17 + 3.1.18 3.0.5 3.0.5 True