
[ภาษาอังกฤษ] | [中文]
Bot On Thanks เป็นตัวสร้าง AI Chatbot ที่ทรงพลังซึ่งช่วยให้คุณสามารถสร้าง chatbots ได้อย่างรวดเร็วและเรียกใช้พวกเขาทุกที่
นักพัฒนาสามารถสร้างและเรียกใช้หุ่นยนต์บทสนทนาอัจฉริยะโดยเลือกการเชื่อมต่อระหว่างโมเดล AI ขนาดใหญ่และช่องแอปพลิเคชันที่มีการกำหนดค่าที่มีน้ำหนักเบา รองรับการสลับง่าย ๆ ระหว่างหลายเส้นทางภายในโครงการเดียว สถาปัตยกรรมนี้มีความยืดหยุ่นที่แข็งแกร่ง แต่ละแอปพลิเคชันสามารถนำความสามารถของโมเดลที่มีอยู่กลับมาใช้ใหม่และแต่ละรุ่นใหม่สามารถทำงานบนช่องแอปพลิเคชันทั้งหมดได้
รุ่น:
แอปพลิเคชัน:
ต้องติดตั้งระบบ Linux, MacOS และ Windows และ Python ขอแนะนำให้ใช้เวอร์ชัน Python ระหว่าง 3.7.1 ถึง 3.10
โคลนรหัสโครงการและติดตั้งการพึ่งพา:
git clone https://github.com/zhayujie/bot-on-anything
cd bot-on-anything/
pip3 install -r requirements.txt ไฟล์การกำหนดค่าหลักคือ 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หากการติดตั้งล้มเหลวคุณสามารถอัพเกรด PIP ก่อนด้วยpip3 install --upgrade 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 : การกำหนดค่านี้จะช่วยประหยัดข้อความที่คุณพูดกับ Chatgpt และมันจะจดจำข้อความนี้เป็นการตั้งค่า คุณสามารถปรับแต่งบุคลิกภาพใด ๆ ได้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 โดยตรงในไดเรกทอรีโครงการ ผู้ใช้โต้ตอบกับรูปแบบการสนทนาผ่านอินพุตบรรทัดคำสั่งและรองรับเอฟเฟกต์การตอบสนองการสตรีม

