Phân tích lỗ hổng bảo mật trong Smart Contracts thông qua Chatbot AI ứng dụng RAG (Retrieval-Augmented Generation).
Dự án sử dụng các mô hình ngôn ngữ lớn (LLM) kết hợp với cơ chế truy xuất tri thức (RAG) để:
- Hiểu và phân tích hợp đồng thông minh
- Tìm kiếm và giải thích các lỗ hổng bảo mật
- Giao tiếp với người dùng thông qua chatbot AI thân thiện
- Python
- LangChain
- Qwen2-1.5B-Instruct (qua Hugging Face)
- OpenAI GPT-4o mini (tùy chọn)
- FAISS Vector Database
- Hugging Face Transformers
VULNHUNT_GPT/
├── data/ # Chứa dữ liệu đầu vào hoặc smart contracts
├── rag-venv/ # Virtual environment (nên được gitignore)
├── vectorstores/ # Lưu FAISS vector db
├── .env # File chứa các biến môi trường (API Keys)
├── .gitignore
├── llm_model.py # Định nghĩa mô hình & pipeline LangChain
├── qabot-gpt.py # Khởi chạy chatbot sử dụng OpenAI GPT
├── qabot-qwen.py # Khởi chạy chatbot sử dụng Qwen2-1.5B
├── upload_data.py # Tải và nhúng dữ liệu vào vector store
└── README.md
git clone https://github.com/2uaan1ee/basic-rag-llm.git
cd basic-rag-llmpython -m venv rag-venv
rag-venv\Scripts\activate
pip install -r requirements.txtTạo file .env với nội dung:
OPENAI_API_KEY=your_openai_api_key
HUGGINGFACEHUB_API_TOKEN=your_huggingface_token
Đảm bảo bạn đã đăng nhập bằng
huggingface-cli loginnếu sử dụng HuggingFace.
python upload_data.pyDữ liệu sẽ được xử lý và lưu dưới dạng vector FAISS trong thư mục vectorstores.
python qabot-gpt.pypython qabot-qwen.py- Dự án hỗ trợ cả mô hình cloud (OpenAI) và local (Qwen2).
- Đảm bảo RAM tối thiểu 8GB nếu sử dụng Qwen local.
- Tùy chọn GPU để tăng tốc khi dùng Hugging Face models.
MIT License
Mọi đóng góp, chỉnh sửa hoặc mở rộng dự án đều rất hoan nghênh! Bạn có thể mở issue hoặc tạo pull request.
Nếu bạn có thắc mắc, hãy liên hệ qua GitHub Issues hoặc email quan.minhle26f@gmal.com