--- 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.