Meistens ist eine Streaming-Antwort die bevorzugte Wahl, wenn Audio- oder Videodateien von einem Server zurückgegeben werden. Dies liegt hauptsächlich daran, dass Streaming-Antworten bei großen Dateien sehr gut funktionieren – insbesondere bei Dateien mit einer Dateigröße von mehr als 1 GB.
In diesem Tutorial lernen Sie:
StreamingResponse.Es wird dringend empfohlen, eine virtuelle Umgebung zu erstellen, bevor Sie mit der Einrichtung fortfahren.
Aktivieren Sie die virtuelle Umgebung und führen Sie den folgenden Befehl aus, um FastAPI zu installieren:
pip install fastapi
Sie benötigen einen ASGI-Server, um FastAPI bereitzustellen. Die empfohlene Wahl ist Uvicorn. Sie können die Standardversion installieren über:
pip install uvicorn[standard]
pip install uvicorn
Um es einfach und kurz zu halten, wird das requestsPaket verwendet, um den FastAPI-Server aufzurufen. Bitte beachten Sie, dass dies requestsauf der Blockierung von E/A basiert. Daher wird die Content-Eigenschaft blockiert, bis die gesamte Antwort heruntergeladen wurde. Wenn Sie nach nicht blockierenden E/A-Paketen suchen, sollten Sie asynciostattdessen die Verwendung in Betracht ziehen . Führen Sie den folgenden Befehl aus, um es zu installieren:
pip install requests
In diesem Abschnitt implementieren Sie:
Erstellen Sie eine neue Python-Datei namens server.pyund fügen Sie den folgenden Code darin an:
Legen Sie eine beliebige Audio-/Videodatei in das gleiche Verzeichnis wie server.py. Denken Sie daran, den Dateinamen media_typeentsprechend zu ändern, wenn Sie eine andere Mediendatei verwenden. Stellen Sie für Videodateien wie MP4 media_typeauf video/mp4.
Führen Sie den Server wie folgt aus:
uvicorn server:app
uvicorn server:app --port 8005
uvicorn server:app --host 0.0.0.0 --port 8005
Erstellen Sie als Nächstes eine weitere Python-Datei namens download.pyund fügen Sie die folgende Importdeklaration über der Datei hinzu:
import requests
import shutil
import uuid
Auf der anderen Seite uuidwird verwendet, um einen eindeutigen Dateinamen zu generieren. Fügen Sie die folgende Funktion in Ihre Python-Datei ein:
def generate_audio_filename():
return f"{uuid.uuid4()}.wav"
Beim Aufrufen des requestsModuls müssen Sie das streamArgument auf setzen True:
stream=True
Fügen Sie Ihrem Skript den letzten Schliff mit dem folgenden Code direkt unter Ihren Funktionen hinzu:
url = "http://localhost:8000/wav"
download_file(url)
Führen Sie das Skript über den folgenden Befehl aus:
python download.py
0009956a-79dc-46c2-9716-3d06f755897b.wav
Fassen wir zusammen, was Sie heute gelernt haben.
Dieses Tutorial begann mit einfachen Installationsschritten für die Pakete requests, fastapi, und uvicorn.
Als nächstes konzentrierte es sich auf die Implementierung einer FastAPI, die eine Audiodatei über StreamingResponse.
Dann behandelte es die Generierung eines eindeutigen Dateinamens mithilfe des uuidModuls und das lokale Speichern von Streaming-Daten über das shutilModul auf der Festplatte .
Danke fürs Lesen! Schauen Sie sich gerne auch meine anderen Artikel an. Ich wünsche ihnen einen wunderbaren Tag!
Wenn Sie eine Anfrage an facebook.com stellen, sucht Ihr Computer nach dem Domänennamen, um diesen in eine IP-Adresse zu übersetzen, damit Ihr Computer diese Verbindung herstellen kann.
Sie haben sicher schon von allen neuen leistungsstarken ChatGPT-Plugins wie Browser, Code Interpreter usw. gehört. Es gibt jedoch ein Problem: Der Zugriff auf Plugins ist auf eine Warteliste beschränkt und viele haben daher keinen Zugriff darauf.
Es ist ein strahlend goldener Morgen in den sanften Hügeln des Westens, während die ersten Sonnenstrahlen das gefrorene Gras auf den Ebenen erhellen. Eine Herde friedlicher Angus-Rinder, pechschwarz und massig, zeichnet sich vor dem Sonnenaufgang ab, während sie einen ausgetretenen Pfad entlang zu einem Ort geht, den sie alle gut kennen; die Frühstücksbar.
Offenes Tagebuch: Ein Bild pro Tag. Geschichten haben mich schon immer fasziniert.
Wenn wir auf diesem Planeten weiterhin erfolgreich sein wollen, müssen wir gefährliche Gespräche führen. Diejenigen, die das in Frage stellen, was wir getan haben, was wir tun und was wir derzeit weiterhin tun werden (oder planen).
Wenn man erwachsen wird, wird einem oft gesagt, dass die Welt so ist, wie sie ist, und dass das Leben nur darin besteht, sein Leben in der Welt zu leben, niemals sein Leben zu riskieren, einfach einem festgelegten Weg zu folgen und am Ende zu sterben, und versucht, es nicht zu tun Schlage zu viel gegen die Wände. Aber das ist ein sehr begrenztes Leben.