136 lines
3.1 KiB
Markdown
136 lines
3.1 KiB
Markdown
# Troubleshooting Guide
|
|
|
|
## API Key Not Loading from .env
|
|
|
|
### Step 1: Verify .env File Exists and Location
|
|
|
|
The `.env` file must be in the **project root** (same directory as `docker-compose.yml` and `main.py`).
|
|
|
|
Check if it exists:
|
|
```bash
|
|
# Windows PowerShell
|
|
Test-Path .env
|
|
|
|
# Should return: True
|
|
```
|
|
|
|
### Step 2: Check .env File Format
|
|
|
|
Your `.env` file should look exactly like this:
|
|
|
|
```
|
|
GEMINI_API_KEY=AIzaSyYourActualKeyHere123456789
|
|
```
|
|
|
|
**Common mistakes:**
|
|
- ❌ `GEMINI_API_KEY = value` (spaces around =)
|
|
- ❌ `GEMINI_API_KEY="value"` (quotes)
|
|
- ❌ `GEMINI_API_KEY='value'` (single quotes)
|
|
- ❌ `GEMINI_API_KEY= value` (space after =)
|
|
- ✅ `GEMINI_API_KEY=value` (correct!)
|
|
|
|
### Step 3: Test if API Key is Loaded
|
|
|
|
1. **If using Docker:**
|
|
```bash
|
|
docker-compose restart
|
|
docker-compose logs aifit-fastapi
|
|
```
|
|
Look for: `✓ GEMINI_API_KEY loaded: AIzaSy...`
|
|
|
|
2. **Use the debug endpoint:**
|
|
- Open browser: `http://localhost:8000/debug/api-key-status`
|
|
- Or in Postman: GET `http://localhost:8000/debug/api-key-status`
|
|
- Should return:
|
|
```json
|
|
{
|
|
"status": "ok",
|
|
"message": "API key is loaded",
|
|
"key_length": 39,
|
|
"key_preview": "AIzaSy...",
|
|
"key_ends_with": "xyz"
|
|
}
|
|
```
|
|
|
|
### Step 4: If Using Docker - Restart After Creating .env
|
|
|
|
If you created the `.env` file after starting Docker:
|
|
|
|
1. Stop the container:
|
|
```bash
|
|
docker-compose down
|
|
```
|
|
|
|
2. Start again:
|
|
```bash
|
|
docker-compose up --build
|
|
```
|
|
|
|
Docker needs to be restarted to pick up new `.env` files.
|
|
|
|
### Step 5: Alternative - Set Environment Variable Directly
|
|
|
|
If `.env` still doesn't work, you can set it directly in `docker-compose.yml`:
|
|
|
|
```yaml
|
|
environment:
|
|
- GEMINI_API_KEY=your_actual_key_here
|
|
# ... other vars
|
|
```
|
|
|
|
**⚠️ Warning:** Don't commit this to git! Use `.env` file instead.
|
|
|
|
### Step 6: Verify API Key is Valid
|
|
|
|
1. Check the key starts with `AIza` (most Gemini keys do)
|
|
2. Make sure there are no extra characters or line breaks
|
|
3. Try regenerating the key from Google AI Studio if needed
|
|
|
|
### Step 7: Check Docker Logs
|
|
|
|
```bash
|
|
docker-compose logs aifit-fastapi
|
|
```
|
|
|
|
Look for:
|
|
- `✓ GEMINI_API_KEY loaded: ...` = Good!
|
|
- `⚠ API key seems too short` = Key might be truncated
|
|
- `GEMINI_API_KEY not set` = File not found or wrong format
|
|
|
|
## Quick Fix Checklist
|
|
|
|
- [ ] `.env` file exists in project root
|
|
- [ ] `.env` file has exactly: `GEMINI_API_KEY=your_key` (no spaces, no quotes)
|
|
- [ ] Restarted Docker after creating/editing `.env`
|
|
- [ ] Checked `/debug/api-key-status` endpoint
|
|
- [ ] Verified API key is valid (starts with `AIza` typically)
|
|
- [ ] Checked Docker logs for loading confirmation
|
|
|
|
## Still Not Working?
|
|
|
|
1. **Test without Docker:**
|
|
```bash
|
|
# Activate venv
|
|
python -m venv venv
|
|
venv\Scripts\activate # Windows
|
|
|
|
# Install deps
|
|
pip install -r requirements.txt
|
|
|
|
# Run directly (will use .env)
|
|
uvicorn main:app --reload
|
|
```
|
|
|
|
2. **Check if python-dotenv is installed:**
|
|
```bash
|
|
pip list | findstr dotenv
|
|
```
|
|
|
|
3. **Manually set environment variable:**
|
|
```bash
|
|
# Windows PowerShell
|
|
$env:GEMINI_API_KEY="your_key_here"
|
|
uvicorn main:app --reload
|
|
```
|
|
|