Banterbotは、コンテキスト対応の応答を生成するためのOpenAIモデル、テキストからスピーチへの統合のためのAzure Neural Voices、およびAzure Speech-textの認識を活用するユーザーフレンドリーなチャットボットアプリケーションです。このパッケージは、直感的なインターフェイスと一連のユーティリティを備えたチャットボットアプリケーションを構築するための包括的なツールキットを提供します。
完全な機能には、3つの環境変数が必要です。
OPENAI_API_KEY :有効なOpenAI APIキーAZURE_SPEECH_KEY :テキストからスピーチとスピーチツーテキスト機能の有効なAzure Cognitive Services Speech APIキーAZURE_SPEECH_REGION :Azure Cognitive Services Speech API Keyに関連する領域グラフィカルユーザーインターフェイス(GUI)は、最大9人のユーザーがチャットボットと同時に対話できるマルチプレイヤー会話環境を確立します。 GUIには、会話履歴エリアとユーザーパネルが含まれており、ユーザー入力を処理する「リッスン」ボタンを備えています。また、ユーザーの利便性のためのキーバインディングもサポートしています。
OpenAI ChatCompletion APIとのやり取りの管理を担当するクラス。入力メッセージに基づいてAPIから応答を生成する機能を提供します。それは、応答ブロックのストリームとしての生成応答をサポートします。
Azureの認知サービスを使用してテキストからスピーチの合成を処理するクラス。幅広い出力形式、声、スピーキングスタイルをサポートしています。合成された音声は中断することができ、進捗をリアルタイムで監視できます。
Azure Cognitive Servicesを使用して、音声言語を書かれたテキストに変換するインターフェイスを提供するクラス。継続的な音声認識を可能にし、文が認識されるにつれてリアルタイムの結果を提供します。
Banterbotでは、いくつかのSPACY言語モデルを実行する必要があり、不足している場合、または互換性がない場合は、最初の初期化時に自動的にダウンロードされます。このプロセスには時間がかかる場合があります。
Banterbotは、Pythonパッケージインデックス(PYPI)を使用してインストールまたは更新できます。
python -m pip install --upgrade banterbotBanterBotをインストールするには、リポジトリをクローンして、必要な依存関係をインストールするだけです。
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 :会話生成のためにOpenAIモデルを選択します。デフォルトはGPT-4ですが、コードで指定されている場合は他のバージョンを選択できます。
--voice :Microsoft Azure Cognitive Services Text-to-Speech Voiceを選択します。デフォルトは「Aria」ですが、利用可能な場合は他の声を指定できます。
--debug :デバッグモードを有効にして、トラブルシューティングのために端末に追加情報を表示します。
--greet :起動時にボットにユーザーに挨拶してもらいます。
--name :審美的な目的でアシスタントに名前を割り当てます。これはボット自体に通知しません。ボットに情報を提供するには、 --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 therapistThe Therapy TrollのGrendelと会話を始めます。利用可能なすべての文字をリストするには、実行します。
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ドキュメントを参照してください。