Skip to content

Instantly share code, notes, and snippets.

@yairhaimo
Created March 2, 2023 06:21
Show Gist options
  • Save yairhaimo/053cec27b853862521a16d162c55259c to your computer and use it in GitHub Desktop.
Save yairhaimo/053cec27b853862521a16d162c55259c to your computer and use it in GitHub Desktop.
Summarize an audio
import { supabaseUpload } from '@aigur/supabase';
import { createClient, gpt3TurboPrediction, stringToArrayBuffer, whisperApi } from '@aigur/client';
const aigur = createClient({
apiKeys: {
openai: process.env.OPENAI_KEY,
whisperapi: process.env.WHISPER_API,
}
});
const voiceSummarizerPipeline = aigur.pipeline.create<
{ audio: string },
{ summary: string }
>({
id: 'voiceSummarizer',
flow: (flow) =>
flow
.node(stringToArrayBuffer, ({ input }) => ({
string: input.audio,
}))
.node(supabaseUpload, ({ prev }) => ({
bucket: 'audio',
extension: 'mp3',
file: prev.arrayBuffer,
supabaseServiceKey: process.env.SUPABASE_SERVICE_KEY!,
supabaseUrl: process.env.SUPABASE_URL!,
}))
.node(whisperApi, ({ prev }) => ({
audioUrl: prev.url,
}))
.node(gpt3TurboPrediction, ({ prev }) => ({
messages: [
{
role: 'user',
content: `${prev.text}\n\nTl;dr:`,
},
],
}))
.output(({ prev }) => ({
summary: prev.text,
})),
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment