File size: 3,070 Bytes
2c8245e 52f5b49 e80e6b3 52f5b49 2c8245e dbb6988 c1fee4c |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 |
---
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.
|