import { DevPortalLayout, ApiEndpoint, CodeBlock, ParameterTable, InfoBox } from '@/components/DevPortalLayout' export default function RAGApiPage() { return (

Uebersicht

Die RAG (Retrieval-Augmented Generation) API ermoeglicht semantische Suche im Compliance-Korpus. Der Korpus enthaelt:

Die Suche verwendet BGE-M3 Embeddings fuer praezise semantische Aehnlichkeit. Die Vektoren werden in Qdrant gespeichert.

GET /rag/search

Durchsucht den Legal Corpus semantisch.

Query-Parameter

Request

{`curl -X GET "https://api.breakpilot.io/sdk/v1/rag/search?q=Einwilligung%20DSGVO&top_k=5" \\ -H "Authorization: Bearer YOUR_API_KEY"`}

Response (200 OK)

{`{ "success": true, "data": { "query": "Einwilligung DSGVO", "results": [ { "id": "dsgvo-art-7", "title": "Art. 7 DSGVO - Bedingungen fuer die Einwilligung", "content": "Beruht die Verarbeitung auf einer Einwilligung, muss der Verantwortliche nachweisen koennen, dass die betroffene Person in die Verarbeitung ihrer personenbezogenen Daten eingewilligt hat...", "corpus": "dsgvo", "article": "Art. 7", "score": 0.92, "metadata": { "chapter": "II", "section": "Einwilligung", "url": "https://dsgvo-gesetz.de/art-7-dsgvo/" } }, { "id": "dsgvo-art-6-1-a", "title": "Art. 6 Abs. 1 lit. a DSGVO - Einwilligung als Rechtsgrundlage", "content": "Die Verarbeitung ist nur rechtmaessig, wenn mindestens eine der nachstehenden Bedingungen erfuellt ist: a) Die betroffene Person hat ihre Einwilligung...", "corpus": "dsgvo", "article": "Art. 6", "score": 0.88, "metadata": { "chapter": "II", "section": "Rechtmaessigkeit", "url": "https://dsgvo-gesetz.de/art-6-dsgvo/" } } ], "total_results": 2, "search_time_ms": 45 }, "meta": { "corpus_version": "2026-01", "embedding_model": "bge-m3" } }`}

GET /rag/status

Gibt Status-Informationen ueber das RAG-System zurueck.

Request

{`curl -X GET "https://api.breakpilot.io/sdk/v1/rag/status" \\ -H "Authorization: Bearer YOUR_API_KEY"`}

Response (200 OK)

{`{ "success": true, "data": { "status": "healthy", "corpus": { "dsgvo": { "documents": 99, "chunks": 1250, "last_updated": "2026-01-15T00:00:00Z" }, "ai_act": { "documents": 89, "chunks": 980, "last_updated": "2026-01-20T00:00:00Z" }, "nis2": { "documents": 46, "chunks": 520, "last_updated": "2026-01-10T00:00:00Z" } }, "embedding_service": { "status": "online", "model": "bge-m3", "dimension": 1024 }, "vector_db": { "type": "qdrant", "collections": 3, "total_vectors": 2750 } } }`}

SDK Integration

Verwenden Sie den SDK-Client fuer einfache RAG-Suche:

{`import { getSDKBackendClient, isLegalQuery } from '@breakpilot/compliance-sdk' const client = getSDKBackendClient() // Pruefen ob die Query rechtliche Inhalte betrifft if (isLegalQuery('Was ist eine Einwilligung?')) { // RAG-Suche durchfuehren const results = await client.search('Einwilligung DSGVO', 5) results.forEach(result => { console.log(\`[\${result.corpus}] \${result.title}\`) console.log(\`Score: \${result.score}\`) console.log(\`URL: \${result.metadata.url}\`) console.log('---') }) }`}

Keyword-Erkennung

Die Funktion isLegalQuery erkennt automatisch rechtliche Anfragen:

{`import { isLegalQuery } from '@breakpilot/compliance-sdk' // Gibt true zurueck fuer: isLegalQuery('DSGVO Art. 5') // true - Artikel-Referenz isLegalQuery('Einwilligung') // true - DSGVO-Begriff isLegalQuery('AI Act Hochrisiko') // true - AI Act Begriff isLegalQuery('NIS2 Richtlinie') // true - NIS2 Referenz isLegalQuery('personenbezogene Daten') // true - Datenschutz-Begriff // Gibt false zurueck fuer: isLegalQuery('Wie ist das Wetter?') // false - Keine rechtliche Anfrage isLegalQuery('Programmiere mir X') // false - Technische Anfrage`}

Beispiel: Command Bar Integration

{`import { useState } from 'react' import { getSDKBackendClient, isLegalQuery } from '@breakpilot/compliance-sdk' function CommandBarSearch({ query }: { query: string }) { const [results, setResults] = useState([]) const [loading, setLoading] = useState(false) useEffect(() => { if (query.length > 3 && isLegalQuery(query)) { setLoading(true) const client = getSDKBackendClient() client.search(query, 3).then(data => { setResults(data) setLoading(false) }) } }, [query]) if (!isLegalQuery(query)) return null return (
{loading ? (

Suche im Legal Corpus...

) : ( results.map(result => (

{result.title}

{result.content.slice(0, 200)}...

Volltext lesen
)) )}
) }`}
Die RAG-Suche ist auf 100 Anfragen/Minute (Professional) bzw. unbegrenzt (Enterprise) limitiert. Implementieren Sie Client-Side Debouncing fuer Echtzeit-Suche.
) }