FBChatBot / README.md
VietCat's picture
fix conflict
c1fee4c
metadata
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:
git clone https://github.com/yourusername/webot.git
cd webot
  1. Tạo và kích hoạt môi trường ảo:
python -m venv venv
source venv/bin/activate  # Linux/Mac
# hoặc
.\venv\Scripts\activate  # Windows
  1. Cài đặt dependencies:
pip install -r requirements.txt
  1. 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
  1. 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
  1. 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

uvicorn app.main:app --reload

Production với Docker

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:
flyctl auth login
flyctl launch
  1. Deploy:
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.