
[영어] | [中文]
Bot On Athing 은 강력한 AI 챗봇 빌더로 챗봇을 신속하게 만들고 어디서나 실행할 수 있습니다.
개발자는 다양한 AI 대형 모델과 경량 구성으로 응용 프로그램 채널 간의 연결을 선택하여 지능형 대화 로봇을 구축하고 실행할 수 있습니다. 단일 프로젝트 내의 여러 경로간에 쉽게 전환 할 수 있습니다. 이 아키텍처는 확장 성이 강합니다. 각 응용 프로그램은 기존 모델 기능을 재사용 할 수 있으며 각 새로운 모델은 모든 애플리케이션 채널에서 실행될 수 있습니다.
모델 :
응용 프로그램 :
Linux, MacOS 및 Windows 시스템을 지원하며 Python을 설치해야합니다. 3.7.1에서 3.10 사이의 Python 버전을 사용하는 것이 좋습니다.
프로젝트 코드를 복제하고 종속성을 설치하십시오.
git clone https://github.com/zhayujie/bot-on-anything
cd bot-on-anything/
pip3 install -r requirements.txt Core Configuration 파일은 config.json 이고 템플릿 파일 config-template.json 이 프로젝트에 제공되며 최종 효과적인 config.json 파일을 생성하기 위해 복사 할 수 있습니다.
cp config-template.json config.json각 모델과 채널에는 자체 구성 블록이있어 완전한 구성 파일을 형성합니다. 전체 구조는 다음과 같습니다.
{
" model " : {
" type " : " openai " , # Selected AI model
" openai " : {
# openAI configuration
}
},
" channel " : {
" type " : " slack " , # Channel to be integrated
" slack " : {
# slack configuration
},
" telegram " : {
# telegram configuration
}
}
} 구성 파일은 가장 바깥 쪽 레벨의 model 및 channel 섹션으로 나뉩니다. 모델 섹션은 모델 구성을위한 것이며, 여기서 type 사용할 모델을 지정합니다. 채널 섹션에는 응용 프로그램 채널의 구성이 포함되어 있으며 type 필드에는 통합 할 애플리케이션이 지정됩니다.
사용하는 경우 모델 및 채널 구성 블록 아래에서 type 필드 만 변경하여 모델과 응용 프로그램 사이를 전환하여 다른 경로를 연결하면됩니다. 아래에서는 각 모델 및 응용 프로그램 구성 및 실행 프로세스가 차례로 소개됩니다.
프로젝트 루트 디렉토리에서 다음 명령을 실행하고 기본 채널이 터미널입니다.
python3 app.py 기본 모델은 gpt-3.5-turbo 입니다. 자세한 내용은 공식 문서를 참조하십시오. 또한 gpt-4.0 지원하고 모델 유형 매개 변수를 수정합니다.
pip3 install --upgrade openai참고 : OpenAI 버전은
0.27.0이상이어야합니다. 설치가 실패하면 먼저pip3 install --upgrade pip로 PIP를 업그레이드 할 수 있습니다.
{
" model " : {
" type " : " chatgpt " ,
" openai " : {
" api_key " : " YOUR API KEY " ,
" model " : " gpt-3.5-turbo " , # Model name
" proxy " : " http://127.0.0.1:7890 " , # Proxy address
" character_desc " : " You are ChatGPT, a large language model trained by OpenAI, aimed at answering and solving any questions people have, and can communicate in multiple languages. When asked who you are, you should also tell the questioner that entering #clear_memory can start a new topic exploration. Entering draw xx can create a picture for you. " ,
" conversation_max_tokens " : 1000, # Maximum number of characters in the reply, total for input and output
" temperature " :0.75, # Entropy, between [0,1], the larger the value, the more random the selected candidate words, the more uncertain the reply, it is recommended to use either this or the top_p parameter, the greater the creativity task, the better, the smaller the precision task
" top_p " :0.7, # Candidate word list. 0.7 means only considering the top 70% of candidate words, it is recommended to use either this or the temperature parameter
" frequency_penalty " :0.0, # Between [-2,2], the larger this value, the more it reduces the repetition of words in the model's output, leaning towards producing different content
" presence_penalty " :1.0, # Between [-2,2], the larger this value, the less restricted by the input, encouraging the model to generate new words not present in the input, leaning towards producing different content
}
}api_key : 계정을 등록 할 때 생성 된 OpenAI API KEY 작성하십시오.model : 모델 이름은 현재 gpt-3.5-turbo , gpt-4 , gpt-4-32k (GPT-4 API가 아직 열리지 않음)를 지원합니다.proxy : 프록시 클라이언트의 주소는 자세한 내용은 #56을 참조하십시오.character_desc 당신은 그것을 위해 모든 성격을 사용자 정의 할 수 있습니다.max_history_num [선택 사항] : 대화의 최대 메모리 길이,이 길이를 초과하면 이전 메모리가 지워집니다.{
" model " : {
" type " : " linkai " ,
" linkai " : {
" api_key " : " " ,
" api_base " : " https://api.link-ai.tech " ,
" app_code " : " " ,
" model " : " " ,
" conversation_max_tokens " : 1000,
" temperature " :0.75,
" top_p " :0.7,
" frequency_penalty " :0.0,
" presence_penalty " :1.0,
" character_desc " : " You are an intelligent assistant. "
},
}api_key : 콘솔에서 만들 수있는 LinkAI 서비스를 호출하는 키입니다.app_code : Linkai 응용 프로그램 또는 워크 플로 코드 선택 사항은 응용 프로그램 생성을 참조하십시오.model : 국내 및 국제 소스의 공통 모델을 지원합니다. 모델 목록을 참조하십시오. 비워 둘 수 있으며 응용 프로그램의 기본 모델을 Linkai 플랫폼에서 수정할 수 있습니다. 구성 템플릿에서 기본적으로 시작하는 응용 프로그램은 터미널이며 추가 구성이 필요하지 않습니다. python3 app.py 프로젝트 디렉토리에서 직접 실행하여 프로그램을 시작할 수 있습니다. 사용자는 명령 줄 입력을 통해 대화 모델과 상호 작용하며 스트리밍 응답 효과를 지원합니다.

기고자 : 요법
의존성
pip3 install PyJWT flask flask_socketio구성
" channel " : {
" type " : " http " ,
" http " : {
" http_auth_secret_key " : " 6d25a684-9558-11e9-aa94-efccd7a0659b " , // JWT authentication secret key
" http_auth_password " : " 6.67428e-11 " , // Authentication password, just for personal use, a preliminary defense against others scanning ports and DDOS wasting tokens
" port " : " 80 " // Port
}
} 로컬 실행 : python3 app.py 실행 한 후 http://127.0.0.1:80 액세스하십시오.
서버에서 실행 : 배포 후 http://public domain or IP:port 액세스하십시오.
요구 사항 : 서버 및 가입 계정.
Werobot 종속성을 설치하십시오.
pip3 install werobot " channel " : {
" type " : " wechat_mp " ,
" wechat_mp " : {
" token " : " YOUR TOKEN " , # Token value
" port " : " 8088 " # Port the program listens on
}
} 프로젝트 디렉토리에서 python3 app.py 실행하십시오. 터미널에 다음을 표시하면 성공적인 작동을 나타냅니다.
[INFO][2023-02-16 01:39:53][app.py:12] - [INIT] load config: ...
[INFO][2023-02-16 01:39:53][wechat_mp_channel.py:25] - [WX_Public] Wechat Public account service start!
Bottle v0.12.23 server starting up (using AutoServer())...
Listening on http://127.0.0.1:8088/
Hit Ctrl-C to quit.
WeChat 공식 플랫폼의 개인 가입 계정으로 이동하여 서버 구성을 활성화하십시오.

서버 주소 (URL) 구성 : 브라우저의 구성 URL을 통해 서버의 Python 프로그램에 액세스 할 수 있다면 (포트 8088의 기본 청취) 구성이 유효 함을 나타냅니다. 구독 계정은 포트 80/443 만 구성 할 수 있으므로 포트 80에서 직접 청취하도록 구성을 수정하거나 NGINX와 같은 리버스 프록시 전달을 사용할 수 있습니다. 공식 문서에 따르면 여기에서 공개 IP 또는 도메인 이름을 작성할 수 있습니다.
토큰 구성 : config.json 구성의 토큰과 일치해야합니다.
자세한 작업 프로세스는 공식 문서를 참조하십시오.
사용자가 구독 계정을 따르면 메시지를 보낼 수 있습니다.
참고 : 사용자가 메시지를 보낸 후 WeChat 백엔드는 구성된 URL 주소로 푸시하지만 5 초 이내에 응답이 없으면 연결이 연결이 끊어지고 3 회 재 시도합니다. 그러나 OpenAI 인터페이스에 대한 요청은 종종 5 초 이상이 걸립니다. 이 프로젝트에서 비동기 및 캐싱 방법은 5 초 시간의 시간 제한을 15 초로 최적화했지만이 시간을 초과하면 여전히 정상 답글을 허용하지 않습니다. 동시에, 5 초 후에 연결이 분리 될 때마다 웹 프레임 워크는 오류를보고하며 나중에 최적화됩니다.
요구 사항 : 서버 및 인증 서비스 계정.
Enterprise Service 계정에서 개인 가입 계정의 15 초 타임 아웃 문제는 OpenAI 인터페이스에 먼저 비동기로 액세스 한 다음 고객 서비스 인터페이스를 통해 사전에 사용자에게 적극적으로 푸시하여 해결됩니다. 서비스 계정의 개발자 모드 구성은 가입 계정의 구성과 유사합니다. 자세한 내용은 공식 문서를 참조하십시오.
Enterprise Service 계정의 config.json 구성은 유형을 wechat_mp_service 로만 변경하면되지만 구성 블록은 여전히 wechat_mp 재사용하며 app_id 와 app_secret 의 두 구성 항목을 추가해야합니다.
" channel " : {
" type " : " wechat_mp_service " ,
" wechat_mp " : {
" token " : " YOUR TOKEN " , # Token value
" port " : " 8088 " , # Port the program listens on
" app_id " : " YOUR APP ID " , # App ID
" app_secret " : " YOUR APP SECRET " # App secret
}
}참고 : 서버 IP 주소는 "IP Whitelist"에 구성되어야합니다. 그렇지 않으면 사용자는 사전에 푸시 된 메시지를받지 않습니다.
요구 사항 : PC 또는 서버 (국내 네트워크) 및 QQ 계정.
QQ BOT를 실행하려면 QQ 메시지를 수신하고 전송하는 책임이있는 go-cqhttp 프로그램을 추가로 실행해야하며 bot-on-anything 프로그램은 OpenAI에 액세스하여 대화 컨텐츠를 생성해야합니다.
go-cqhttp 릴리스에서 해당 기계 프로그램을 다운로드하여 unzip it 및 go-cqhttp 바이너리 파일을 bot-on-anything/channel/qq 디렉토리에 배치하십시오. config.yml 구성 파일은 이미 여기에서 준비되어 있습니다. QQ 계정 구성 (Account-Uin) 만 작성하면됩니다.
AIOCQHTTP를 사용하여 GO-CQHTTP와 상호 작용하고 다음 명령을 실행하여 종속성을 설치하십시오.
pip3 install aiocqhttp config.json configuration 파일의 채널 블록에서 type qq 로 변경하기 만하면됩니다.
" channel " : {
" type " : " qq "
} 먼저 bot-on-anything Project의 루트 디렉토리로 이동하여 1 터미널에서 실행하십시오.
python3 app.py # This will listen on port 8080 두 번째 단계 인 터미널 2를 열면 cqhttp 있는 디렉토리로 이동하여 실행하십시오.
cd channel/qq
./go-cqhttp메모:
device.json 파일의 protocol 값을 GO-CQHTTP와 동일한 디렉토리의 5에서 2로 변경할 수 있습니다.이 문제를 참조하십시오.기고자 : Brucelt1993
6.1 토큰을 얻으십시오
Telegram Bot을 신청하는 것은 Google에서 쉽게 찾을 수 있습니다. 중요한 것은 봇의 토큰 ID를 얻는 것입니다.
6.2 종속성 설치
pip install pyTelegramBotAPI6.3 구성
" channel " : {
" type " : " telegram " ,
" telegram " :{
" bot_token " : " YOUR BOT TOKEN ID "
}
}요구 사항 : 서버 및 Gmail 계정.
기고자 : 사이먼
공식 문서를 따라 Google 계정의 앱 비밀번호를 작성하고 아래와 같이 구성한 다음 건배하십시오 !!!
" channel " : {
" type " : " gmail " ,
" gmail " : {
" subject_keyword " : [ " bot " , " @bot " ],
" host_email " : " [email protected] " ,
" host_password " : " GMAIL ACCESS KEY "
}
}❉ 더 이상 서버 나 공개 IP가 필요하지 않습니다
기고자 : Amaoo
의존성
pip3 install slack_bolt구성
" channel " : {
" type " : " slack " ,
" slack " : {
" slack_bot_token " : " xoxb-xxxx " ,
" slack_app_token " : " xapp-xxxx "
}
}봇 토큰 범위 - OAUTH 및 권한을 설정하십시오
봇 사용자 Oauth 토큰을 구성 파일 slack_bot_token 에 작성하십시오.
app_mentions:read
chat:write
소켓 모드 - 소켓 모드를 활성화합니다
애플리케이션 수준의 토큰을 만들지 않은 경우 하나를 생성하라는 메시지가 표시됩니다. 생성 된 토큰을 구성 파일 slack_app_token 에 쓰십시오.
이벤트 구독 (이벤트 구독) - 봇 이벤트를 구독하십시오
app_mention
참조 문서
https://slack.dev/bolt-python/tutorial/getting-started
요구 사항 :
의존성
pip3 install requests flask구성
" channel " : {
" type " : " dingtalk " ,
" dingtalk " : {
" image_create_prefix " : [ " draw " , " draw " , " Draw " ],
" port " : " 8081 " , # External port
" dingtalk_token " : " xx " , # Access token of the webhook address
" dingtalk_post_token " : " xx " , # Verification token carried in the header when DingTalk posts back messages
" dingtalk_secret " : " xx " # Security encryption signature string in the group robot
}
}참조 문서 :
로봇을 생성하십시오
주소 : https://open-dev.dingtalk.com/fe/app#/corp/robot 로봇을 추가하고 개발 관리에서 서버의 아웃 바운드 IP를 설정하고 메시지 수신 주소 (https://xx.xx.com:8081과 같은 구성의 외부 주소)를 설정합니다.
의존성
pip3 install requests flask구성
" channel " : {
" type " : " feishu " ,
" feishu " : {
" image_create_prefix " : [
" draw " ,
" draw " ,
" Draw "
],
" port " : " 8082 " , # External port
" app_id " : " xxx " , # Application app_id
" app_secret " : " xxx " , # Application Secret
" verification_token " : " xxx " # Event subscription Verification Token
}
}로봇을 생성하십시오
주소 : https://open.feishu.cn/app/
요구 사항 : 서버 및 인증 된 기업 Wechat.
Enterprise weChat의 config.json 구성은 기본 메시지가 서버 URL을 수신하면 유형을 wechat_com 으로 변경하면됩니다 : http : // ip : 8888/wechat.
" channel " : {
" type " : " wechat_com " ,
" wechat_com " : {
" wechat_token " : " YOUR TOKEN " , # Token value
" port " : " 8888 " , # Port the program listens on
" app_id " : " YOUR APP ID " , # App ID
" app_secret " : " YOUR APP SECRET " , # App secret
" wechat_corp_id " : " YOUR CORP ID " ,
" wechat_encoding_aes_key " : " YOUR AES KEY "
}
}참고 : 서버 IP 주소는 "Enterprise Trusted IP"목록에 구성되어야합니다. 그렇지 않으면 사용자는 사전에 푸시 된 메시지를받지 않습니다.
참조 문서 :
clear_memory_commands : 대화 내부 명령 이전 메모리를 적극적으로 지우기 위해 문자열 배열은 명령 별명을 사용자 정의 할 수 있습니다.