Đồ án CS419 - Truy xuất thông tin
benhlyRetrieval là một hệ thống tư vấn y tế thông minh, kết hợp giữa kỹ thuật truy xuất thông tin (BM25) và mô hình ngôn ngữ lớn (Gemini) để cung cấp thông tin y tế chính xác và hữu ích cho người dùng.
- 🔍 Tìm kiếm thông tin bệnh dựa trên triệu chứng
- 🤖 Tư vấn y tế thông minh sử dụng Gemini AI
- 📚 Hiển thị các nguồn thông tin liên quan
- 💬 Giao diện chat thân thiện với người dùng
- Python 3.8 trở lên
- pip (Python package manager)
- Clone repository:
git clone https://github.com/your-username/benhlyRetrieval.git
cd benhlyRetrieval- Tạo và kích hoạt môi trường ảo:
python -m venv .venv
# Windows
.venv\Scripts\activate
# Linux/Mac
source .venv/bin/activate- Cài đặt các thư viện cần thiết:
pip install -r requirements.txt- Tạo file .env và thêm API key:
GOOGLE_API_KEY=your_gemini_api_key_here
- Khởi động ứng dụng Streamlit:
streamlit run RAG/main.py- Mở trình duyệt và truy cập địa chỉ được hiển thị (thường là http://localhost:8501)
- Nhập câu hỏi về triệu chứng bệnh vào ô tìm kiếm
- Hệ thống sẽ:
- Tìm kiếm thông tin liên quan từ cơ sở dữ liệu
- Hiển thị các kết quả tìm kiếm ở cột bên trái
- Tạo câu trả lời thông minh dựa trên thông tin tìm được
- Hiển thị lịch sử hội thoại ở cột bên phải
- "Tôi bị sốt cao và đau đầu, có thể là bệnh gì?"
- "Triệu chứng ho khan và khó thở là dấu hiệu của bệnh gì?"
- "Đau bụng dưới bên phải kèm sốt nhẹ là bệnh gì?"
benhlyRetrieval/
├── RAG/
│ ├── main.py # Giao diện Streamlit và xử lý chính
│ └── retrieval.py # Module truy xuất thông tin
├── preprocessed_documents.json # Dữ liệu đã xử lý
├── requirements.txt # Danh sách thư viện
└── README.md # Tài liệu hướng dẫn
- Streamlit: Xây dựng giao diện người dùng
- BM25: Thuật toán truy xuất thông tin
- Gemini AI: Mô hình ngôn ngữ lớn cho việc tạo câu trả lời
- PyVi: Xử lý ngôn ngữ tiếng Việt
Mọi đóng góp đều được hoan nghênh! Vui lòng tạo issue hoặc pull request để đóng góp.
Dự án này được phát hành dưới giấy phép MIT.