Chuyển đến nội dung chính
Hướng dẫn AI

Xây dựng và chạy Mini App WeChat học tập tích hợp AI

Tìm hiểu cách cấu hình và chạy Mini App học tập thông minh Cơ sở tri thức AI, kết nối backend FastAPI với frontend Taro, xác minh dịch vụ, chạy kiểm thử và chuẩn bị backend dựa trên Docker để triển khai.

Xây dựng và chạy Mini App WeChat học tập tích hợp AI

Bạn sẽ xây dựng gì

AI Knowledge Base Smart Learning Mini App là một ứng dụng học tập thông minh dành cho hệ sinh thái WeChat. Người học có thể nhập một chủ đề hoặc tải lên tài liệu riêng tư, sau đó sử dụng các quy trình được AI hỗ trợ để tạo câu hỏi, nhận giải thích ngay lập tức và xem báo cáo về mức độ nắm vững, các lĩnh vực còn yếu cùng những bước tiếp theo được đề xuất.

Dự án kết hợp các mô hình ngôn ngữ lớn, tìm kiếm web và phương pháp sinh tăng cường truy xuất. Tavily cung cấp ngữ cảnh web hiện tại, trong khi Chroma hỗ trợ truy xuất từ các tệp PDF, Word, Markdown và TXT đã tải lên.

Tính năng chính

  • Tạo câu hỏi theo chủ đề: Tạo câu hỏi học tập từ chủ đề do người dùng cung cấp.
  • Tăng cường bằng tìm kiếm web: Sử dụng Tavily để bổ sung ngữ cảnh cập nhật.
  • Học với cơ sở kiến thức riêng: Tải lên tài liệu PDF, Word, Markdown hoặc TXT và truy xuất nội dung liên quan bằng RAG.
  • Phản hồi ngay lập tức: Kiểm tra câu trả lời và trả về phần giải thích sau mỗi phản hồi.
  • Báo cáo học tập: Phân tích mức độ nắm vững, xác định lĩnh vực còn yếu và đưa ra gợi ý học tập.
  • Minh họa câu hỏi: Tạo hình ảnh hỗ trợ và lưu trữ chúng trên Tencent Cloud COS.
  • Hỗ trợ người dùng WeChat: Cung cấp chức năng đăng nhập, lịch sử học tập và xem lại báo cáo.
  • Triển khai bằng container: Triển khai backend qua Docker lên WeChat Cloud Run hoặc nền tảng tương thích khác.

Tìm hiểu kiến trúc

Frontend mini app sử dụng Taro 4, React 18, TypeScript và Sass. Backend chạy trên Python 3.11 với FastAPI, Pydantic v2 và Uvicorn. LangChain và LangGraph điều phối các tác vụ AI, với DeepSeek và Alibaba Bailian nằm trong ngăn xếp mô hình và truy xuất.

MySQL cung cấp khả năng lưu trữ dữ liệu ứng dụng, Tencent Cloud COS lưu trữ các hình minh họa được tạo và Chroma đóng vai trò là kho vector. Xác thực sử dụng WeChat jscode2session và JWT. Các bài kiểm thử backend sử dụng pytest và pytest-asyncio.

Bố cục kho mã

.
├── backend/        # Backend FastAPI
├── frontend/       # Frontend mini app WeChat dựa trên Taro
├── docs/           # Tài liệu dự án lưu trữ cục bộ
├── openspec/       # Tệp đặc tả lưu trữ cục bộ
└── prototypes/     # Tệp nguyên mẫu lưu trữ cục bộ

Điều kiện tiên quyết

Trước khi bắt đầu, hãy cài đặt Python 3.11, Node.js kèm npm và WeChat DevTools. Bạn cũng cần các thông tin xác thực dịch vụ và giá trị cấu hình được yêu cầu trong backend/.env.example. Chỉ cần Docker khi bạn sẵn sàng xây dựng hoặc triển khai container backend.

Không đưa khóa API thực, thông tin xác thực cơ sở dữ liệu, bí mật JWT và thông tin xác thực bộ nhớ đám mây vào hệ thống quản lý phiên bản. Bí mật production nên được truyền qua nền tảng triển khai.

Bước 1: Cấu hình Backend

Mở terminal, chuyển vào thư mục backend và tạo môi trường Python biệt lập. README cung cấp quy trình thiết lập dành cho PowerShell sau:

cd backend
python -m venv venv
venv\Scripts\Activate.ps1
pip install -r requirements.txt
copy .env.example .env

Mở tệp .env mới tạo và cung cấp cấu hình cần thiết cho các mô hình đã chọn, tích hợp Tavily, cơ sở dữ liệu, xác thực, truy xuất vector và bộ nhớ Tencent Cloud. Sử dụng backend/.env.example làm danh sách chính thức các biến được yêu cầu.

Khởi động dịch vụ FastAPI

python -m uvicorn app.main:app --reload --host 0.0.0.0 --port 8000

Tùy chọn --reload hữu ích trong quá trình phát triển cục bộ vì Uvicorn sẽ khởi động lại khi mã backend thay đổi. Việc liên kết với 0.0.0.0 giúp dịch vụ phát triển khả dụng thông qua các giao diện mạng của máy.

Xác minh Backend

Sau khi khởi động, hãy mở tài liệu API tương tác tại http://localhost:8000/docs. Bạn cũng có thể kiểm tra tình trạng dịch vụ tại http://localhost:8000/api/v1/health.

Hãy xác minh endpoint kiểm tra tình trạng trước khi xử lý sự cố frontend. Nếu endpoint không khả dụng, hãy xác nhận môi trường ảo đang hoạt động, các phần phụ thuộc đã được cài đặt thành công, tệp .env tồn tại và cổng 8000 chưa được sử dụng.

