FBChatBot / README.md
VietCat's picture
fix conflict
c1fee4c
---
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.