範例:智慧播客 🎙#

描述

🎙️AI播客 - 在M2 Max晶片上的多智能體語音對話

支援語言

英文對應代碼檔案:AI_Podcast.py

中文對應代碼檔案:AI_Podcast_ZH.py

英文版本涉及技術:

關於演示功能的詳細說明

  1. 啟動 XInference,部署 Wizardlm 模型與 Vicuna 模型。透過為兩個模型指定名稱,並告知它們有一位名為「username」的人類使用者,來啟動聊天室,其中「username」由使用者輸入提供。接著為聊天室初始化一個空的聊天歷史。

  2. 使用音訊設備將錄音儲存到檔案中,然後使用OpenAI的Whisper將檔案轉錄為人類可讀的文字字串。

  3. 根據輸入的訊息字串,判斷使用者想要與哪些代理(模型)進行對話。呼叫這些目標代理,並將使用者輸入字串與聊天歷史作為輸入,讓模型生成對應的內容。

  4. 當模型的輸出準備好時,使用MacOS的「Say」指令透過揚聲器生成音訊。每個代理在說話時都有各自的聲音。

  5. 將用戶輸入和代理回應儲存到聊天歷史中,並循環遞迴程式,直到用戶在其回應中明確說出「再見」之類的話語。

Xinference的突出特性

  1. 借助 Xinference 的分散式系統,我們可以在同一會話和同一「聊天室」中輕鬆部署兩個不同的模型。在資源充足的情況下,該框架可以同時部署任意數量的模型。

  2. 使用 Xinference,只需加入幾行程式碼就能輕鬆部署模型。例如,在示範中啟動 vicuna 模型,只需:

    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)
    

    然後,Xinference 客戶端將處理「目標模型的下載和快取」、「為模型設定環境和程序」以及「在所選的端點執行服務」。你現在已經準備好與你的 LLM 模型互動。

原始演示影片

原始碼