Fix ChunkBrowserQA: use regulation_id from Qdrant payload instead of regulation_code

The Qdrant collections use regulation_id (e.g. eu_2016_679) as the filter key,
not regulation_code (e.g. GDPR). Updated rag-constants.ts with correct qdrant_id
mappings from actual Qdrant data, fixed API to filter on regulation_id, and updated
ChunkBrowserQA to pass qdrant_id values.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Benjamin Admin
2026-02-28 18:22:12 +01:00
parent 859342300e
commit e7fb9d59f1
3 changed files with 166 additions and 131 deletions

View File

@@ -121,24 +121,25 @@ export async function GET(request: NextRequest) {
}
case 'regulation-counts-batch': {
const col = searchParams.get('collection') || 'bp_compliance_gesetze'
const codes = (searchParams.get('codes') || '').split(',').filter(Boolean)
// Accept qdrant_ids (actual regulation_id values in Qdrant payload)
const qdrantIds = (searchParams.get('qdrant_ids') || '').split(',').filter(Boolean)
const results: Record<string, number> = {}
for (let i = 0; i < codes.length; i += 10) {
const batch = codes.slice(i, i + 10)
await Promise.all(batch.map(async (code) => {
for (let i = 0; i < qdrantIds.length; i += 10) {
const batch = qdrantIds.slice(i, i + 10)
await Promise.all(batch.map(async (qid) => {
try {
const res = await fetch(`${QDRANT_URL}/collections/${encodeURIComponent(col)}/points/count`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
filter: { must: [{ key: 'regulation_code', match: { value: code } }] },
filter: { must: [{ key: 'regulation_id', match: { value: qid } }] },
exact: true,
}),
cache: 'no-store',
})
if (res.ok) {
const data = await res.json()
results[code] = data.result?.count || 0
results[qid] = data.result?.count || 0
}
} catch { /* skip failed counts */ }
}))