在LangSmith中追蹤語音代理
LangSmith現已支持對基於Pipecat、LiveKit、OpenAI Realtime和Gemini Live構建的語音代理進行追蹤。可以捕獲音頻、STT和TTS延遲、中斷、工具調用等信息,並整合到一個追蹤中。
今天,我們宣佈在LangSmith中推出Python集成,用於追蹤四種流行的語音代理框架:Pipecat、LiveKit、OpenAI Realtime和Google ADK的Gemini Live。
語音代理正變得越來越實用,市場也在快速增長。這種增長得益於整個技術棧的進步:語音活動檢測模型更加精確,減少了中斷和尷尬的交互;語音模型聽起來更富情感和自然;而LLM現在足夠快速和智能,能夠進行實時對話。
語音代理也需要可觀測性。構建語音代理在很多方面與構建基於聊天的代理相似:語音代理調用模型、使用工具、維護狀態、檢索上下文並做出決策。在生產環境中擴展語音代理時,你需要了解語音管道中任何時刻發生的情況,以及能夠與隊友共享追蹤、評估代理行為、調試錯誤並隨時間改進代理——就像你對基於文本的代理所做的那樣。
話雖如此,語音追蹤和觀察有一些獨特的要求。通過此次發佈,我們宣佈了原生支持捕獲和追蹤語音交互,包括錄製對話音頻、追蹤語音到文本和文本到語音的推理、突出顯示中斷等。
現在,你的文本和語音代理可以共存於一個地方,使用你已經設置的相同審查和協作工作流程。
語音代理架構主要有兩種:“三明治”架構和語音到語音架構。在“三明治”架構中,代理由三個不同的推理組件鏈式組成:語音到文本(STT)、基於文本的代理和文本到語音(TTS)。每個輪次都流經這三個組件:用户的音頻被轉錄,轉錄內容作為傳統基於文本代理的輸入,代理的輸出被合成為語音供用户收聽。良好的“三明治”語音代理可觀測性需要能夠捕獲每個步驟的洞察:每個推理請求的元數據、輸入和輸出,跨STT、LLM和TTS的延遲分解以確定輪次延遲的來源,語音活動檢測事件等。
相比之下,在語音到語音架構中,代理使用多模態模型構建,該模型原生處理音頻輸入並輸出音頻。使用這種架構,你的語音代理應用程序由通過雙向WebSocket流式傳輸的事件組成:你將代表用户音頻的音頻事件發送給模型,模型返回工具調用、中斷檢測事件、轉錄、音頻輸出等。對於語音到語音,你需要捕獲和檢查在網絡上發送和接收的事件,因為這些對於重建語音代理交互的真相和調試應用程序至關重要。
使用LangSmith,你可以追蹤這兩種架構,並獲得生產對話的完全可觀測性。
通過我們新的追蹤集成,LangSmith捕獲每個生產追蹤中的關鍵運行。每個追蹤集成只需幾行代碼即可設置,並讓你完全瞭解語音交互過程中發生的情況,包括:完整的對話音頻覆蓋在追蹤上;語音到語音模型事件,包含輸入、輸出和其他元數據;語音到文本推理追蹤,包含延遲和其他元數據;文本到語音推理追蹤,包含延遲和其他元數據;用户和代理的高級別輪次;語音活動檢測事件;中斷和重疊語音;模型輸入和輸出;工具調用、參數、結果和錯誤;語音管道每個階段的時序。
我們捕獲的每個事件和工作單元都出現在一個單一的追蹤樹中,這讓你可以追蹤交互如何從音頻到代理動作再到口頭響應。
現在就開始吧:為你的框架設置追蹤:Pipecat集成文檔、LiveKit集成文檔、OpenAI Realtime集成文檔、Gemini Live與Google ADK集成文檔。或者探索一個可工作的示例:https://github.com/langchain-ai/voice-demo