Beispiel: Intelligenter Podcast 🎙#
Describe
🎙️AI-Podcast – Multi-Agent-Sprachdialog auf dem M2 Max-Chip
Unterstützte Sprachen:
AI_Podcast.py
AI_Podcast_ZH.py
Asked about the technology involved in the English version.
Xinference als Plattform
Detaillierte Erläuterung der Demofunktionen:
Starten Sie XInference, stellen Sie das Wizardlm-Modell und das Vicuna-Modell bereit. Starten Sie einen Chatroom, indem Sie beiden Modellen Namen zuweisen und ihnen mitteilen, dass es einen menschlichen Benutzer namens „username“ gibt, wobei „username“ durch Benutzereingabe bereitgestellt wird. Initialisieren Sie anschließend einen leeren Chatverlauf für den Chatroom.
Speichern Sie mit einem Audiogerät die Aufnahme in einer Datei und transkribieren Sie die Datei dann mit OpenAI Whisper in einen menschenlesbaren Textstring.
Bestimmen Sie basierend auf der eingegebenen Nachrichten-Zeichenkette, mit welchen Agenten (Modellen) der Benutzer ein Gespräch führen möchte. Rufen Sie diese Ziel-Agenten auf und übergeben Sie die Benutzereingabe-Zeichenkette sowie den Chatverlauf als Eingabe, damit die Modelle den entsprechenden Inhalt generieren können.
Wenn die Ausgabe des Modells bereit ist, wird der „Say“-Befehl von macOS verwendet, um Audio über die Lautsprecher zu erzeugen. Jeder Agent hat beim Sprechen seine eigene Stimme.
Speichern Sie die Benutzereingaben und die Antworten des Agents im Chatverlauf und führen Sie das Programm in einer Schleife rekursiv aus, bis der Benutzer in seiner Antwort explizit Wörter wie „Auf Wiedersehen“ sagt.
Hervorstechende Eigenschaften von Xinference:
Mit dem verteilten System von Xinference können wir problemlos zwei verschiedene Modelle in derselben Sitzung und im selben „Chatroom“ bereitstellen. Bei ausreichenden Ressourcen kann das Framework eine beliebige Anzahl von Modellen gleichzeitig bereitstellen.
Mit Xinference kann ein Modell mit nur wenigen Codezeilen problemlos bereitgestellt werden. Um beispielsweise im Demo das Vicuna-Modell zu starten, genügt Folgendes:
args = parser.parse_args() endpoint = args.endpoint client = Client(endpoint) model_a = "vicuna-v1.3" model_a_uid = client.launch_model( model_name=model_a, model_format="ggmlv3", model_size_in_billions=7, quantization="q4_0", n_ctx=2048, ) model_a_ref = client.get_model(model_a_uid)
Anschließend übernimmt der Xinference-Client Folgendes: „Herunterladen und Zwischenspeichern des Zielmodells“, „Einrichten der Umgebung und Prozesse für das Modell“ sowie „Bereitstellen des Dienstes am ausgewählten Endpunkt“. Du bist nun bereit, mit deinem LLM-Modell zu interagieren.
Original Demo Video
Quellcode
AI-Podcast (englische Version)
AI-Podcast (chinesische Version)