이것은 Python 프로그래밍 언어용 RiveScript 인터프리터입니다. RiveScript는 Chatterbot용 스크립팅 언어로, 봇의 지능을 구축하기 위한 트리거/응답 쌍을 쉽게 작성할 수 있습니다.
역사적으로 이 라이브러리는 Python 2가 2020년 1월 1일에 수명 종료 상태에 들어갈 때까지 Python 2와 Python 3을 모두 지원했습니다.
Python 2를 지원하는 최종 버전은 v1.14.9 이며 Python2 환경을 지원해야 하는 경우 PyPI에서 계속 설치할 수 있습니다. 앞으로 RiveScript 릴리스는 Python 3 언어의 지원되는 최신 릴리스를 대상으로 합니다. 현재 이는 Python 3.6 이상을 의미합니다.
# RiveScript의 Python2 마지막 지원 버전은 1.14.9입니다. pip install rivescript==1.14.9
모듈 문서는 http://rivescript.readthedocs.org/에서 볼 수 있습니다.
또한 RiveScript에 대한 일반적인 디자인 패턴과 팁과 요령을 보려면 RiveScript 커뮤니티 Wiki 를 확인하세요.
이 모듈은 PyPI에서 사용할 수 있으며 pip를 통해 설치할 수 있습니다.
pip install rivescript
수동으로 설치하려면 git 저장소를 다운로드하거나 복제하고 python setup.py install
실행하세요.
GitHub에 있는 이 프로젝트의 eg/ 디렉터리에는 Twilio SMS API 등 다양한 방법으로 RiveScript 봇과 인터페이스하는 방법과 기타 코드 조각 및 유용한 트릭을 보여주는 예제가 있습니다.
rivescript
모듈은 독립 실행형 Python 스크립트로 실행되거나 다른 Python 코드에 포함될 수 있습니다. 직접 실행하면 대화형 채팅 세션이 시작됩니다.
python rivescript ./eg/brain
RiveScript를 스크립트로 실행하는 것이 불편한 경우(예: 시스템 모듈로 설치된 경우) shell.py
스크립트를 별칭으로 사용할 수 있습니다.
python shell.py eg/brain
라이브러리로 사용시 개요는 다음과 같습니다.
from rivescript import RiveScriptbot = RiveScript()bot.load_directory("./eg/brain")bot.sort_replies()while True:msg = raw_input('You> ')if msg == '/quit':quit()reply = bot.reply("localuser", msg)'Bot>' 인쇄, 답장
example.py
및 example3.py
스크립트는 각각 RiveScript를 Python 2 및 3용 라이브러리로 사용하기 위한 간단한 예제를 제공합니다.
RiveScript는 유니코드를 지원하지만 기본적으로 활성화되어 있지 않습니다. 생성자에서 utf8
옵션에 True
값을 전달하거나 독립형 대화형 모드에 --utf8
인수를 사용하여 활성화합니다.
UTF-8 모드에서는 백슬래시와 같은 특정 메타 문자 및 /[.,!?;:]/
와 같은 일반적인 구두점 문자를 제외하고 사용자 메시지의 대부분의 문자가 그대로 유지됩니다.
구두점 정규식을 재정의하려면 초기화 후 봇 개체의 unicode_punctuation
속성을 할당하여 새 정규식을 제공할 수 있습니다. 예:
import rebot = RiveScript(utf8=True)bot.unicode_punkation = re.compile(r'[.,!?;:]')
UTF-8 모드가 켜져 있는지 여부에 관계없이 봇에 제공된 모든 입력 메시지는 (필요한 경우) Python의 unicode
데이터 유형으로 변환됩니다. 따라서 봇에 유니코드 문자열을 제공하는지 확인하는 것이 좋은 습관이지만, 잊어버린 경우 라이브러리에서 처리해 드립니다.
rivescript
패키지는 독립 실행형으로 실행될 때 JSON을 사용하여 봇과 통신하는 "JSON 모드"를 지원합니다. 이는 RiveScript를 사용하고 싶지만 모국어로 된 통역사가 없는 타사 프로그램에 유용합니다.
다음과 같이 실행하세요: python rivescript --json /path/to/brain
JSON으로 인코딩된 데이터 구조를 표준 입력으로 인쇄합니다. 형식은 다음과 같아야 합니다.
{ "username": "localuser", "message": "Hello bot!", "vars": { "name": "Aiden" } }
이를 보낸 후 EOF
신호를 보내면 봇이 JSON 응답으로 응답한 다음 종료됩니다. 또는 입력 후 한 줄에 __END__
문자열을 전송하여 세션을 열린 상태로 유지할 수 있습니다. 봇은 응답할 때 동일한 작업을 수행하므로 여러 상호 작용에 동일한 파이프를 재사용할 수 있습니다.
봇의 응답 형식은 다음과 같습니다.
{ "status": "ok", "reply": "안녕하세요, 인간!", "vars": { "name": "Aiden" } }
성공하면 status
ok
이고, 오류가 있으면 error
입니다. reply
봇의 응답(또는 오류 시 오류 메시지)입니다.
노아 페더브리지
아라쉬 사이디
다닐로 바르겐
후지마코토
훙 투 딘
줄리앙 식스
파블로
페이쉬안(숀) 딩
The MIT License (MIT) Copyright (c) 2020 Noah Petherbridge Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
RiveScript 공식 웹사이트, http://www.rivescript.com/