You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+14-11Lines changed: 14 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,7 +5,7 @@ VFB Chat is a Next.js chat interface for exploring Virtual Fly Brain (VFB) data
5
5
## What Changed
6
6
7
7
- Native `web_search` has been removed from the model toolset.
8
-
- Search is limited to approved `virtualflybrain.org` and `neurofly.org` pages plus reviewed `flybase.org` pages through server-side, domain-restricted tools.
8
+
- Search is limited to approved `virtualflybrain.org`, `neurofly.org`, and `vfb-connect.readthedocs.io` pages plus reviewed `flybase.org` pages through server-side, domain-restricted tools.
9
9
- Outbound links are sanitized server-side to approved domains only.
10
10
- Raw IP-based security logs are retained for up to 30 days under `/logs/security`.
11
11
- Aggregated analytics and structured feedback are retained under `/logs/analytics` and `/logs/feedback`.
@@ -36,7 +36,7 @@ The app now uses a 3-layer logging model rooted at `LOG_ROOT_DIR`:
36
36
The reviewed documentation search path uses two server-side sources:
37
37
38
38
- a seed index from `config/reviewed-docs-index.json`
39
-
- a domain-restricted discovery path for approved `virtualflybrain.org` and `neurofly.org` pages using configured sitemap and robots sources
39
+
- a domain-restricted discovery path for approved `virtualflybrain.org`, `neurofly.org`, and `vfb-connect.readthedocs.io` pages using configured sitemap and robots sources
40
40
41
41
This keeps search scoped to approved domains while avoiding a hand-maintained list of every VFB news or documentation page.
42
42
@@ -52,13 +52,16 @@ Environment variable:
52
52
53
53
Required for production:
54
54
55
-
-`OPENAI_API_KEY`
56
-
-`OPENAI_BASE_URL` or `APPROVED_ELM_BASE_URL`
57
-
-`OPENAI_MODEL` or `APPROVED_ELM_MODEL`
55
+
-`ELM_API_KEY` (or `OPENAI_API_KEY` as backward-compatible fallback)
56
+
-`ELM_BASE_URL` (or `OPENAI_BASE_URL`) or `APPROVED_ELM_BASE_URL`
57
+
-`ELM_MODEL` (or `OPENAI_MODEL`) or `APPROVED_ELM_MODEL`
58
58
-`LOG_ROOT_DIR=/logs`
59
59
60
60
Optional:
61
61
62
+
-`OPENAI_API_KEY`
63
+
-`OPENAI_BASE_URL`
64
+
-`OPENAI_MODEL`
62
65
-`APPROVED_ELM_BASE_URL`
63
66
-`APPROVED_ELM_MODEL`
64
67
-`RATE_LIMIT_PER_IP`
@@ -68,21 +71,21 @@ Optional:
68
71
-`GA_MEASUREMENT_ID`
69
72
-`GA_API_SECRET`
70
73
71
-
When `APPROVED_ELM_BASE_URL` and/or `APPROVED_ELM_MODEL` are provided, production enforces that they exactly match the active `OPENAI_*`values. If they are omitted, the app uses the active gateway/model as the approved baseline so existing single-config deployments continue to work.
74
+
When `APPROVED_ELM_BASE_URL` and/or `APPROVED_ELM_MODEL` are provided, production enforces that they exactly match the active configured gateway/model (resolved from `ELM_*`first, then `OPENAI_*`). If they are omitted, the app uses the active gateway/model as the approved baseline so existing single-config deployments continue to work.
0 commit comments