{
"tool_response": [
{
"type": "text",
"text": "{\n \"success\": true,\n \"doc\": {\n \"id\": 106,\n \"parent_id\": 100,\n \"slug\": \"aehnlichkeitssuche\",\n \"path\": \"\/prozesse\/rag-prozess\/aehnlichkeitssuche\",\n \"title\": \"Ähnlichkeitssuche\",\n \"description\": \"Sechster Schritt: Semantische Suche in Qdrant nach relevanten Chunks\",\n \"content\": \"<h2>Prozessschritt: Ähnlichkeitssuche<\/h2>\\n\\n<h3>Funktion<\/h3>\\n<ul>\\n<li>Query-Vektor gegen alle gespeicherten Vektoren vergleichen<\/li>\\n<li>Cosine-Similarity berechnen<\/li>\\n<li>Top-K relevanteste Chunks zurückgeben<\/li>\\n<li>Payload mit Chunk-Inhalt und Metadaten liefern<\/li>\\n<\/ul>\\n\\n<h3>Eingabe<\/h3>\\n<ul>\\n<li>Query-Embedding (1536 Floats)<\/li>\\n<li>Collection-Name (documents, system-docs)<\/li>\\n<li>Limit (typisch: 5-10 Chunks)<\/li>\\n<\/ul>\\n\\n<h3>Ausgabe<\/h3>\\n<ul>\\n<li>Liste von Chunks mit Score (0.0 - 1.0)<\/li>\\n<li>Jeder Chunk enthält: content, document_title, chunk_id, score<\/li>\\n<\/ul>\\n\\n<h3>Cosine-Similarity<\/h3>\\n<p>Misst den Winkel zwischen zwei Vektoren:<\/p>\\n<ul>\\n<li>1.0 = identisch (0° Winkel)<\/li>\\n<li>0.0 = orthogonal (90° Winkel)<\/li>\\n<li>Typische gute Matches: 0.3 - 0.8<\/li>\\n<\/ul>\\n\\n<h3>Beteiligte Komponenten<\/h3>\\n<table>\\n<thead><tr><th>Komponente<\/th><th>Pfad<\/th><th>Funktion<\/th><\/tr><\/thead>\\n<tbody>\\n<tr><td>search_qdrant()<\/td><td><code>chat.py:27<\/code><\/td><td>Chat-Suche<\/td><\/tr>\\n<tr><td>search_similar()<\/td><td><code>embed.py:166<\/code><\/td><td>Content Studio Suche<\/td><\/tr>\\n<tr><td>Qdrant Search API<\/td><td><code>POST \/collections\/{name}\/points\/search<\/code><\/td><td>Vektor-Suche<\/td><\/tr>\\n<\/tbody>\\n<\/table>\\n\\n<h3>Ablauf<\/h3>\\n<ol>\\n<li>POST Request an Qdrant mit Query-Vektor<\/li>\\n<li>Qdrant berechnet Cosine-Similarity zu allen Points<\/li>\\n<li>Sortierung nach Score (höchster zuerst)<\/li>\\n<li>Top-K Ergebnisse mit Payload zurückgeben<\/li>\\n<li>Ergebnisse für Kontext-Aufbau weiterleiten<\/li>\\n<\/ol>\\n\\n<h3>Request-Format<\/h3>\\n<pre>\\nPOST \/collections\/documents\/points\/search\\n{\\n \\\"vector\\\": [0.123, -0.456, ...], \/\/ 1536 Werte\\n \\\"limit\\\": 5,\\n \\\"with_payload\\\": true\\n}\\n<\/pre>\\n\\n<h3>Response-Format<\/h3>\\n<pre>\\n{\\n \\\"result\\\": [\\n {\\n \\\"id\\\": \\\"uuid-1234\\\",\\n \\\"score\\\": 0.7823,\\n \\\"payload\\\": {\\n \\\"chunk_id\\\": 42,\\n \\\"document_title\\\": \\\"Coaching-Handbuch.pdf\\\",\\n \\\"content\\\": \\\"Die Auftragsklärung ist...\\\"\\n }\\n },\\n ...\\n ]\\n}\\n<\/pre>\\n\\n<h3>Parameter<\/h3>\\n<table>\\n<thead><tr><th>Parameter<\/th><th>Chat<\/th><th>Content Studio<\/th><\/tr><\/thead>\\n<tbody>\\n<tr><td>top_k \/ limit<\/td><td>5<\/td><td>3-15 (konfigurierbar)<\/td><\/tr>\\n<tr><td>Collection<\/td><td>documents<\/td><td>wählbar (documents, system-docs)<\/td><\/tr>\\n<tr><td>Score-Threshold<\/td><td>keiner<\/td><td>keiner<\/td><\/tr>\\n<\/tbody>\\n<\/table>\",\n \"status\": \"published\",\n \"sort_order\": 6,\n \"depth\": 2,\n \"created_at\": \"2025-12-24T09:43:12\",\n \"updated_at\": \"2025-12-24T09:43:12\"\n }\n}"
}
]
}