File size: 6,035 Bytes
c025e27
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
# Environment Variables Configuration

## Search Configuration

### MATCH_COUNT
- **Description**: Số lượng documents tối đa được trả về từ vector search
- **Default**: `15`
- **Usage**: `MATCH_COUNT=20`
- **Impact**: Ảnh hưởng đến số lượng docs được query từ database

### MAX_DOCS_TO_RERANK
- **Description**: Số lượng documents tối đa được rerank
- **Default**: `15`
- **Usage**: `MAX_DOCS_TO_RERANK=20`
- **Impact**: Ảnh hưởng đến số lượng docs được xử lý trong reranking

## Logging Configuration

### LOG_LEVEL
- **Description**: Mức độ logging (DEBUG, INFO, WARNING, ERROR, CRITICAL)
- **Default**: `DEBUG`
- **Usage**: `LOG_LEVEL=INFO`
- **Impact**: Ảnh hưởng đến số lượng logs được hiển thị

## Facebook Configuration

### FACEBOOK_APP_SECRET
- **Description**: Facebook App Secret
- **Required**: Yes
- **Usage**: `FACEBOOK_APP_SECRET=your_app_secret`

### FACEBOOK_VERIFY_TOKEN
- **Description**: Facebook Webhook Verify Token
- **Required**: Yes
- **Usage**: `FACEBOOK_VERIFY_TOKEN=your_verify_token`

## Supabase Configuration

### SUPABASE_URL
- **Description**: Supabase project URL
- **Required**: Yes
- **Usage**: `SUPABASE_URL=https://your-project.supabase.co`

### SUPABASE_KEY
- **Description**: Supabase service role key
- **Required**: Yes
- **Usage**: `SUPABASE_KEY=your_service_role_key`

## Google Sheets Configuration

### GOOGLE_SHEETS_CREDENTIALS_FILE
- **Description**: Path to Google Sheets credentials file
- **Required**: Yes (if not using GOOGLE_SHEETS_CREDENTIALS_JSON)
- **Usage**: `GOOGLE_SHEETS_CREDENTIALS_FILE=./credentials.json`

### GOOGLE_SHEETS_CREDENTIALS_JSON
- **Description**: Google Sheets credentials as JSON string (alternative to credentials file)
- **Required**: Yes (if not using GOOGLE_SHEETS_CREDENTIALS_FILE)
- **Usage**: `GOOGLE_SHEETS_CREDENTIALS_JSON={"type":"service_account","project_id":"..."}`

### GOOGLE_SHEETS_TOKEN_FILE
- **Description**: Path to Google Sheets token file
- **Required**: Yes
- **Usage**: `GOOGLE_SHEETS_TOKEN_FILE=./token.json`

### CONVERSATION_SHEET_ID
- **Description**: Google Sheets ID for conversation logging
- **Required**: Yes
- **Usage**: `CONVERSATION_SHEET_ID=your_sheet_id`

## Server Configuration

### HOST
- **Description**: Server host address
- **Default**: `0.0.0.0`
- **Usage**: `HOST=127.0.0.1`

### PORT
- **Description**: Server port
- **Default**: `8000`
- **Usage**: `PORT=7860`

## LLM Configuration

### LLM_PROVIDER
- **Description**: LLM provider (gemini, openai, etc.)
- **Default**: `gemini`
- **Usage**: `LLM_PROVIDER=gemini`

### LLM_MODEL
- **Description**: LLM model name
- **Default**: `gemini-2.5-flash`
- **Usage**: `LLM_MODEL=gemini-2.0-flash-exp`

### RERANK_PROVIDER
- **Description**: Rerank provider (defaults to LLM_PROVIDER if not set)
- **Default**: Uses LLM_PROVIDER value
- **Usage**: `RERANK_PROVIDER=gemini`

### RERANK_MODEL
- **Description**: Rerank model name (defaults to LLM_MODEL if not set)
- **Default**: Uses LLM_MODEL value
- **Usage**: `RERANK_MODEL=gemini-2.0-flash-exp`

## Embedding Configuration

