| --- |
| title: ChatVNS |
| emoji: 📈 |
| colorFrom: blue |
| colorTo: indigo |
| sdk: docker |
| app_port: 7860 |
| python_version: 3.11 |
| --- |
| |
| # ChatVNS |
|
|
| Chatbot RAG hỗ trợ phân tích dữ liệu chứng khoán Việt Nam. |
|
|
| ## API key do người dùng cung cấp |
|
|
| Space không dùng Gemini API key hoặc Hugging Face inference token của chủ Space. |
| Mỗi người dùng nhập key của họ trong mục **API key của bạn** ở sidebar: |
|
|
| - Gemini API key: dùng để tạo câu trả lời. |
| - Hugging Face token: không bắt buộc, dùng cho embedding và reranking. |
|
|
| Key được giữ trong bộ nhớ của session Streamlit hiện tại, không ghi vào file hoặc |
| interaction log. Khi thiếu Hugging Face token hoặc Qdrant không khả dụng, ứng dụng |
| tự fallback sang BM25 trên dữ liệu chunks đi kèm. |
|
|
| ## Cấu hình Space |
|
|
| Không cấu hình `GEMINI_API_KEY` hoặc `HF_API_KEY` trong Space Secrets. |
|
|
| Các biến hạ tầng tùy chọn: |
|
|
| - `QDRANT_URL` và `QDRANT_API_KEY`: Qdrant Cloud dùng chung. |
| - `CHATVNS_DATASET_REPO`: Hugging Face Dataset repo chứa thư mục `data/`. |
| - `HF_DATASET_TOKEN`: chỉ cần khi dataset repo ở chế độ private. |
| - `APP_TICKERS=HPG,FPT,VCB` |
|
|
| ## Tạo bundle để push |
|
|
| Chạy từ thư mục gốc dự án: |
|
|
| ```powershell |
| powershell -ExecutionPolicy Bypass -File .\prepare_hf_space.ps1 |
| ``` |
|
|
| Lệnh mặc định đóng gói mã nguồn và tối đa 500 chunks cho mỗi scope |
| `HPG`, `FPT`, `VCB`, `MARKET`, đủ để Space chạy ngay bằng BM25. |
|
|
| Đóng gói toàn bộ dữ liệu local: |
|
|
| ```powershell |
| powershell -ExecutionPolicy Bypass -File .\prepare_hf_space.ps1 -IncludeLocalData |
| ``` |
|
|
| Sau đó push toàn bộ nội dung trong `hf-space/` lên Hugging Face Space repository. |
| Với dữ liệu lớn, nên dùng một Dataset repo và `CHATVNS_DATASET_REPO` thay vì commit |
| trực tiếp vào Space. |
|
|