Serverless GPU support on banana.dev (#106)

* serverless: implement banana backend for both audio and LLM

Related to monadical-sas/reflector-gpu-banana project

* serverless: got llm working on banana !

* tests: fixes

* serverless: fix dockerfile to use fastapi server + httpx
This commit is contained in:
2023-08-04 10:24:11 +02:00
committed by GitHub
parent a5ce66c299
commit d94e2911c3
17 changed files with 602 additions and 53 deletions

View File

@@ -12,7 +12,7 @@ from reflector.processors import (
import asyncio
async def process_audio_file(filename, event_callback):
async def process_audio_file(filename, event_callback, only_transcript=False):
async def on_transcript(data):
await event_callback("transcript", data)
@@ -22,15 +22,21 @@ async def process_audio_file(filename, event_callback):
async def on_summary(data):
await event_callback("summary", data)
# transcription output
pipeline = Pipeline(
# build pipeline for audio processing
processors = [
AudioChunkerProcessor(),
AudioMergeProcessor(),
AudioTranscriptAutoProcessor.as_threaded(),
TranscriptLinerProcessor(callback=on_transcript),
TranscriptTopicDetectorProcessor.as_threaded(callback=on_topic),
TranscriptFinalSummaryProcessor.as_threaded(callback=on_summary),
)
]
if not only_transcript:
processors += [
TranscriptTopicDetectorProcessor.as_threaded(callback=on_topic),
TranscriptFinalSummaryProcessor.as_threaded(callback=on_summary),
]
# transcription output
pipeline = Pipeline(*processors)
pipeline.describe()
# start processing audio
@@ -52,6 +58,7 @@ if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("source", help="Source file (mp3, wav, mp4...)")
parser.add_argument("--only-transcript", "-t", action="store_true")
args = parser.parse_args()
async def event_callback(event, data):
@@ -62,4 +69,8 @@ if __name__ == "__main__":
elif event == "summary":
print(f"Summary: {data}")
asyncio.run(process_audio_file(args.source, event_callback))
asyncio.run(
process_audio_file(
args.source, event_callback, only_transcript=args.only_transcript
)
)