# 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` và `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` và `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` và `SUPABASE_KEY` 4. **Facebook Webhook**: Check `FACEBOOK_APP_SECRET` và `FACEBOOK_VERIFY_TOKEN`