Skip to content

Cấu trúc dự án

Dưới đây là mô tả chi tiết về cấu trúc thư mục và các tệp quan trọng trong dự án Waka-Bot.

.
├── ansible/            # Cấu hình Ansible để triển khai
├── app/                # Mã nguồn chính của ứng dụng FastAPI
   ├── config/         # Các tệp cấu hình
   ├── graph/          # Logic xử lý đồ thị cho chatbot (LangGraph)
   ├── routes/         # Định nghĩa các API endpoints
   ├── schema/         # Pydantic models cho validation dữ liệu
   ├── services/       # Business logic và các dịch vụ phụ trợ
   ├── __init__.py
   ├── chatmodel.py    # Cấu hình và khởi tạo mô hình ngôn ngữ
   ├── config.py       # Tải và quản lý cấu hình ứng dụng
   ├── depends.py      # Các dependency injection cho FastAPI
   ├── error.py        # Xử lý lỗi tùy chỉnh
   └── log.py          # Cấu hình logging
├── data/               # Dữ liệu (ví dụ: file CSV cho FAQ)
├── db_setup/           # Scripts cài đặt cơ sở dữ liệu
├── docs/               # Tệp tài liệu (sử dụng MkDocs)
├── logs/               # Thư mục chứa logs của ứng dụng
├── scripts/            # Các scripts tự động hóa (ví dụ: đồng bộ dữ liệu)
├── tests/              # Bộ kiểm thử cho ứng dụng
├── .env.sample         # Tệp môi trường mẫu
├── api_docs.md         # Tài liệu API (có thể được tạo tự động)
├── crontab.txt         # Cấu hình Cron job
├── docker-compose.yml  # Cấu hình Docker Compose cho production
├── Dockerfile          # Dockerfile cho ứng dụng chính
├── main.py             # Điểm khởi đầu của ứng dụng FastAPI
├── mkdocs.yml          # Tệp cấu hình cho MkDocs
├── pyproject.toml      # Tệp quản lý project và dependencies (Poetry/uv)
└── README.md           # Tổng quan về dự án

Mô tả chi tiết

app/

Thư mục chứa toàn bộ mã nguồn của ứng dụng web.

  • config/: Chứa các tệp cấu hình như user.jsontracing_env.json.
  • graph/: Triển khai logic cốt lõi của chatbot sử dụng LangGraph.
  • agents/: Định nghĩa các "tác nhân" (agents) thực hiện các công việc cụ thể.
  • tools/: Các công cụ mà agents có thể sử dụng (ví dụ: tìm kiếm thông tin).
  • workflow.py: Xây dựng và định nghĩa luồng xử lý (graph).
  • routes/: Mỗi tệp tương ứng với một nhóm API endpoints (ví dụ: chat.py, authen.py).
  • schema/: Định nghĩa các mô hình dữ liệu Pydantic, giúp xác thực dữ liệu đầu vào/đầu ra của API.
  • services/: Chứa business logic phức tạp không thuộc về một endpoint cụ thể, ví dụ như datasource.py để tương tác với nguồn dữ liệu.
  • main.py: Điểm khởi đầu của ứng dụng, nơi FastAPI app được khởi tạo và các middleware, routers được thêm vào.

ansible/

Chứa các playbook và cấu hình Ansible để tự động hóa việc triển khai ứng dụng lên server.

scripts/

Các script phụ trợ cho các tác vụ như đồng bộ dữ liệu từ nguồn bên ngoài vào cơ sở dữ liệu (sync_book.py), hoặc khởi tạo vector store (vectorstore.py).

tests/

Chứa các bài kiểm thử (unit tests, integration tests) để đảm bảo chất lượng mã nguồn.

Tệp tin gốc

  • main.py: Entrypoint của ứng dụng FastAPI.
  • docker-compose.yml: Định nghĩa các services, networks, và volumes cho môi trường production.
  • Dockerfile: Các chỉ dẫn để xây dựng Docker image cho ứng dụng.
  • mkdocs.yml: Tệp cấu hình cho trang tài liệu.
  • pyproject.toml: Quản lý các gói phụ thuộc của dự án Python.