ChatGPT-WechatBot เป็นหุ่นยนต์ที่มีลักษณะคล้าย chatGPT ที่ใช้งานโดยใช้โมเดลบทสนทนาที่อิงตาม OpenAI API อย่างเป็นทางการ และใช้งานบน WeChat ผ่านเฟรมเวิร์ก Wechaty เพื่อใช้งานการแชทด้วยหุ่นยนต์
ChatGPT WechatBot เป็นหุ่นยนต์ chatGPT ชนิดหนึ่งที่ใช้ API อย่างเป็นทางการของ OpenAI และใช้โมเดลบทสนทนา ซึ่งถูกปรับใช้บน WeChat ผ่านกรอบงาน Wechat เพื่อให้บรรลุการแชทด้วยหุ่นยนต์
หมายเหตุ : โปรเจ็กต์นี้เป็นการใช้งาน Win10 ในเครื่อง และไม่ต้องการการปรับใช้เซิร์ฟเวอร์ (หากจำเป็นต้องมีการปรับใช้เซิร์ฟเวอร์ คุณสามารถปรับใช้นักเทียบท่ากับเซิร์ฟเวอร์ได้)
(1), Windows10
(2), นักเทียบท่า 20.10.21
(3), หลาม3.9
(4), Wechaty 0.10.7
1. ดาวน์โหลดนักเทียบท่า
https://www.docker.com/products/docker-desktop/ ดาวน์โหลด Docker
2. เปิดการจำลองเสมือน Win10
ป้อนการควบคุมเป็น cmd เพื่อเปิดแผงควบคุมและเข้าสู่โปรแกรมดังแสดงในรูปด้านล่าง:
ไปที่ เปิดหรือปิดคุณสมบัติ Windows แล้วเปิด Hyper-V
หมายเหตุ : หากคอมพิวเตอร์ของคุณไม่มี Hyper-V คุณต้องดำเนินการดังต่อไปนี้:
สร้างเอกสารข้อความ กรอกโค้ดต่อไปนี้ และตั้งชื่อเป็น Hyper.cmd
pushd " %~dp0 "
dir /b %SystemRoot% s ervicing P ackages * Hyper-V * .mum > hyper-v.txt
for /f %%i in ( ' findstr /i . hyper-v.txt 2^>nul ' ) do dism /online /norestart /add-package: " %SystemRoot%servicingPackages%%i "
del hyper-v.txt
Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL
จากนั้นเรียกใช้ไฟล์นี้ในฐานะผู้ดูแลระบบ หลังจากที่สคริปต์ทำงานเสร็จแล้ว จะมีโหนด Hyper-V หลังจากรีสตาร์ทคอมพิวเตอร์
3. เรียกใช้นักเทียบท่า
หมายเหตุ : หากสิ่งต่อไปนี้เกิดขึ้นเมื่อใช้งาน Docker เป็นครั้งแรก:
จำเป็นต้องดาวน์โหลดแพ็คเกจ WSL 2 ล่าสุด
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
หลังจากอัปเดต คุณสามารถเข้าสู่หน้าหลัก จากนั้นเปลี่ยนการตั้งค่าในกลไกนักเทียบท่า และแทนที่รูปภาพด้วยรูปภาพภายในประเทศของ Alibaba Cloud:
{
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
},
"debug": false,
"experimental": false,
"features": {
"buildkit": true
},
"insecure-registries": [],
"registry-mirrors": [
"https://9cpn8tt6.mirror.aliyuncs.com"
]
}
วิธีนี้ทำให้ดึงกระจกออกได้เร็วยิ่งขึ้น (สำหรับผู้ใช้ในประเทศ)
4. ดึงภาพ Wechaty :
docker pull wechaty:0 . 65
เพราะในระหว่างการทดสอบพบว่า wechaty เวอร์ชัน 0.65 มีความเสถียรมากที่สุด
หลังจากดึงภาพแล้ว:
Puppet : หากคุณต้องการใช้ Wechaty เพื่อพัฒนาหุ่นยนต์ WeChat คุณต้องใช้ Middleware Puppet เพื่อควบคุมการทำงานของ WeChat การแปลอย่างเป็นทางการของ Puppet คือ Puppet หลายประเภท ของ Puppet คือฟังก์ชั่นต่างๆ ของหุ่นยนต์ที่สามารถทำได้ ตัวอย่างเช่น หากคุณต้องการให้หุ่นยนต์ไล่ผู้ใช้ออกจากการแชทเป็นกลุ่ม คุณต้องใช้ Puppet ภายใต้โปรโตคอล Pad
สมัครเชื่อมต่อ: http://pad-local.com/#/login
หมายเหตุ : หลังจากสมัครบัญชีแล้ว คุณจะได้รับโทเค็น 7 วัน
หลังจากสมัครโทเค็นแล้ว ให้รันคำสั่งต่อไปนี้ในหน้าต่าง cmd:
docker run - it - d -- name wechaty_test - e WECHATY_LOG="verbose" - e WECHATY_PUPPET="wechaty - puppet - padlocal" - e WECHATY_PUPPET_PADLOCAL_TOKEN="yourtoken" - e WECHATY_PUPPET_SERVER_PORT="8080" - e WECHATY_TOKEN="1fe5f846 - 3cfb - 401d - b20c - sailor==" - p "8080:8080" wechaty/wechaty:0 . 65
คำอธิบายพารามิเตอร์:
WECHATY_PUPPET_PADLOCAL_TOKEN : สมัครเพื่อรับโทเค็นที่ดี
**WECHATY_TOKEN **: เพียงเขียนสตริงสุ่มที่รับประกันว่าจะไม่ซ้ำกัน
WECHATY_PUPPET_SERVER_PORT : พอร์ตเซิร์ฟเวอร์นักเทียบท่า
wechaty/wechaty:0.65 : เวอร์ชันของรูปภาพ wechaty
หมายเหตุ: - "8080:8080"* คือพอร์ตของเครื่องท้องถิ่นและเซิร์ฟเวอร์นักเทียบท่าของคุณ โปรดทราบว่าพอร์ตเซิร์ฟเวอร์นักเทียบท่าจะต้องสอดคล้องกับ WECHATY_PUPPET_SERVER_PORT
หลังจากรันแล้ว ให้ดูคอนเทนเนอร์ในแผงเดสก์ท็อปนักเทียบท่า:
เข้าสู่อินเทอร์เฟซบันทึก:
คุณสามารถสแกนรหัส QR เพื่อเข้าสู่ระบบ WeChat ได้จากลิงก์ด้านล่าง
หลังจากเข้าสู่ระบบ บริการนักเทียบท่าจะเสร็จสมบูรณ์
ติดตั้งไลบรารี่ wechaty และ openai
เปิด cmd และดำเนินการคำสั่งต่อไปนี้:
pip install wechaty
pip install openai
เข้าสู่ระบบ openAI
https://beta.openai.com/
คลิก ดูคีย์ API
เพิ่งได้รับ API kyes
ณ จุดนี้ สภาพแวดล้อมได้รับการตั้งค่า
คุณสามารถลองอ่านรหัส สาธิต นี้
import openai
openai . api_key = "your API-KEY"
start_sequence = "A:"
restart_sequence = "Q: "
while True :
print ( restart_sequence , end = "" )
prompt = input ()
if prompt == 'quit' :
break
else :
try :
response = openai . Completion . create (
model = "text-davinci-003" ,
prompt = prompt ,
temperature = 0.9 ,
max_tokens = 2000 ,
frequency_penalty = 0 ,
presence_penalty = 0
)
print ( start_sequence , response [ "choices" ][ 0 ][ "text" ]. strip ())
except Exception as exc :
print ( exc )
รหัสนี้เรียกรุ่น CPT-3 ซึ่งเป็นรุ่นเดียวกับ chatGPT และผลตอบรับก็ดีเช่นกัน
เปิดตัวโมเดล GPT-3 ของ openAI ดังนี้:
รุ่น GPT-3 ของเราสามารถเข้าใจและสร้างภาษาที่เป็นธรรมชาติได้ เรามีโมเดลหลัก 4 รุ่นที่มีระดับพลังงานที่แตกต่างกันซึ่งเหมาะสำหรับงานที่แตกต่างกัน และ Ada คือรุ่นที่เร็วที่สุด
รุ่นใหม่ล่าสุด | คำอธิบาย | คำขอสูงสุด | ข้อมูลการฝึกอบรม |
---|---|---|---|
ข้อความ-ดาวินชี-003 | รุ่น GPT-3 ที่มีความสามารถมากที่สุด สามารถทำงานใดๆ ก็ตามที่รุ่นอื่นๆ ทำได้ โดยมักจะมีคุณภาพสูงกว่า แสดงผลได้นานกว่า และปฏิบัติตามคำสั่งได้ดีกว่า นอกจากนี้ยังรองรับการแทรกข้อความที่สมบูรณ์ภายในข้อความอีกด้วย | 4,000 โทเค็น | จนถึงเดือนมิถุนายน 2021 |
ข้อความ-curie-001 | มีความสามารถมาก แต่เร็วกว่าและถูกกว่า Davinci | โทเค็น 2,048 | จนถึงเดือนตุลาคม 2019 |
ข้อความ-babbage-001 | สามารถทำงานตรงไปตรงมา รวดเร็วมาก และต้นทุนต่ำกว่า | โทเค็น 2,048 | จนถึงเดือนตุลาคม 2019 |
ข้อความ-ada-001 | สามารถทำงานได้ง่ายมาก ซึ่งโดยปกติจะเป็นรุ่นที่เร็วที่สุดในซีรีส์ GPT-3 และต้นทุนต่ำที่สุด | โทเค็น 2,048 | จนถึงเดือนตุลาคม 2019 |
แม้ว่าโดยทั่วไปแล้ว Davinci จะมีความสามารถมากที่สุด แต่รุ่นอื่นๆ ก็สามารถทำงานบางอย่างได้เป็นอย่างดีด้วยความเร็วหรือข้อได้เปรียบด้านต้นทุนอย่างมาก ตัวอย่างเช่น Curie สามารถทำงานหลายอย่างเหมือนกับ Davinci ได้ แต่เร็วกว่าและมีค่าใช้จ่ายถึง 1 ใน 10
เราขอแนะนำให้ใช้ Davinci ในขณะที่ทำการทดลองเนื่องจากจะให้ผลลัพธ์ที่ดีที่สุด เมื่อคุณได้สิ่งที่ได้ผลแล้ว เราขอแนะนำให้ลองใช้โมเดลอื่นๆ เพื่อดูว่าคุณจะได้ผลลัพธ์เดียวกันโดยมีเวลาแฝงที่ต่ำกว่าหรือไม่ คุณยังสามารถปรับปรุงอีกรุ่นหนึ่งได้อีกด้วย ประสิทธิภาพของโมเดลโดยการปรับแต่งอย่างละเอียดในงานเฉพาะ
กล่าวโดยย่อคือรุ่น GPT-3 ที่ทรงพลังที่สุด สามารถทำอะไรก็ได้ที่รุ่นอื่นๆ ทำได้ โดยปกติแล้วจะมีคุณภาพสูงกว่า เอาท์พุตที่ยาวกว่า และการปฏิบัติตามคำสั่งที่ดีกว่า นอกจากนี้ยังรองรับการแทรกคำเติมลงในข้อความด้วย
แม้ว่าการใช้โมเดล text-davinci-003 โดยตรงสามารถบรรลุผลการสนทนารอบเดียวของ chatGPT ได้ แต่เพื่อให้บรรลุผลการสนทนาหลายรอบเช่นเดียวกับ chatGPT ให้ดีขึ้น จึงสามารถออกแบบโมเดลการสนทนาได้
หลักการพื้นฐาน: บอก โมเดล text-davinci-003 ถึงบริบทของการสนทนาปัจจุบัน
วิธีการนำไปใช้: ออกแบบคิวหน่วยความจำบทสนทนาเพื่อบันทึกบทสนทนา k รอบแรกของบทสนทนาปัจจุบัน และบอก แบบจำลอง text-davinci-003 ถึงเนื้อหาของบทสนทนา k รอบแรก ก่อนที่จะถามคำถาม จากนั้นจึงได้คำตอบปัจจุบัน ผ่านเนื้อหา โมเดล text-davinci-003
วิธีนี้ใช้ได้ผลดีอย่างน่าประหลาดใจ! ให้บันทึกการสนทนาบางส่วน
จะเห็นได้ว่า AI ยังสามารถเรียนรู้ตามสถานการณ์ผ่านพื้นหลังแชทได้อีกด้วย
ไม่เพียงเท่านั้น คุณยังสามารถเขียนบทความแนะนำแบบเดียวกับ chatGPT ได้อีกด้วย
โมเดลนี้เป็นวิธีการที่ฉันกำลังคิดจะเพิ่มประสิทธิภาพโมเดลบทสนทนาพื้นหลังการแชท ตรรกะพื้นฐานของมันเหมือนกับโมเดลภาษา N-gram ยกเว้นว่า N มีการเปลี่ยนแปลงแบบไดนามิกและมีการเพิ่มคุณสมบัติ Markov เพื่อทำนายความสัมพันธ์ของบทสนทนาในปัจจุบัน กับบริบทเพื่อตัดสินว่าส่วนในพื้นหลังแชทนั้นสำคัญที่สุด แล้วใช้โมเดล text-davinci-003 ให้คำตอบตามเนื้อหาบทสนทนาที่จดจำไว้ที่สำคัญที่สุดรวมกับปัญหาปัจจุบัน (เทียบเท่า เพื่อให้ AI ดำเนินการระหว่างแชทโดยใช้เนื้อหาแชทก่อนหน้า)
การใช้งานโมเดลนี้ต้องใช้ข้อมูลจำนวนมากสำหรับการฝึก และโค้ดยังไม่เสร็จสมบูรณ์
------ การขุด : หลังจากนำโค้ดไปใช้แล้ว ให้อัปเดตส่วนนี้ของขั้นตอนโดยละเอียด
ตรรกะพื้นฐานของโครงการดังแสดงในรูปด้านล่าง:
.py เพิ่มและเปิด chatGPT.py ที่ตำแหน่งที่แสดง เพิ่มรหัสลับและกำหนดค่าตัวแปรสภาพแวดล้อมในตำแหน่งที่แสดง
คำอธิบายรหัส :
os . environ [ "WECHATY_PUPPET_SERVICE_TOKEN" ] = "填入你的Puppet的token"
os . environ [ 'WECHATY_PUPPET' ] = 'wechaty-puppet-padlocal' #保证与docker中相同即可
os.environ['WECHATY_PUPPET_SERVICE_ENDPOINT'] = '主机ip:端口号'
วิ่งได้สำเร็จ
1. เข้าสู่ระบบด้วย docker อย่าใช้การเข้าสู่ระบบ wechaty ใน python
2. ตั้งค่า time.sleep() ในโค้ดเพื่อจำลองความเร็วในการตอบกลับข้อความ
3. เป็นการดีที่สุดที่จะไม่ใช้ขนาดใหญ่เมื่อทำการทดสอบ ขอแนะนำให้สร้างขนาดที่เล็กโดยเฉพาะสำหรับการทดสอบ AI
เนื้อหาในโครงการนี้มีไว้เพื่อการวิจัยทางเทคนิคและการเผยแพร่ทางวิทยาศาสตร์เท่านั้น และไม่ได้ทำหน้าที่เป็นพื้นฐานในการสรุปผลใด ๆ ไม่มีการอนุญาตการสมัครเชิงพาณิชย์ใด ๆ และไม่รับผิดชอบต่อพฤติกรรมใด ๆ
~~อีเมล: [email protected]