Commit f78e9d9
committed
fix: replace OpenAI SDK with raw HTTP to avoid Cloudflare WAF blocking, broaden exception handling, align vector dimensions at startup
Problem
- The OpenAI Python SDK (AsyncOpenAI) injects x-stainless-* telemetry headers into
every request. Cloudflare-proxied OpenAI-compatible endpoints block these, causing
embedding generation to fail with PermissionDeniedError. These exceptions are not
ValueError subclasses, so they bypassed the except ValueError handler and became
unhandled HTTP 500 errors.
- pgvector column dimension mismatch between migration default (1536) and runtime
config caused unhandled DataError on insert.
- Missing broad exception catch around embedding calls in document CRUD.
Changes
- src/embedding_client.py: Replace AsyncOpenAI with raw httpx.AsyncClient POST
requests, sending only Authorization and Content-Type headers.
- src/crud/document.py: Add DataError alongside IntegrityError; add broad
except Exception catch around embedding call → ValidationException (422).
- docker/entrypoint.sh: Add scripts/configure_embeddings.py --yes step after
migration to auto-align pgvector dimensions to current config.
- tests/: Update all hardcoded 1536-dimension test vectors to use
settings.EMBEDDING.VECTOR_DIMENSIONS across 6 test files (47 occurrences).
Testing
- Manual: create conclusion with session_id, without session_id, self-conclusion
all return HTTP 201 instead of 500.
- Unit: 27/27 conclusion route tests pass.
- CI: ruff check, basedpyright, pytest pass.1 parent 602347d commit f78e9d9
9 files changed
Lines changed: 112 additions & 71 deletions
File tree
- docker
- src
- crud
- tests
- alembic/revisions
- crud
- deriver
- llm
- routes
- utils
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
7 | 11 | | |
8 | 12 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
8 | | - | |
| 8 | + | |
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
| |||
893 | 893 | | |
894 | 894 | | |
895 | 895 | | |
| 896 | + | |
| 897 | + | |
| 898 | + | |
| 899 | + | |
896 | 900 | | |
897 | 901 | | |
898 | 902 | | |
| |||
1039 | 1043 | | |
1040 | 1044 | | |
1041 | 1045 | | |
1042 | | - | |
| 1046 | + | |
1043 | 1047 | | |
1044 | 1048 | | |
1045 | | - | |
| 1049 | + | |
1046 | 1050 | | |
1047 | 1051 | | |
1048 | 1052 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| 9 | + | |
9 | 10 | | |
10 | 11 | | |
11 | 12 | | |
12 | 13 | | |
13 | | - | |
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
| |||
187 | 187 | | |
188 | 188 | | |
189 | 189 | | |
190 | | - | |
| 190 | + | |
191 | 191 | | |
192 | 192 | | |
193 | 193 | | |
| |||
198 | 198 | | |
199 | 199 | | |
200 | 200 | | |
201 | | - | |
202 | | - | |
203 | | - | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
204 | 207 | | |
205 | 208 | | |
206 | 209 | | |
| |||
257 | 260 | | |
258 | 261 | | |
259 | 262 | | |
260 | | - | |
| 263 | + | |
261 | 264 | | |
262 | 265 | | |
263 | | - | |
| 266 | + | |
264 | 267 | | |
265 | | - | |
266 | | - | |
267 | | - | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
268 | 283 | | |
269 | 284 | | |
270 | 285 | | |
| |||
460 | 475 | | |
461 | 476 | | |
462 | 477 | | |
463 | | - | |
| 478 | + | |
| 479 | + | |
464 | 480 | | |
465 | 481 | | |
466 | 482 | | |
467 | 483 | | |
468 | | - | |
469 | | - | |
470 | | - | |
| 484 | + | |
| 485 | + | |
| 486 | + | |
| 487 | + | |
| 488 | + | |
| 489 | + | |
| 490 | + | |
| 491 | + | |
| 492 | + | |
| 493 | + | |
| 494 | + | |
| 495 | + | |
| 496 | + | |
| 497 | + | |
| 498 | + | |
471 | 499 | | |
472 | | - | |
| 500 | + | |
473 | 501 | | |
474 | 502 | | |
475 | 503 | | |
| |||
Lines changed: 7 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
| 10 | + | |
10 | 11 | | |
11 | 12 | | |
12 | 13 | | |
| |||
95 | 96 | | |
96 | 97 | | |
97 | 98 | | |
98 | | - | |
| 99 | + | |
99 | 100 | | |
100 | 101 | | |
101 | 102 | | |
| |||
114 | 115 | | |
115 | 116 | | |
116 | 117 | | |
117 | | - | |
| 118 | + | |
118 | 119 | | |
119 | 120 | | |
120 | 121 | | |
| |||
133 | 134 | | |
134 | 135 | | |
135 | 136 | | |
136 | | - | |
| 137 | + | |
137 | 138 | | |
138 | 139 | | |
139 | 140 | | |
| |||
152 | 153 | | |
153 | 154 | | |
154 | 155 | | |
155 | | - | |
| 156 | + | |
156 | 157 | | |
157 | 158 | | |
158 | 159 | | |
| |||
171 | 172 | | |
172 | 173 | | |
173 | 174 | | |
174 | | - | |
| 175 | + | |
175 | 176 | | |
176 | 177 | | |
177 | 178 | | |
| |||
292 | 293 | | |
293 | 294 | | |
294 | 295 | | |
295 | | - | |
| 296 | + | |
296 | 297 | | |
297 | 298 | | |
298 | 299 | | |
| |||
0 commit comments