Banterbot是一種用戶友好的聊天機器人應用程序,利用OpenAI模型生成上下文感知的響應,Azure神經聲音進行文本到語音綜合以及Azure語音到文本識別。該軟件包提供了一個全面的工具包,用於構建具有直觀界面和一套實用程序的聊天機器人應用程序。
完全功能需要三個環境變量:
OPENAI_API_KEY :有效的OpenAI API密鑰AZURE_SPEECH_KEY :有效的Azure認知服務語音API鍵,用於語音和語音到文本功能AZURE_SPEECH_REGION :與您的Azure認知服務語音API密鑰相關的區域圖形用戶界面(GUI)建立了多人對話環境,其中多達9個用戶可以同時與聊天機器人進行交互。 GUI包括對話歷史記錄區域和帶有“聽”按鈕的用戶面板,以處理用戶輸入。它還支持關鍵綁定,以方便用戶。
負責管理與OpenAI ChatCompletion API交互的課程。它提供了基於輸入消息從API生成響應的功能。它支持整體或作為響應塊流生成響應。
使用Azure的認知服務來處理文本到語音綜合的類。它支持廣泛的輸出格式,聲音和口語樣式。綜合語音可以中斷,並且可以實時監視進度。
提供一個接口,使用Azure認知服務將口語轉換為書面文本。它允許連續的語音識別,並隨著句子的認可提供實時結果。
Banterbot需要幾種Spacy語言模型來運行,如果缺少或不兼容的話,將自動下載它們 - 有時可能需要一段時間。
可以使用Python軟件包索引(PYPI)安裝或更新Banterbot:
python -m pip install --upgrade banterbot要安裝Banterbot,只需克隆存儲庫並安裝所需的依賴項:
git clone https://github.com/gabrielscabrera/banterbot.git
cd banterbot
python -m pip install . 通過在您的終端中運行命令banterbot ,使用增強的圖形用戶界面啟動Banterbot。此GUI允許多個用戶與機器人進行交互,每個用戶都有一個專用按鈕用於語音輸入和響應顯示。
--prompt :在對話開始時設置系統提示(例如--prompt "You are Grendel the Quiz Troll, a charismatic troll who loves to host quiz shows." )。
--model :選擇開放式型號以進行對話。默認為GPT-4,但是如果在代碼中指定的話,可以選擇其他版本。
--voice :選擇Microsoft Azure認知服務文本到語音語音。默認值為“ ARIA”,但是如果有的話,可以指定其他聲音。
--debug :啟用調試模式在終端中顯示其他信息以進行故障排除。
--greet :讓機器人在啟動時向用戶打招呼。
--name :為了美學目的,將名稱分配給助手。這不會告知機器人本身。要向機器人提供信息,請使用--prompt prompt標誌。
這是一個示例:
banterbot --greet --model gpt-4-turbo --voice davis --prompt " You are Grondle the Quiz Troll, a charismatic troll who loves to host quiz shows. " --name Grondle此外,您可以使用banterbot character選擇預先加載的字符以與之互動。例如:
banterbot character therapist將與Grendel The The The The The Troll進行對話。要列出所有可用字符,請運行:
banterbot character -h您還可以使用banterbot voice-search來搜索所有可用的聲音。例如:
banterbot voice-search --language en fr將列出所有英語(EN)和法語(FR)語音模型。運行banterbot voice-search -h以獲取更多信息。
要在腳本中使用Banterbot,請創建TKInterface類的實例,然後調用run方法:
from banterbot import AzureNeuralVoiceManager , OpenAIModelManager , TKInterface
model = OpenAIModelManager . load ( "gpt-4o" )
voice = AzureNeuralVoiceManager . load ( "Davis" )
assistant_name = "Grendel"
# Optional system prompt to set up a custom character prior to initializing BanterBot.
system = "You are Grendel the Quiz Troll, a charismatic troll who loves to host quiz shows."
# The four arguments `model`, `voice`, `system`, and `assistant_name` are optional.
interface = TKInterface ( model = model , voice = voice , system = system , assistant_name = assistant_name )
# Setting `greet` to True instructs BanterBot to initiate the conversation. Otherwise, the user must initiate.
interface . run ( greet = True )聊天日誌保存在$HOME/Documents/BanterBot/Conversations/ directory作為單個.txt文件中。
有關更多完整的文檔,請參閱Banterbot文檔。