### EMBEDDING_PROVIDER
- **Description**: Embedding provider (gemini, openai, etc.)
- **Default**: `gemini`
- **Usage**: `EMBEDDING_PROVIDER=gemini`

### EMBEDDING_MODEL
- **Description**: Embedding model name
- **Default**: `models/embedding-001`
- **Usage**: `EMBEDDING_MODEL=models/embedding-001`

## Gemini Configuration

### GEMINI_API_KEYS
- **Description**: Comma-separated list of Gemini API keys
- **Required**: Yes
- **Usage**: `GEMINI_API_KEYS=key1,key2,key3`

### GEMINI_MODELS
- **Description**: Comma-separated list of Gemini models
- **Required**: Yes
- **Usage**: `GEMINI_MODELS=gemini-2.0-flash-exp,gemini-1.5-flash`

### GEMINI_BASE_URL
- **Description**: Gemini API base URL
- **Default**: `https://generativelanguage.googleapis.com/v1`
- **Usage**: `GEMINI_BASE_URL=https://generativelanguage.googleapis.com/v1`

## Example .env file

```env
# Search Configuration
MATCH_COUNT=15
MAX_DOCS_TO_RERANK=15

# Logging Configuration
LOG_LEVEL=DEBUG

# Facebook Configuration
FACEBOOK_APP_SECRET=your_app_secret
FACEBOOK_VERIFY_TOKEN=your_verify_token

# Supabase Configuration
SUPABASE_URL=https://your-project.supabase.co
SUPABASE_KEY=your_service_role_key

# Google Sheets Configuration
GOOGLE_SHEETS_CREDENTIALS_FILE=./credentials.json
# GOOGLE_SHEETS_CREDENTIALS_JSON={"type":"service_account","project_id":"..."}
GOOGLE_SHEETS_TOKEN_FILE=./token.json
CONVERSATION_SHEET_ID=your_sheet_id

# Server Configuration
HOST=0.0.0.0
PORT=8000

# LLM Configuration
LLM_PROVIDER=gemini
LLM_MODEL=gemini-2.5-flash
RERANK_PROVIDER=gemini
RERANK_MODEL=gemini-2.5-flash

# Embedding Configuration
EMBEDDING_PROVIDER=gemini
EMBEDDING_MODEL=models/embedding-001

# Gemini Configuration
GEMINI_API_KEYS=key1,key2,key3
GEMINI_MODELS=gemini-2.0-flash-exp,gemini-1.5-flash
GEMINI_BASE_URL=https://generativelanguage.googleapis.com/v1
```

## Performance Tuning

### Để tăng performance:
- Giảm `MATCH_COUNT``MAX_DOCS_TO_RERANK` xuống 10-12
- Set `LOG_LEVEL=INFO` để giảm log noise
- Sử dụng model nhẹ hơn: `LLM_MODEL=gemini-1.5-flash`

### Để tăng accuracy:
- Tăng `MATCH_COUNT``MAX_DOCS_TO_RERANK` lên 20-25
- Set `LOG_LEVEL=DEBUG` để debug chi tiết hơn
- Sử dụng model mạnh hơn: `LLM_MODEL=gemini-2.0-flash-exp`

## Provider Switching

### Chuyển sang OpenAI:
```env
LLM_PROVIDER=openai
LLM_MODEL=gpt-4
EMBEDDING_PROVIDER=openai
EMBEDDING_MODEL=text-embedding-ada-002
```

### Chuyển sang Cohere:
```env
LLM_PROVIDER=cohere
LLM_MODEL=command
EMBEDDING_PROVIDER=cohere
EMBEDDING_MODEL=embed-english-v3.0
```

## Troubleshooting

### Common Issues:
1. **Missing API Keys**: Đảm bảo `GEMINI_API_KEYS` được set
2. **Invalid Models**: Kiểm tra `GEMINI_MODELS` có đúng format không
3. **Database Connection**: Verify `SUPABASE_URL``SUPABASE_KEY`
4. **Facebook Webhook**: Check `FACEBOOK_APP_SECRET``FACEBOOK_VERIFY_TOKEN`