Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Support streaming audio responses in chat completions in openai_dart #615

Merged
merged 1 commit into from
Dec 7, 2024

Conversation

davidmigloz
Copy link
Owner

@davidmigloz davidmigloz commented Dec 7, 2024

const request = CreateChatCompletionRequest(
  model: ChatCompletionModel.model(
    ChatCompletionModels.gpt4oAudioPreview,
  ),
  modalities: [
    ChatCompletionModality.text,
    ChatCompletionModality.audio,
  ],
  audio: ChatCompletionAudioOptions(
    voice: ChatCompletionAudioVoice.alloy,
    format: ChatCompletionAudioFormat.pcm16,
  ),
  messages: [
    ChatCompletionMessage.user(
      content: ChatCompletionUserMessageContent.string(
        'Is a golden retriever a good family dog?',
      ),
    ),
  ],
);
var chunks = 0;
var transcript = '';
var data = '';
final stream = client.createChatCompletionStream(request: request);
await for (final res in stream) {
  expect(res.choices, hasLength(1));
  final choice = res.choices.first;
  transcript += choice.delta.audio?.transcript ?? '';
  data += choice.delta.audio?.data ?? '';
  chunks++;
}
expect(chunks, greaterThan(1));
expect(transcript, contains('golden'));
expect(data, isNotEmpty);

@davidmigloz davidmigloz self-assigned this Dec 7, 2024
@davidmigloz davidmigloz added t:enhancement New feature or request p:openai_dart openai_dart package. labels Dec 7, 2024
@davidmigloz davidmigloz added this to the 0.8.0 milestone Dec 7, 2024
@davidmigloz davidmigloz merged commit 6da756a into main Dec 7, 2024
3 checks passed
@davidmigloz davidmigloz deleted the streaming-audio branch December 7, 2024 08:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
p:openai_dart openai_dart package. t:enhancement New feature or request
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

1 participant