Darmowy szablon automatyzacji

Ładowanie JSON przez FTP do potoku osadzania bazy danych wektorów Qdrant

59
26 dni temu
13
bloków

Automatyzacja przesyłania artykułów JSON do bazy danych Qdrant

Ten szablon automatyzacji służy do masowego przesyłania strukturyzowanych artykułów w formacie JSON z serwera FTP do bazy danych wektorowej Qdrant. Dane są przygotowane pod kątem wykorzystania w systemach semantycznego wyszukiwania, RAG (Retrieval-Augmented Generation) lub asystentach AI.

Funkcjonalności workflow

  • Pobieranie plików JSON z serwera FTP
  • Parsowanie i dzielenie zawartości
  • Tworzenie embeddingów przy użyciu OpenAI
  • Zapis do bazy danych Qdrant

Struktura plików JSON

Przykładowa struktura artykułu w formacie JSON:

{
  "id": "article_001",
  "title": "reseguider",
  "language": "sv",
  "tags": ["london", "resa", "info"],
  "source": "alltomlondon.se",
  "url": "https://...",
  "embedded_at": "2025-04-08T15:27:00Z",
  "chunks": [
    {
      "chunk_id": "article_001_01",
      "section_title": "Introduktion",
      "text": "Välkommen till London..."
    }
  ]
}

Korzyści z zastosowania

  • Automatyczne ładowanie wektorów - Pełna automatyzacja procesu od FTP do Qdrant
  • Przygotowane dane wejściowe - Obsługa zweryfikowanych fragmentów z metadanymi
  • Format gotowy dla AI - Idealne rozwiązanie dla systemów RAG i wyszukiwania semantycznego
  • Elastyczna architektura - Możliwość wymiany komponentów na alternatywne rozwiązania
  • Przyjazny dla społeczności - Wspiera dobre praktyki integracji z bazami wektorowymi

Przykłady zastosowań

