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文档。