|
--- |
|
title: FBChatBot |
|
emoji: 😻 |
|
colorFrom: purple |
|
colorTo: red |
|
sdk: docker |
|
pinned: false |
|
app_file: main.py |
|
short_description: 'FaceBook ChatBot' |
|
--- |
|
# WeBot - Facebook Messenger Chatbot |
|
|
|
WeBot là một chatbot Facebook Messenger được xây dựng với FastAPI, tích hợp với Google Sheets để lưu trữ lịch sử hội thoại và Supabase để quản lý token cũng như tìm kiếm vector. |
|
|
|
## Tính năng |
|
|
|
- Webhook Facebook Messenger để nhận và xử lý tin nhắn |
|
- Phân tích nội dung tin nhắn và từ khóa |
|
- Tích hợp với Google Sheets để lưu trữ lịch sử hội thoại |
|
- Sử dụng Supabase để: |
|
- Quản lý access token cho từng Facebook Page |
|
- Vector similarity search với embedding |
|
- Xử lý bất đồng bộ với async/await |
|
- Logging chi tiết với loguru |
|
|
|
## Yêu cầu |
|
|
|
- Python 3.8+ |
|
- Facebook Page và App |
|
- Tài khoản Google Cloud với Sheets API được kích hoạt |
|
- Tài khoản Supabase |
|
|
|
## Cài đặt |
|
|
|
1. Clone repository: |
|
```bash |
|
git clone https://github.com/yourusername/webot.git |
|
cd webot |
|
``` |
|
|
|
2. Tạo và kích hoạt môi trường ảo: |
|
```bash |
|
python -m venv venv |
|
source venv/bin/activate # Linux/Mac |
|
# hoặc |
|
.\venv\Scripts\activate # Windows |
|
``` |
|
|
|
3. Cài đặt dependencies: |
|
```bash |
|
pip install -r requirements.txt |
|
``` |
|
|
|
4. Cấu hình môi trường: |
|
- Copy file `.env.example` thành `.env` |
|
- Điền các thông tin cấu hình cần thiết |
|
|
|
## Cấu hình |
|
|
|
1. Facebook: |
|
- Tạo Facebook App và Page |
|
- Cấu hình webhook với URL của ứng dụng |
|
- Lưu Page Access Token vào Supabase |
|
|
|
2. Google Sheets: |
|
- Tạo project trong Google Cloud Console |
|
- Kích hoạt Sheets API |
|
- Tải credentials.json và cấu hình trong .env |
|
|
|
3. Supabase: |
|
- Tạo bảng `page_tokens` để lưu trữ access token |
|
- Cấu hình vector similarity search |
|
- Tạo RPC function `match_documents` |
|
|
|
## Chạy ứng dụng |
|
|
|
### Phát triển |
|
|
|
```bash |
|
uvicorn app.main:app --reload |
|
``` |
|
|
|
### Production với Docker |
|
|
|
```bash |
|
docker build -t webot . |
|
docker run -p 8000:8000 webot |
|
``` |
|
|
|
## Deploy |
|
|
|
### Fly.io |
|
|
|
1. Cài đặt Fly CLI |
|
2. Đăng nhập và khởi tạo ứng dụng: |
|
```bash |
|
flyctl auth login |
|
flyctl launch |
|
``` |
|
|
|
3. Deploy: |
|
```bash |
|
flyctl deploy |
|
``` |
|
|
|
### Render |
|
|
|
1. Kết nối repository với Render |
|
2. Tạo Web Service mới |
|
3. Cấu hình các biến môi trường |
|
4. Deploy |
|
|
|
## Cấu trúc dự án |
|
|
|
``` |
|
webot/ |
|
├── app/ |
|
│ ├── __init__.py |
|
│ ├── main.py # FastAPI application |
|
│ ├── config.py # Configuration management |
|
│ ├── facebook.py # Facebook Messenger integration |
|
│ ├── sheets.py # Google Sheets integration |
|
│ ├── supabase_db.py # Supabase integration |
|
│ ├── embedding.py # Text embedding |
|
│ └── utils.py # Utility functions |
|
├── requirements.txt |
|
├── Dockerfile |
|
├── .env.example |
|
└── README.md |
|
``` |
|
|
|
## Đóng góp |
|
|
|
Mọi đóng góp đều được hoan nghênh! Vui lòng tạo issue hoặc pull request. |
|
|