Ten szablon automatyzacji znajduje zastosowanie w wielu scenariuszach związanych z przetwarzaniem tekstu i wykorzystaniem modeli językowych:

  • Budowa systemu semantycznego wyszukiwania dla bazy artykułów
  • Automatyczne uzupełnianie wiedzy dla chatbotów i asystentów AI
  • Tworzenie bazy wiedzy dla rozwiązań RAG (Retrieval-Augmented Generation)
  • Indeksowanie dokumentacji technicznej pod kątem szybkiego wyszukiwania
  • Przetwarzanie i kategoryzacja treści z wielu źródeł
  • Przygotowanie danych do analizy podobieństwa tekstów
  • Automatyzacja procesów zarządzania treścią w organizacjach

   Skopiuj kod szablonu   
{"id":"YoUP55V241b9F2ze","meta":{"instanceId":"35ec7a1e5284dd5dab4dac454bbb30405138d2784c99e56ef8887a4fa9cd1977","templateCredsSetupCompleted":true},"name":"Qdrant Vector Database Embedding Pipeline","tags":[],"nodes":[{"id":"934ffad4-c93e-40c1-b4fd-1c09b518a9c3","name":"Qdrant Vector Store","type":"@n8n/n8n-nodes-langchain.vectorStoreQdrant","position":[460,-460],"parameters":{"mode":"insert","options":{},"qdrantCollection":{"__rl":true,"mode":"list","value":"sv_lang_data","cachedResultName":"sv_lang_data"},"embeddingBatchSize":100},"credentials":{"qdrantApi":{"id":"vUb9tbEnXzu7uNUb","name":"QdrantApi svenska"}},"typeVersion":1.1},{"id":"4127d85d-45c9-4536-a15d-08af9dfdcfa8","name":"When clicking ‘Test workflow’","type":"n8n-nodes-base.manualTrigger","position":[-960,-460],"parameters":{},"typeVersion":1},{"id":"abb61b81-72e0-468e-855b-72402db828fc","name":"Embeddings OpenAI","type":"@n8n/n8n-nodes-langchain.embeddingsOpenAi","position":[400,-240],"parameters":{"options":{}},"credentials":{"openAiApi":{"id":"kftHaZgVKiB9BmKU","name":"OpenAi account"}},"typeVersion":1.2},{"id":"e9ae24be-6da9-4c04-b891-7e450f505e02","name":"Default Data Loader","type":"@n8n/n8n-nodes-langchain.documentDefaultDataLoader","position":[780,-180],"parameters":{"options":{},"dataType":"binary"},"typeVersion":1},{"id":"9aff896d-4edb-494c-b84f-ede4e47db1e3","name":"Character Text Splitter","type":"@n8n/n8n-nodes-langchain.textSplitterCharacterTextSplitter","position":[800,20],"parameters":{"separator":""chunk_id""},"typeVersion":1},{"id":"a083a47e-a835-4323-86a8-a2eaed226aaa","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[-760,-680],"parameters":{"color":4,"width":260,"height":200,"content":"### Fetch JSON File Listn**Node:** FTP (all files)n**Operation:** Listn**Path:** nnRecursively lists all .json files prepared for embedding."},"typeVersion":1},{"id":"072ae9dc-c1cd-4ceb-954a-6b6b1b984e29","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[-460,-660],"parameters":{"color":5,"height":180,"content":"### Iterate Over Filesn**Node:** Loop Over ItemsnnBatches each file path individually for processing."},"typeVersion":1},{"id":"08d852f2-f1de-42ce-b882-1dc1343ed967","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[-160,-700],"parameters":{"color":4,"width":420,"height":220,"content":"### Download Each Filen**Node:** FTP (1 file download)nnDownloads the current file in binary form using:n```nPath = file_path/{{ $json.name }}n```"},"typeVersion":1},{"id":"905c3d74-2817-4aa3-865d-51e972cbbb5a","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","position":[920,-80],"parameters":{"color":3,"width":320,"height":400,"content":"### Parse JSON Document (Default Data Loader)n**Node:** Default Data Loadern**Loader Type**: binaryn- Converts JSON structure into a document format compatible with embedding.nnn### Split into Smaller Chunksn**Node:** Character Text Splittern**Split by:** "chunk_id" or custom logic based on chunk formattingnnOptional node if chunk size normalization is required before embedding."},"typeVersion":1},{"id":"9fb8e5be-3ee1-42b4-a858-40bc6afcf457","name":"List all the files","type":"n8n-nodes-base.ftp","position":[-700,-460],"parameters":{"path":"Oracle/AI/embedding/svenska","operation":"list"},"credentials":{"ftp":{"id":"JufoKeNjsIgbCBWe","name":"FTP account"}},"typeVersion":1},{"id":"6f8d0390-5851-44ca-9712-0ae51f9a22ef","name":"Loop over one item","type":"n8n-nodes-base.splitInBatches","position":[-400,-460],"parameters":{"options":{}},"typeVersion":3},{"id":"1c89a4a9-ec68-4c48-b7bc-74f5b30d8ac2","name":"Downloading item","type":"n8n-nodes-base.ftp","position":[-40,-440],"parameters":{"path":"=Oracle/AI/embedding/svenska/{{ $json.name }}","binaryPropertyName":"binary.data"},"credentials":{"ftp":{"id":"JufoKeNjsIgbCBWe","name":"FTP account"}},"typeVersion":1,"alwaysOutputData":true},{"id":"01ca4ee3-5f1c-4977-a7f9-88e46db580ad","name":"Sticky Note4","type":"n8n-nodes-base.stickyNote","position":[360,-960],"parameters":{"width":480,"height":460,"content":"### Store in Vector DBn**Node:** Qdrant Vector Storen**Batch Size:** 100nn**Collection:** nSends cleaned text chunks to OpenAI to get embeddings (1536 dim for text-embedding-ada-002)nn#### collection settings in Qdrant clustern```nPUT /collections/{collection_name}n{n "vectors": {n "size": 1536,n "distance": "Cosine"n }n}n```nEmbed Chunksn**Node:** Embeddings OpenAInPushes the embedded chunks (with metadata) into Qdrant for semantic retrieval."},"typeVersion":1}],"active":false,"pinData":{},"settings":{"executionOrder":"v1"},"versionId":"c71fca63-26e9-4795-9a00-942dab6d07ce","connections":{"Downloading item":{"main":[[{"node":"Qdrant Vector Store","type":"main","index":0}]]},"Embeddings OpenAI":{"ai_embedding":[[{"node":"Qdrant Vector Store","type":"ai_embedding","index":0}]]},"List all the files":{"main":[[{"node":"Loop over one item","type":"main","index":0}]]},"Loop over one item":{"main":[[],[{"node":"Downloading item","type":"main","index":0}]]},"Default Data Loader":{"ai_document":[[{"node":"Qdrant Vector Store","type":"ai_document","index":0}]]},"Qdrant Vector Store":{"main":[[{"node":"List all the files","type":"main","index":0}]]},"Character Text Splitter":{"ai_textSplitter":[[{"node":"Default Data Loader","type":"ai_textSplitter","index":0}]]},"When clicking ‘Test workflow’":{"main":[[{"node":"List all the files","type":"main","index":0}]]}}}
  • SFTP
  • FTP
  • Binary
  • File
  • Transfer
Planeta AI 2025 
magic-wandmenu linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram