แชทบน WhatsApp ด้วย AI
เซิร์ฟเวอร์: Node.JS, Express
ฐานข้อมูล: Redis
API: WhatsApp Business Cloud API, OpenAI GPT-3
การปรับใช้: นักเทียบท่า, Nginx, Linode
อื่นๆ: ElasticSearch, Kibana
ตัวเชื่อมต่อ whatsapp: ตัวเชื่อมต่อ Whatsapp เป็นไมโครเซอร์วิสที่เชื่อมต่อบอทกับ WhatsApp API จัดการการส่งข้อความและคำขอขาเข้าจาก WhatsApp
chatbot: Chatbot เป็นไมโครเซอร์วิสที่จะเชื่อมต่อกับโมเดล OpenAI GPT-3 เพื่อตอบคำถามของผู้ใช้ตามการแจ้งเตือน
จำเป็นต้องมีข้อกำหนดเบื้องต้นและการกำหนดค่าหลายประการบน Meta Developers โปรดปฏิบัติตามคำแนะนำด้านล่างของฉันเพื่อดูรายละเอียด: https://blog.amitwani.dev/create-a-chatbot-using-whatsapp-cloud-api
docker-compose
อัปเดตตัวแปรสภาพแวดล้อม
docker-compose-local.yml
ภายในโฟลเดอร์ docker
สำหรับตัวแปรสภาพแวดล้อมด้านล่าง:VERIFY_TOKEN
- ตรวจสอบโทเค็นสำหรับ WhatsApp WebhookOPENAI_API_KEY
- คีย์ OpenAI APIWHATSAPP_TOKEN
- โทเค็นการตรวจสอบสิทธิ์ถาวร/ชั่วคราวของ WhatsApp Business พร้อมสิทธิ์ whatsapp_business_messaging
WHATSAPP_SEND_MESSAGE_API
- จุดสิ้นสุด API ส่งข้อความของ WhatsApp Cloud API พร้อมรหัสหมายเลขโทรศัพท์CHATBOT_URL
- URL ไมโครเซอร์วิส API ของ Chatbot รันคำสั่ง docker-compose -f docker-compose.local.yml up -d
ภายในโฟลเดอร์ docker
npm
ไปที่ whatsapp-connector
และ chatbot
เพื่อติดตั้งการอ้างอิง
npm install
หรือ
yarn add
อัปเดตตัวแปรสภาพแวดล้อม
.env
โดยการคัดลอก .env.sample
ในไมโครเซอร์วิสทั้งสองVERIFY_TOKEN
- ตรวจสอบโทเค็นสำหรับ WhatsApp WebhookOPENAI_API_KEY
- คีย์ OpenAI APIWHATSAPP_TOKEN
- โทเค็นการตรวจสอบสิทธิ์ถาวร/ชั่วคราวของ WhatsApp Business พร้อมสิทธิ์ whatsapp_business_messaging
WHATSAPP_SEND_MESSAGE_API
- จุดสิ้นสุด API ส่งข้อความของ WhatsApp Cloud API พร้อมรหัสหมายเลขโทรศัพท์CHATBOT_URL
- URL ไมโครเซอร์วิส API ของ Chatbotเรียกใช้เซิร์ฟเวอร์
npm run start
ปรับใช้กับ Docker ได้อย่างง่ายดายโดยใช้ Dockerfile
ที่ให้ไว้ในโฟลเดอร์บริการที่เกี่ยวข้องหรือ docker-compose.yml
ในโฟลเดอร์ docker
GitHub Actions ใช้เพื่อสร้างเวิร์กโฟลว์ CI/CD ที่ระบุใน workflow.yml
main
docker-compose.yml
โดยแทนที่ตัวแปรสภาพแวดล้อมจากความลับ GitHubdocker-compose.yml
และ nginx.conf
ไปยังเซิร์ฟเวอร์docker-compose
เพื่อสร้างคอนเทนเนอร์ขึ้นใหม่หากคุณมีข้อเสนอแนะใด ๆ โปรดติดต่อฉันที่ [email protected]