ผู้สนับสนุน: regimenarsenic
การพึ่งพาอาศัยกัน
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) : หากคุณสามารถเข้าถึงโปรแกรม Python บนเซิร์ฟเวอร์ผ่าน URL ที่กำหนดค่าไว้ในเบราว์เซอร์ (การฟังเริ่มต้นบนพอร์ต 8088) จะระบุว่าการกำหนดค่านั้นถูกต้อง เนื่องจากบัญชีการสมัครสมาชิกสามารถกำหนดค่าพอร์ต 80/443 เท่านั้นคุณสามารถแก้ไขการกำหนดค่าเพื่อฟังโดยตรงบนพอร์ต 80 (ต้องใช้สิทธิ์ SUDO) หรือใช้การส่งต่อพร็อกซีย้อนกลับ (เช่น Nginx) ตามเอกสารอย่างเป็นทางการคุณสามารถกรอกชื่อ IP หรือชื่อโดเมนสาธารณะได้ที่นี่
การกำหนดค่าโทเค็น : ต้องสอดคล้องกับโทเค็นในการกำหนดค่า config.json
สำหรับกระบวนการดำเนินการโดยละเอียดโปรดดูเอกสารอย่างเป็นทางการ
หลังจากผู้ใช้ติดตามบัญชีการสมัครสมาชิกพวกเขาสามารถส่งข้อความได้
หมายเหตุ: หลังจากผู้ใช้ส่งข้อความแบ็กเอนด์ WeChat จะส่งไปยังที่อยู่ URL ที่กำหนดค่า แต่หากไม่มีการตอบกลับภายใน 5 วินาทีการเชื่อมต่อจะถูกตัดการเชื่อมต่อและจะลอง 3 ครั้ง อย่างไรก็ตามการร้องขอไปยังอินเทอร์เฟซ OpenAI มักจะใช้เวลามากกว่า 5 วินาที ในโครงการนี้วิธีการแบบอะซิงโครนัสและแคชได้ปรับขีด จำกัด การหมดเวลา 5 วินาทีให้เหมาะสมถึง 15 วินาที แต่เกินเวลานี้จะยังไม่อนุญาตให้ตอบกลับปกติ ในเวลาเดียวกันทุกครั้งที่การเชื่อมต่อถูกตัดการเชื่อมต่อหลังจาก 5 วินาทีเฟรมเวิร์กเว็บจะรายงานข้อผิดพลาดซึ่งจะได้รับการปรับให้เหมาะสมในภายหลัง
ข้อกำหนด: เซิร์ฟเวอร์และบัญชีบริการที่ผ่านการรับรอง
ในบัญชี Service Enterprise ฉบับการหมดเวลา 15 วินาทีของบัญชีการสมัครสมาชิกส่วนบุคคลได้รับการแก้ไขโดยการเข้าถึงอินเทอร์เฟซ OpenAI ครั้งแรกจากนั้นส่งไปยังผู้ใช้ในเชิงรุกผ่านอินเทอร์เฟซบริการลูกค้า การกำหนดค่าโหมดนักพัฒนาของบัญชีบริการคล้ายกับของบัญชีการสมัครสมาชิก สำหรับรายละเอียดอ้างอิงเอกสารอย่างเป็นทางการ
การกำหนดค่า 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"; มิฉะนั้นผู้ใช้จะไม่ได้รับข้อความผลักดันเชิงรุก
ข้อกำหนด: พีซีหรือเซิร์ฟเวอร์ (เครือข่ายในประเทศ) และบัญชี QQ
การรัน QQ Bot ต้องใช้โปรแกรม go-cqhttp เพิ่มเติมซึ่งรับผิดชอบในการรับและส่งข้อความ QQ ในขณะที่โปรแกรม bot-on-anything ของเรารับผิดชอบการเข้าถึง OpenAI เพื่อสร้างเนื้อหาบทสนทนา
ดาวน์โหลดโปรแกรมเครื่องที่สอดคล้องกันจากการเปิดตัว GO-CQHTTP, เปิดซิปและวางไฟล์ไบนารี go-cqhttp ในไดเรกทอรี bot-on-anything/channel/qq ของเรา ไฟล์กำหนดค่า config.yml ได้เตรียมไว้แล้วที่นี่ คุณจะต้องกรอกการกำหนดค่าบัญชี QQ (Account-UIN)
ใช้ AIOCQHTTP เพื่อโต้ตอบกับ GO-CQHTTP ดำเนินการคำสั่งต่อไปนี้เพื่อติดตั้งการพึ่งพา:
pip3 install aiocqhttp เพียงเปลี่ยน type ในบล็อกช่องสัญญาณ config.json configuration เป็น qq :
" channel " : {
" type " : " qq "
} ก่อนอื่นให้ไปที่ไดเรกทอรีรากของโครงการ bot-on-anything และทำงานในเทอร์มินัล 1:
python3 app.py # This will listen on port 8080 ในขั้นตอนที่สอง Open Terminal 2 นำทางไปยังไดเรกทอรีที่ cqhttp ตั้งอยู่และเรียกใช้:
cd channel/qq
./go-cqhttpบันทึก:
protocol ในไฟล์ device.json ในไดเรกทอรีเดียวกับ GO-CQHTTP จาก 5 เป็น 2 อ้างถึงปัญหานี้ผู้สนับสนุน: Brucelt1993
6.1 รับโทเค็น
การใช้งาน Telegram Bot สามารถพบได้อย่างง่ายดายบน Google สิ่งสำคัญคือการได้รับรหัสโทเค็นของบอท
6.2 การติดตั้งการพึ่งพา
pip install pyTelegramBotAPI6.3 การกำหนดค่า
" channel " : {
" type " : " telegram " ,
" telegram " :{
" bot_token " : " YOUR BOT TOKEN ID "
}
}ข้อกำหนด: เซิร์ฟเวอร์และบัญชี Gmail
ผู้สนับสนุน: Simon
ทำตามเอกสารอย่างเป็นทางการเพื่อสร้างรหัสผ่านแอพสำหรับบัญชี 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 & Permission
เขียนโทเค็น OAuth ผู้ใช้ BOT ลงในไฟล์การกำหนดค่า slack_bot_token
app_mentions:read
chat:write
เปิดใช้งานโหมดซ็อกเก็ต - โหมดซ็อกเก็ต
หากคุณยังไม่ได้สร้างโทเค็นระดับแอปพลิเคชันคุณจะได้รับแจ้งให้สร้าง เขียนโทเค็นที่สร้างขึ้นลงในไฟล์การกำหนดค่า slack_app_token
การสมัครสมาชิกเหตุการณ์ (การสมัครสมาชิกเหตุการณ์) - สมัครสมาชิก Bot Events
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 ขององค์กรที่ผ่านการรับรอง
การกำหนดค่า config.json สำหรับ enterprise weChat จำเป็นต้องเปลี่ยนประเภทเป็น wechat_com ด้วย URL เซิร์ฟเวอร์ที่ได้รับข้อความเริ่มต้น: 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 ของเซิร์ฟเวอร์จะต้องกำหนดค่าในรายการ "IP ที่เชื่อถือได้ขององค์กร"; มิฉะนั้นผู้ใช้จะไม่ได้รับข้อความผลักดันเชิงรุก
เอกสารอ้างอิง :
clear_memory_commands : คำสั่งภายในบทสนทนาเพื่อล้างหน่วยความจำก่อนหน้านี้อย่างแข็งขันอาร์เรย์สตริงสามารถปรับแต่งนามแฝงคำสั่ง