Catalyst / admin/Bid-Sentinel 14.8 GB / 57.8 GB 40.0 GB free
Help Sign in

admin / Bid-Sentinel

public

Bid Scrape and Tracking Application with AI Capability

Code Issues Pull requests Pipelines Packages Security Insights Wiki Settings
Bid-Sentinel / bid-sentinel-v2 / docs / AI_API_KEY_SETUP.md 3176 B · main
 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
# Setting the AI API key

The optional **AI enhancement** uses a low‑cost Claude model (Haiku 4.5) to
produce richer summaries, a reasoned Fit %, and more accurate certifications and
technical requirements.

The key is **not** entered in the web app — it's a secret, so it lives in an
environment variable that the backend reads at startup. Follow these steps.

---

## 1. Get an API key

1. Sign in to the Anthropic Console: <https://console.anthropic.com>
2. Go to **API keys****Create key**.
3. Copy the key — it starts with `sk-ant-`. (You won't be able to see it again.)

## 2. Add the key to the `.env` file

The `.env` file sits in the project root, next to `docker-compose.yml`.

1. If you don't have one yet, create it from the template:
   ```bash
   cp .env.example .env
   ```
2. Open `.env` in a text editor and set the key (no quotes, no spaces around `=`):
   ```
   ANTHROPIC_API_KEY=sk-ant-your-key-here
   AI_MODEL=claude-haiku-4-5
   ```
   `AI_MODEL` is optional — it already defaults to Haiku 4.5.

## 3. Restart the containers

Environment variables are only read when a container starts, so recreate them:

```bash
docker compose up -d --build
```

> No database wipe is needed — your data is preserved.

## 4. Confirm the backend can see the key

```bash
curl http://localhost:8080/api/config/ai
```

- `{"enabled":false,"available":true,"model":"claude-haiku-4-5"}`**key detected.**- `"available":false` → the key isn't being picked up (see Troubleshooting).

You can also check inside the container:
```bash
docker compose exec backend printenv ANTHROPIC_API_KEY
```

## 5. Turn AI on in the app

1. Open the dashboard and go to **Settings → AI enhancement** (admins only).
2. The toggle is now enabled — switch it **On**.
3. Click **Recompute fit & certs** to apply AI to the opportunities already in the
   table. New opportunities are analysed automatically from then on.

---

## Troubleshooting

| Symptom | Fix |
|---|---|
| Toggle is greyed out / `"available":false` | The backend isn't seeing the key. |
| | • Make sure `.env` is in the **same folder** as `docker-compose.yml`. |
| | • Check the line is exactly `ANTHROPIC_API_KEY=sk-ant-...` (no quotes/spaces). |
| | • Run `docker compose up -d --build` again (a plain restart of the old container won't reload env). |
| AI is on but rows have no AI summary | The model fell back to the deterministic engine for those rows (e.g. a transient API error or rate limit). Click **Recompute** to retry. |
| Want to turn AI off | Toggle it **Off** in Settings, or remove `ANTHROPIC_API_KEY` from `.env` and restart. The app then runs fully offline/deterministic. |

---

## Notes

- **Cost:** roughly half a cent per opportunity with Haiku 4.5 (one model call
  each). A full recompute over a few hundred rows is a few dollars at most. All
  spend is gated behind the toggle.
- **Security:** keep `.env` out of version control (it is already listed in
  `.gitignore`). Never paste the key into the web UI or commit it.
- **Privacy:** with AI **off**, nothing leaves your server. With it on, each
  opportunity's text is sent to the Anthropic API for analysis.