🔗 n8n + Qdrant Integration

Kompletní návod pro práci s Qdrant databází v n8n workflow

📋 Obsah

📋 List Collections - Výpis kolekcí

1. Základní HTTP Request node

V n8n vytvořte nový HTTP Request node s následující konfigurací:

Method: GET URL: http://qdrant:6333/collections Headers: Content-Type: application/json

2. Alternativa přes EmbedDataFeed proxy

Pro volání přes náš dashboard proxy:

Method: GET URL: http://localhost:8085/api/proxy?url=http://localhost:6335/collections Headers: Content-Type: application/json

✅ Očekávaný výsledek

{ "result": { "collections": [ { "name": "heureka_products" } ] }, "status": "ok", "time": 0.000123 }

📊 Collection Info - Detailní informace

1. Informace o konkrétní kolekci

Method: GET URL: http://qdrant:6333/collections/heureka_products # Nebo přes proxy: URL: http://localhost:8085/api/proxy?url=http://localhost:6335/collections/heureka_products

2. Využití v n8n workflow

Příklad Function node pro zpracování odpovědi:

// Zpracování collection info const collectionData = $json.result; return { collection_name: collectionData.collection_name, points_count: collectionData.points_count, vectors_count: collectionData.vectors_count, status: collectionData.status, config: { vector_size: collectionData.config.params.vector_size, distance: collectionData.config.params.distance } };

💡 Užitečné informace

📍 Points - Práce s jednotlivými body

Operace Method URL Popis
Získat bod GET /collections/heureka_products/points/{id} Načte konkrétní produkt podle ID
Scroll body POST /collections/heureka_products/points/scroll Načte body postupně (pagination)
Počet bodů GET /collections/heureka_products/points/count Spočítá celkový počet produktů

Příklad: Scroll všech produktů

Method: POST URL: http://qdrant:6333/collections/heureka_products/points/scroll Body (JSON): { "limit": 100, "with_payload": true, "with_vector": false }

🔄 Praktické workflow příklady

1. Denní report produktů

Workflow pro automatické generování denního reportu:

1. Schedule Trigger (denně v 8:00) ↓ 2. HTTP Request - Collection Info URL: http://localhost:8085/api/qdrant-stats ↓ 3. Function Node - Formátování dat // Zpracování statistik const stats = $json; const report = { date: new Date().toLocaleDateString(), total_products: stats.collections[0].points_count, status: stats.collections[0].status }; return report; ↓ 4. Email/Slack/Discord - Odeslání reportu

2. Webhook pro vyhledávání

1. Webhook Trigger ↓ 2. Function Node - Validace vstupu const query = $json.query; if (!query) throw new Error('Chybí query parametr'); return { message: query, limit: 5 }; ↓ 3. HTTP Request - Search URL: http://localhost:8085/api/search Body: {{ $json }} ↓ 4. Function Node - Formátování výsledků const products = $json.products; return products.map(p => ({ name: p.productname, price: p.price_vat, url: p.url, score: Math.round(p.score * 100) + '%' }));

3. Monitoring počtu produktů

1. Schedule Trigger (každou hodinu) ↓ 2. HTTP Request - Collection Stats URL: http://qdrant:6333/collections/heureka_products ↓ 3. Function Node - Kontrola změn const current = $json.result.points_count; const previous = workflow.static.lastCount || 0; if (current !== previous) { workflow.static.lastCount = current; return { changed: true, difference: current - previous, current_count: current }; } return { changed: false }; ↓ 4. IF Node - Pokud změna Expression: {{ $json.changed }} ↓ 5. Notification - Upozornění na změnu

🔧 Řešení problémů

❌ Časté chyby

1. Connection refused

Chyba: ECONNREFUSED 127.0.0.1:6333

Řešení: Použijte qdrant:6333 místo localhost:6333

2. Unauthorized

Chyba: 401 Unauthorized

Řešení: Qdrant v naší konfiguraci nepoužívá autentifikaci

3. Collection not found

Chyba: Collection 'xyz' not found

Řešení: Použijte správný název kolekce: heureka_products

🔍 Debugging tipy

✅ Test připojení

Pro rychlý test vytvořte tento jednoduchý workflow:

1. Manual Trigger ↓ 2. HTTP Request Method: GET URL: http://localhost:8085/api/qdrant-stats ↓ 3. Code Node - Výpis console.log('Qdrant je dostupný!'); console.log('Počet produktů:', $json.collections[0].points_count); return $json;

📞 Dodatečné zdroje

🔗 Užitečné odkazy

🌐 API endpointy pro n8n

# EmbedDataFeed endpointy http://localhost:8085/api/search # Vyhledávání produktů http://localhost:8085/api/qdrant-stats # Statistiky databáze http://localhost:8085/api/process-xml # Zpracování XML # Přímé Qdrant endpointy (z n8n kontejneru) http://qdrant:6333/collections # Seznam kolekcí http://qdrant:6333/collections/heureka_products/points/scroll # Scroll produktů http://qdrant:6333/collections/heureka_products # Info o kolekci