Bước 2: Xây dựng Frontend Mini App WeChat

Giữ backend đang chạy, mở terminal thứ hai và cài đặt các phần phụ thuộc frontend:

cd frontend
npm install
npm run dev:weapp

Lệnh phát triển sẽ biên dịch ứng dụng Taro cho WeChat. Khi quá trình biên dịch hoàn tất, hãy khởi chạy WeChat DevTools và mở thư mục frontend/dist đã được tạo.

Giữ terminal trình biên dịch mở trong khi phát triển để các thay đổi frontend có thể được biên dịch lại. Máy chủ FastAPI cũng cần tiếp tục hoạt động trong terminal riêng để mini app có thể truy cập chức năng backend.

Bước 3: Thử quy trình học tập

Khi frontend và backend đang chạy, dự án hỗ trợ hai lộ trình học tập chính.

Tạo bài trắc nghiệm từ một chủ đề

  1. Đăng nhập qua quy trình người dùng WeChat.
  2. Nhập môn học bạn muốn học.
  3. Tạo các câu hỏi được AI hỗ trợ dựa trên chủ đề đó.
  4. Gửi câu trả lời và xem lại đáp án cùng phần giải thích được trả về.
  5. Hoàn tất buổi học và xem báo cáo AI để phân tích mức độ nắm vững, các điểm yếu và đề xuất.

Học từ tài liệu riêng tư

  1. Chọn tài liệu PDF, Word, Markdown hoặc TXT được hỗ trợ.
  2. Tải tài liệu lên quy trình cơ sở tri thức của ứng dụng.
  3. Cho phép hệ thống truy xuất ngữ cảnh tài liệu liên quan thông qua quy trình RAG.
  4. Trả lời các câu hỏi được tạo và xem lại phần giải thích.
  5. Sử dụng báo cáo kết quả để quyết định những phần nào của tài liệu cần học thêm.

Việc học theo chủ đề có thể sử dụng Tavily để bổ sung ngữ cảnh web mới nhất. Ngược lại, việc học dựa trên tài liệu sẽ lấy nội dung truy xuất từ các tài liệu riêng tư đã tải lên. Hành vi cụ thể phụ thuộc vào các dịch vụ và thông tin xác thực được cấu hình trong môi trường backend.

Bước 4: Chạy bộ kiểm thử

Chạy các bài kiểm thử backend từ thư mục backend:

cd backend
pytest

Dự án sử dụng pytest và pytest-asyncio. Hãy chạy bộ kiểm thử sau khi thay đổi backend và trước khi triển khai để phát hiện lỗi hồi quy trong cả hành vi đồng bộ và bất đồng bộ.

Mẹo nâng cao

Sử dụng tài liệu API trong quá trình phát triển

Trang tài liệu của FastAPI hữu ích để kiểm tra các route mà phiên bản dự án đang chạy cung cấp. Hãy dùng trang này làm nguồn thông tin chính xác thay vì giả định các trường yêu cầu hoặc đường dẫn endpoint không được ghi trong README.

Tách biệt thông tin xác thực cho môi trường phát triển và production

Chỉ sử dụng tệp .env cục bộ cho quá trình phát triển. Trong môi trường production, hãy cấu hình thông tin xác thực thông qua WeChat Cloud Run hoặc nền tảng container được chọn. Không đưa các tệp môi trường đã điền thông tin vào repository.

Chọn nguồn kiến thức phù hợp

Sử dụng tính năng tạo chủ đề với Tavily khi tính cập nhật là yếu tố quan trọng. Sử dụng quy trình tài liệu khi câu hỏi cần dựa trên tài liệu riêng tư hoặc tài liệu đặc thù của tổ chức. Các tệp được hỗ trợ gồm PDF, Word, Markdown và TXT.

Xác thực dịch vụ theo từng lớp

  1. Xác nhận endpoint kiểm tra trạng thái phản hồi.
  2. Kiểm tra tài liệu FastAPI.
  3. Chạy pytest.
  4. Biên dịch frontend Taro.
  5. Mở frontend/dist trong WeChat DevTools.
  6. Kiểm thử đăng nhập, tạo câu hỏi, phản hồi, lịch sử và xem lại báo cáo với các dịch vụ bên ngoài đã cấu hình.

Trình tự này giúp dễ dàng phân biệt các vấn đề về cấu hình backend với lỗi biên dịch frontend hoặc sự cố của công cụ WeChat.

Chuẩn bị triển khai container

Repository có sẵn backend/Dockerfile và backend/.dockerignore. Các tệp này cho phép đóng gói backend thành container Docker để triển khai trên WeChat Cloud Run hoặc nền tảng tương thích khác.

Trước khi triển khai, hãy chạy các bài kiểm thử, xác minh rằng những biến môi trường production bắt buộc có sẵn thông qua nền tảng, đồng thời tránh đưa thông tin xác thực vào image. Xác nhận rằng các dependency bên ngoài như MySQL, Tencent Cloud COS, nhà cung cấp mô hình, Tavily và dịch vụ xác thực WeChat có thể truy cập từ môi trường triển khai.

Kết luận

Dự án này cung cấp nền tảng hoàn chỉnh cho việc học có sự hỗ trợ của AI trên WeChat: mini app Taro và React, backend FastAPI, tính năng tạo câu hỏi theo chủ đề và tài liệu, giải thích tức thì, báo cáo học tập, lịch sử người dùng và khả năng triển khai bằng container. Hãy bắt đầu bằng việc xác thực backend, biên dịch frontend trong WeChat DevTools, sau đó cấu hình các dịch vụ bên ngoài cần thiết cho quy trình học tập bạn chọn.