Banterbot은 컨텍스트 인식 응답을 생성하기 위해 OpenAI 모델을 활용하는 사용자 친화적 인 챗봇, 텍스트 음성 연사 합성을위한 신경 신경 음성 및 연설 대 텍스트 인식을 활용하는 사용자 친화적 인 챗봇 애플리케이션입니다. 이 패키지는 직관적 인 인터페이스와 유틸리티 제품군을 갖춘 챗봇 애플리케이션을 구축하기위한 포괄적 인 툴킷을 제공합니다.
전체 기능을 위해서는 세 가지 환경 변수가 필요합니다.
OPENAI_API_KEY : 유효한 OpenAI API 키AZURE_SPEECH_KEY : 유효한 Azure Cognitive Services Speech API 텍스트 음성 연사 및 음성-텍스트 기능을위한 API 키AZURE_SPEECH_REGION : Azure Cognitive Services Speech API 키와 관련된 영역 그래픽 사용자 인터페이스 (GUI)는 최대 9 명의 사용자가 챗봇과 동시에 상호 작용할 수있는 멀티 플레이어 대화 환경을 설정합니다. GUI에는 대화 기록 영역과 사용자 입력을 처리하기 위해 '듣기'버튼이있는 사용자 패널이 포함되어 있습니다. 또한 사용자 편의를위한 주요 바인딩을 지원합니다.
OpenAI ChatCompletion API와의 상호 작용을 관리하는 클래스. 입력 메시지를 기반으로 API에서 응답을 생성하는 기능을 제공합니다. 응답 전체 또는 응답 블록의 스트림으로 응답을 생성하는 것을 지원합니다.
Azure의인지 서비스를 사용하여 텍스트 음성 합성을 처리하는 클래스. 광범위한 출력 형식, 음성 및 말하기 스타일을 지원합니다. 합성 된 음성을 중단 할 수 있으며 진행 상황을 실시간으로 모니터링 할 수 있습니다.
구어체 언어를 Azure Cognitive Services를 사용하여 서면 텍스트로 변환하는 인터페이스를 제공하는 클래스. 연속적인 음성 인식을 허용하고 문장이 인식 될 때 실시간 결과를 제공합니다.
Banterbot은 몇 가지 Spacy Language 모델을 실행해야하며, 누락되거나 양립 할 수없는 경우 처음 초기화시 자동으로 다운로드됩니다.이 프로세스는 때때로 시간이 걸릴 수 있습니다.
Python Package Index (PYPI)를 사용하여 Banterbot을 설치하거나 업데이트 할 수 있습니다.
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 텍스트 음성 음성을 선택하십시오. 기본값은 "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 therapistGrendel The Therapy 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 Docs를 참조하십시오.