File size: 1,871 Bytes
90147fd
34b531b
 
 
 
90147fd
34b531b
 
90147fd
 
34b531b
90147fd
34b531b
90147fd
34b531b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
---
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``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.