{"id":2764,"date":"2025-08-31T15:10:51","date_gmt":"2025-08-31T15:10:51","guid":{"rendered":"https:\/\/www.markus-schall.de\/?p=2764"},"modified":"2025-11-24T09:17:41","modified_gmt":"2025-11-24T09:17:41","slug":"rag-com-ollama-e-qdrant-como-motor-de-pesquisa-universal-para-dados-proprios","status":"publish","type":"post","link":"https:\/\/www.markus-schall.de\/pt\/2025\/08\/rag-com-ollama-e-qdrant-como-motor-de-pesquisa-universal-para-dados-proprios\/","title":{"rendered":"RAG com Ollama e Qdrant como motor de pesquisa universal para dados pr\u00f3prios"},"content":{"rendered":"<p>Num mundo de informa\u00e7\u00e3o cada vez mais confuso, \u00e9 cada vez mais importante tornar as suas pr\u00f3prias bases de dados pesquis\u00e1veis de forma direcionada - n\u00e3o atrav\u00e9s de pesquisas cl\u00e1ssicas de texto integral, mas atrav\u00e9s de respostas semanticamente relevantes. \u00c9 exatamente aqui que entra em jogo o princ\u00edpio da base de dados RAG - uma solu\u00e7\u00e3o de pesquisa apoiada por IA que consiste em dois componentes centrais:<!--more--><\/p>\n<hr \/>\n\n\t\t\t<div class=\"display-post-types\">\n\n\t\t\t\t\t\t\t<style type=\"text\/css\">\n\t\t\t#dpt-wrapper-928 { --dpt-text-align: left;--dpt-image-crop: center;--dpt-border-radius: 5px;--dpt-small-grid-column: 33.33%;--dpt-large-grid-column: 33.3333333333%;--dpt-h-gutter: 10px;--dpt-v-gutter: 10px; }\t\t\t<\/style>\n\t\t\t<style type=\"text\/css\">#dpt-wrapper-928 { --dpt-title-font-style:normal;--dpt-title-font-weight:600;--dpt-title-line-height:1.5;--dpt-title-text-decoration:none;--dpt-title-text-transform:none;--dpt-excerpt-font-style:normal;--dpt-excerpt-font-weight:400;--dpt-excerpt-line-height:1.5;--dpt-excerpt-text-decoration:none;--dpt-excerpt-text-transform:none;--dpt-meta1-font-style:normal;--dpt-meta1-font-weight:400;--dpt-meta1-line-height:1.9;--dpt-meta1-text-decoration:none;--dpt-meta1-text-transform:none;--dpt-meta2-font-style:normal;--dpt-meta2-font-weight:400;--dpt-meta2-line-height:1.9;--dpt-meta2-text-decoration:none;--dpt-meta2-text-transform:none; }<\/style><div class=\"dpt-main-header\">\n\t\t\t\t\t\t<div class=\"dpt-main-title\">\n\t\t\t\t\t\t\t<span class=\"dpt-main-title-text\">T\u00f3picos actuais sobre intelig\u00eancia artificial<\/span>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t<\/div>\t\t\t\n\t\t\t\t<div id=\"dpt-wrapper-928\" class=\"dpt-wrapper dpt-grid1 multi-col dpt-mason-wrap\" >\n\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"dpt-entry has-thumbnail\" data-title=\"gfm-business und die zukunft des erp: lokale intelligenz statt cloud-abh\u00e4ngigkeit\" data-id=\"2956\"  data-category=\"apple iphone &amp; ipad apple macos filemaker &amp; erp ki-systeme\" data-post_tag=\"datenschutz digitales eigentum erp-software filemaker gfm-business k\u00fcnstliche intelligenz llm neo4j qdrant sprachmodell\">\n\t\t\t\t\t\t\t<div class=\"dpt-entry-wrapper\"><div class=\"dpt-featured-content\"><div class=\"dpt-permalink\"><a href=\"https:\/\/www.markus-schall.de\/pt\/2025\/09\/gfm-business-e-o-futuro-do-erp-inteligencia-local-em-vez-de-dependencia-da-nuvem\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">gFM-Business e o futuro do ERP: intelig\u00eancia local em vez de depend\u00eancia da nuvem<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1024\" height=\"683\" class=\"attachment-full size-full\" alt=\"gFM-Business e IA + gr\u00e1fico de conhecimentos\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/gfm-ERP-KI-Wissensgraf.jpg\" data-dpt-sizes=\"(max-width: 1024px) 100vw, 1024px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/gfm-ERP-KI-Wissensgraf.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/gfm-ERP-KI-Wissensgraf-300x200.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/gfm-ERP-KI-Wissensgraf-768x512.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/gfm-ERP-KI-Wissensgraf-18x12.jpg 18w\" \/><\/div><span class=\"dpt-thumbnail-aspect-ratio\" style=\"padding-top: 67%\"><\/span><\/div><\/div><div class=\"sub-entry\"><h3 class=\"dpt-title\"><a class=\"dpt-title-link\" href=\"https:\/\/www.markus-schall.de\/pt\/2025\/09\/gfm-business-e-o-futuro-do-erp-inteligencia-local-em-vez-de-dependencia-da-nuvem\/\" rel=\"bookmark\">gFM-Business e o futuro do ERP: intelig\u00eancia local em vez de depend\u00eancia da nuvem<\/a><\/h3><\/div><\/div>\n\t\t\t\t\t\t<\/div><!-- .dpt-entry -->\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"dpt-entry has-thumbnail\" data-title=\"wenn der mac zuh\u00f6rt: was apples integrierte ki mit gemini und siri k\u00fcnftig f\u00fcr nutzer bedeutet\" data-id=\"4813\"  data-category=\"apple iphone &amp; ipad apple macos ki-systeme\" data-post_tag=\"apple datenlogik datenschutz k\u00fcnstliche intelligenz llm mac prozesse sprachmodell\">\n\t\t\t\t\t\t\t<div class=\"dpt-entry-wrapper\"><div class=\"dpt-featured-content\"><div class=\"dpt-permalink\"><a href=\"https:\/\/www.markus-schall.de\/pt\/2026\/02\/se-o-mac-der-ouvidos-ao-que-o-ki-integrado-da-apple-com-o-gemini-e-o-siri-significara-para-os-utilizadores-no-futuro\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">Quando o Mac ouve: o que a IA integrada do Apple com o Gemini e a Siri significar\u00e1 para os utilizadores no futuro<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1024\" height=\"683\" class=\"attachment-full size-full\" alt=\"Apple, Siri e Gemini\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Apple-Siri-Gemini.jpg\" data-dpt-sizes=\"(max-width: 1024px) 100vw, 1024px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/Apple-Siri-Gemini.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Apple-Siri-Gemini-300x200.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Apple-Siri-Gemini-768x512.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/Apple-Siri-Gemini-18x12.jpg 18w\" \/><\/div><span class=\"dpt-thumbnail-aspect-ratio\" style=\"padding-top: 67%\"><\/span><\/div><\/div><div class=\"sub-entry\"><h3 class=\"dpt-title\"><a class=\"dpt-title-link\" href=\"https:\/\/www.markus-schall.de\/pt\/2026\/02\/se-o-mac-der-ouvidos-ao-que-o-ki-integrado-da-apple-com-o-gemini-e-o-siri-significara-para-os-utilizadores-no-futuro\/\" rel=\"bookmark\">Quando o Mac ouve: o que a IA integrada do Apple com o Gemini e a Siri significar\u00e1 para os utilizadores no futuro<\/a><\/h3><\/div><\/div>\n\t\t\t\t\t\t<\/div><!-- .dpt-entry -->\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"dpt-entry has-thumbnail\" data-title=\"ki als sparringspartner nutzen: wie denken im dialog produktiver wird\" data-id=\"4121\"  data-category=\"b\u00fccher ki-systeme tipps &amp; anleitungen\" data-post_tag=\"buch datenlogik denkmodelle k\u00fcnstliche intelligenz lernen llm ratgeber sprachmodell\">\n\t\t\t\t\t\t\t<div class=\"dpt-entry-wrapper\"><div class=\"dpt-featured-content\"><div class=\"dpt-permalink\"><a href=\"https:\/\/www.markus-schall.de\/pt\/2025\/12\/usar-o-ki-como-parceiro-de-treino-como-o-pensamento-se-torna-mais-produtivo-no-dialogo\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">Utilizar a IA como parceiro de treino: Como \u00e9 que pensar em di\u00e1logo se torna mais produtivo<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1024\" height=\"683\" class=\"attachment-full size-full\" alt=\"A IA como parceiro de poupan\u00e7a\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/ki-als-sparringspartner-laptop.jpg\" data-dpt-sizes=\"(max-width: 1024px) 100vw, 1024px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/ki-als-sparringspartner-laptop.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/ki-als-sparringspartner-laptop-300x200.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/ki-als-sparringspartner-laptop-768x512.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/ki-als-sparringspartner-laptop-18x12.jpg 18w\" \/><\/div><span class=\"dpt-thumbnail-aspect-ratio\" style=\"padding-top: 67%\"><\/span><\/div><\/div><div class=\"sub-entry\"><h3 class=\"dpt-title\"><a class=\"dpt-title-link\" href=\"https:\/\/www.markus-schall.de\/pt\/2025\/12\/usar-o-ki-como-parceiro-de-treino-como-o-pensamento-se-torna-mais-produtivo-no-dialogo\/\" rel=\"bookmark\">Utilizar a IA como parceiro de treino: Como \u00e9 que pensar em di\u00e1logo se torna mais produtivo<\/a><\/h3><\/div><\/div>\n\t\t\t\t\t\t<\/div><!-- .dpt-entry -->\n\t\t\t\t\t\t\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\n<hr \/>\n<ol>\n<li>uma base de dados vetorial (como Qdrant) em que qualquer conte\u00fado \u00e9 armazenado como vectores num\u00e9ricos,<\/li>\n<li>e um modelo lingu\u00edstico (por exemplo, atrav\u00e9s do Ollama) que combina de forma inteligente os respectivos pedidos com o conte\u00fado adequado.<\/li>\n<\/ol>\n<p>Em vez de deixar o modelo \"adivinhar\", esta arquitetura utiliza as suas pr\u00f3prias fontes de conhecimento - por exemplo:<\/p>\n<ul>\n<li>document\u00e1rios escritos pelo pr\u00f3prio,<\/li>\n<li>Conte\u00fado dos s\u00edtios Web,<\/li>\n<li>manuais t\u00e9cnicos,<\/li>\n<li>Bases de dados de apoio,<\/li>\n<li>Listas de FAQ,<\/li>\n<li>ou quaisquer fontes de texto arquivadas (por exemplo, de bases de dados antigas).<\/li>\n<\/ul>\n<p>O fator decisivo: Todas estas fontes podem ser preparadas antecipadamente e \"fragmentadas\" (ou seja, divididas em pequenas unidades de texto) para poder fornecer mais tarde os excertos de texto mais relevantes para uma pergunta do utilizador.<\/p>\n<p>Assim, quer pretenda tornar analis\u00e1vel a sua pr\u00f3pria base de dados de conhecimentos, documenta\u00e7\u00e3o interna ou todo um arquivo de produtos - com <a href=\"https:\/\/ollama.com\" target=\"_blank\" rel=\"noopener\"><strong>Ollama<\/strong><\/a> + <a href=\"https:\/\/qdrant.tech\" target=\"_blank\" rel=\"noopener\"><strong>Qdrant<\/strong><\/a> pode faz\u00ea-lo no seu pr\u00f3prio Mac, sem quaisquer restri\u00e7\u00f5es da nuvem e com controlo total sobre os dados.<\/p>\n<h2>O que \u00e9 uma base de dados RAG - e porqu\u00ea \"chunking\"?<\/h2>\n<p>RAG significa Retrieval-Augmented Generation - por outras palavras: IA geradora de texto com recupera\u00e7\u00e3o assistida de informa\u00e7\u00e3o. Em vez de treinar um modelo lingu\u00edstico como o GPT, o Mistral ou o LLaMA apenas com base naquilo que j\u00e1 \"sabe\", pode aceder a informa\u00e7\u00f5es adicionais atrav\u00e9s de uma base de dados de conhecimentos conectada (normalmente a chamada base de dados vetorial).<\/p>\n<p><strong>Exemplo:<\/strong><\/p>\n<blockquote><p>Se perguntar a um modelo de linguagem: \"O que \u00e9 que est\u00e1 na minha declara\u00e7\u00e3o de impostos de 2023?\", ele ter\u00e1 de adivinhar sem acesso aos dados originais. No entanto, se tiver acesso a uma representa\u00e7\u00e3o vetorial deste documento, armazenada localmente, pode recuperar as informa\u00e7\u00f5es relevantes e incorpor\u00e1-las na sua resposta.<\/p><\/blockquote>\n<h3>Por que \u00e9 que o conte\u00fado \u00e9 \"dividido em peda\u00e7os\"?<\/h3>\n<p>Os documentos, s\u00edtios Web ou livros s\u00e3o normalmente demasiado longos para serem processados ou pesquisados de uma s\u00f3 vez. Os modelos lingu\u00edsticos modernos tamb\u00e9m t\u00eam limites de tokens - ou seja, um comprimento limitado de texto que podem compreender de uma s\u00f3 vez (frequentemente cerca de 4.000-8.000 tokens, sendo que os modelos mais recentes chegam a ter 32.000 ou mais).<\/p>\n<p>\u00c9 por isso que o RAG utiliza o seguinte truque:<\/p>\n<ol>\n<li>O texto original est\u00e1 dividido em pequenas sec\u00e7\u00f5es (chunks).<\/li>\n<li>Cada peda\u00e7o \u00e9 convertido num vetor por um modelo de linguagem (incorpora\u00e7\u00e3o).<\/li>\n<li>Estes vectores s\u00e3o armazenados numa base de dados como a Qdrant.<\/li>\n<li>Quando o utilizador faz um pedido, o pedido tamb\u00e9m \u00e9 traduzido para um vetor - e os peda\u00e7os mais semelhantes s\u00e3o recuperados.<\/li>\n<li>Este conte\u00fado \u00e9 ent\u00e3o adicionado ao modelo lingu\u00edstico - por exemplo, atrav\u00e9s de uma solicita\u00e7\u00e3o do sistema ou de uma inje\u00e7\u00e3o de contexto.<\/li>\n<\/ol>\n<p>Isto cria um sistema que se comporta como uma mem\u00f3ria - mas sem palavras-chave cl\u00e1ssicas ou pesquisa de texto completo, mas puramente baseado no significado (sem\u00e2ntico).<\/p>\n<h2>Requisitos e objetivo<\/h2>\n<p>Estamos a construir um sistema RAG local que consiste em:<\/p>\n<ul>\n<li>um LLM local via Ollama<\/li>\n<li>uma base de dados vetorial denominada Qdrant<\/li>\n<li>um script Python que divide, vetoriza e insere textos na base de dados<\/li>\n<li>Opcional: uma interface simples ou API para consulta<\/li>\n<\/ul>\n<p><strong>Plataforma de destino: macOS (Intel ou Apple Silicon)<\/strong><\/p>\n<p>Esta \u00e9 uma condi\u00e7\u00e3o pr\u00e9via:<\/p>\n<ul>\n<li>macOS 12 ou mais recente (Monterey ou superior)<\/li>\n<li>Conhecimentos b\u00e1sicos dos terminais<\/li>\n<li>Python 3.10 ou mais recente<\/li>\n<li>Facultativo: Homebrew installiert<\/li>\n<\/ul>\n<h3>Etapa 1: Ollama 1TP12Animal<\/h3>\n<p>O Ollama \u00e9 uma ferramenta simples que lhe permite executar modelos lingu\u00edsticos locais como o Mistral, LLaMA, Gemma ou Codellama no seu pr\u00f3prio computador, mesmo sem Internet.<\/p>\n<p>Instala\u00e7\u00e3o no Mac:<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">curl -fsSL https:\/\/ollama.com\/install.sh | sh<\/pre>\n<p>Em alternativa, o Ollama tamb\u00e9m pode ser atribu\u00eddo atrav\u00e9s do Homebrew install:<br \/>\nbrew install ollama<\/p>\n<p>Ap\u00f3s a instala\u00e7\u00e3o:<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">ollama run mistral<\/pre>\n<p>Isto descarrega o modelo Mistral 7B e inicia-o localmente. O Ollama vem com uma API REST, que usaremos mais tarde para vectoriza\u00e7\u00e3o. \u00c9 claro que tamb\u00e9m \u00e9 poss\u00edvel usar outros modelos, como Gemma3 (12B), Mistral Small (24B) ou outros LLMs.<\/p>\n<h3>Etapa 2: Animais Qdrant 1TP12 (base de dados vetorial local)<\/h3>\n<p>Qdrant \u00e9 uma base de dados vetorial extremamente r\u00e1pida baseada em Rust. \u00c9 gratuita, de c\u00f3digo aberto e f\u00e1cil de iniciar no Mac - de prefer\u00eancia atrav\u00e9s do Docker. Se ainda n\u00e3o instalou o Docker no seu Mac 1TP12, pode descarreg\u00e1-lo a partir da p\u00e1gina <a href=\"https:\/\/www.docker.com\" target=\"_blank\" rel=\"noopener\"><strong>S\u00edtio Web do Docker<\/strong><\/a> gratuitamente e execut\u00e1-lo no seu Mac como uma aplica\u00e7\u00e3o de ambiente de trabalho normal installieren. Em alternativa, tamb\u00e9m pode instalar o Docker atrav\u00e9s do Homebrew install se j\u00e1 estiver a utilizar o Homebrew:<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">brew install --cask docker<\/pre>\n<p>Em seguida, inicie o Qdrant atrav\u00e9s do Docker:<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">docker run -p 6333:6333 -v qdrant_storage:\/qdrant\/storage qdrant\/qdrant<\/pre>\n<p>A Qdrant pode ser contactada atrav\u00e9s do endere\u00e7o<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">http:\/\/localhost:6333<\/pre>\n<p>Para testar:<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">curl http:\/\/localhost:6333\/collections<\/pre>\n<h3>Passo 3: Preparar o ambiente Python<\/h3>\n<p>Precisamos de Python para a fragmenta\u00e7\u00e3o, a incorpora\u00e7\u00e3o e a comunica\u00e7\u00e3o com Qdrant.<\/p>\n<p>Prepara\u00e7\u00e3o:<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">python3 -m venv rag-env\r\nsource rag-env\/bin\/activate\r\npip install qdrant-client sentence-transformers ollama numpy<\/pre>\n<p>Se o ollama n\u00e3o for reconhecido como um pacote Python, utilize a API REST diretamente atrav\u00e9s de pedidos:<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">pip install requests<\/pre>\n<h3>Etapa 4: Chunking e incorpora\u00e7\u00e3o<\/h3>\n<p>Abaixo encontrar\u00e1 um script de exemplo que divide um documento de texto em peda\u00e7os, cria embeddings atrav\u00e9s do Ollama e insere-os no Qdrant:<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">import requests\r\nfrom qdrant_client import QdrantClient\r\nfrom qdrant_client.models import PointStruct\r\nimport uuid\r\n\r\n# Konfiguration\r\nCHUNK_SIZE = 500 # Zeichen\r\nCOLLECTION_NAME = \"mein_rag_wissen\"\r\n\r\n# Text vorbereiten\r\nwith open(\"mein_text.txt\", \"r\") as f:\r\ntext = f.read()\r\n\r\nchunks = [text[i:i+CHUNK_SIZE] for i in range(0, len(text), CHUNK_SIZE)]\r\n\r\n# Qdrant vorbereiten\r\nclient = QdrantClient(\"localhost\", port=6333)\r\n\r\n# Neue Collection anlegen (falls noch nicht vorhanden)\r\nclient.recreate_collection(\r\ncollection_name=COLLECTION_NAME,\r\nvectors_config={\"size\": 4096, \"distance\": \"Cosine\"}\r\n)\r\n\r\ndef get_embedding_ollama(text):\r\nresponse = requests.post(\r\n\"http:\/\/localhost:11434\/api\/embeddings\",\r\njson={\"model\": \"mistral\", \"prompt\": text}\r\n)\r\nreturn response.json()[\"embedding\"]\r\n\r\n# Embeddings erzeugen und in Qdrant speichern\r\npoints = []\r\nfor i, chunk in enumerate(chunks):\r\nvector = get_embedding_ollama(chunk)\r\npoints.append(PointStruct(\r\nid=str(uuid.uuid4()),\r\nvector=vector,\r\npayload={\"text\": chunk}\r\n))\r\n\r\nclient.upsert(collection_name=COLLECTION_NAME, points=points)\r\nprint(f\"{len(points)} Chunks erfolgreich eingef\u00fcgt.\")<\/pre>\n<h3>Etapa 5: Consultas atrav\u00e9s da pesquisa sem\u00e2ntica<\/h3>\n<p>Agora \u00e9 poss\u00edvel enviar consultas como um vetor para o Qdrant e fazer com que este encontre as sec\u00e7\u00f5es de texto mais relevantes:<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">query = \"Wie funktioniert ein RAG-System?\"\r\nquery_vector = get_embedding_ollama(query)\r\n\r\nresults = client.search(\r\ncollection_name=COLLECTION_NAME,\r\nquery_vector=query_vector,\r\nlimit=3\r\n)\r\n\r\nfor r in results:\r\nprint(r.payload[\"text\"])<\/pre>\n<p>Pode ent\u00e3o passar estes blocos para o Ollama atrav\u00e9s de um prompt do sistema, por exemplo, e formul\u00e1-los como uma resposta relacionada com o contexto.<\/p>\n<h2>Exporta\u00e7\u00e3o Chunking + JSON para FileMaker e outras bases de dados<\/h2>\n<p>Em muitos casos, o chunking j\u00e1 pode ser efectuado numa solu\u00e7\u00e3o de base de dados existente - no FileMaker, por exemplo. \u00c9 exatamente assim que funciona no meu ambiente de trabalho: os dados de origem - como o conte\u00fado do s\u00edtio Web, entradas de apoio ou artigos t\u00e9cnicos - j\u00e1 est\u00e3o dispon\u00edveis de forma estruturada no FileMaker.<\/p>\n<p>\u00c9 assim que o processo funciona:<\/p>\n<ol>\n<li>Os textos s\u00e3o divididos em sec\u00e7\u00f5es de, por exemplo, 300-500 caracteres no FileMaker, utilizando a sua pr\u00f3pria l\u00f3gica de fragmenta\u00e7\u00e3o.<\/li>\n<li>A cada fragmento \u00e9 atribu\u00eddo um ID pr\u00f3prio e, se for caso disso, metadados (t\u00edtulo, categoria, fonte, l\u00edngua, etc.).<\/li>\n<li>Todos os blocos s\u00e3o automaticamente exportados como ficheiros JSON - por exemplo, para um diret\u00f3rio espec\u00edfico numa unidade de rede ou diretamente para o disco r\u00edgido do servidor de IA.<\/li>\n<li>Um script Python no servidor l\u00ea estes ficheiros JSON e guarda-os na base de dados Qdrant.<\/li>\n<\/ol>\n<h3>Exemplo de um ficheiro de peda\u00e7os exportado (chunk_00017.json)<\/h3>\n<pre class=\"notranslate\" data-no-translation=\"\">{\r\n\"id\": \"00017\",\r\n\"text\": \"Dies ist ein einzelner Textabschnitt mit ca. 400 Zeichen, der aus einer gr\u00f6\u00dferen Quelle stammt. Er wurde in FileMaker vorbereitet und enth\u00e4lt alle relevanten Inhalte, die f\u00fcr eine semantische Suche ben\u00f6tigt werden.\",\r\n\"metadata\": {\r\n\"source\": \"support_center\",\r\n\"category\": \"Fehlermeldung\",\r\n\"language\": \"de\",\r\n\"title\": \"Drucker wird nicht erkannt\"\r\n}\r\n}<\/pre>\n<p>O script de importa\u00e7\u00e3o subsequente pode ent\u00e3o ser executado automaticamente ou regularmente atrav\u00e9s do terminal - por exemplo, atrav\u00e9s de um cron job ou chamada manual:<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">python3 import_json_chunks.py \/Users\/markus\/Desktop\/chunks\/<\/pre>\n<p>O script l\u00ea cada fragmento JSON, gera o vetor correspondente (por exemplo, atrav\u00e9s de Ollama ou SentenceTransformers) e transfere a entrada para a base de dados Qdrant.<\/p>\n<p>Este m\u00e9todo n\u00e3o s\u00f3 \u00e9 transparente, como tamb\u00e9m pode ser combinado muito bem com as estruturas de TI existentes - especialmente em empresas que j\u00e1 utilizam o FileMaker ou que gostam de mapear tudo de forma centralizada e controlada visualmente por raz\u00f5es de clareza do processo.<\/p>\n<h2>Ligar quaisquer bases de dados \u00e0 sua IA local<\/h2>\n<p>Com o Ollama e o Qdrant, um sistema RAG completo e de alto desempenho pode ser configurado no Mac num curto espa\u00e7o de tempo:<\/p>\n<ul>\n<li>Local, sem nuvem ou subscri\u00e7\u00e3o<\/li>\n<li>Expans\u00edvel, com o seu pr\u00f3prio conte\u00fado<\/li>\n<li>Seguran\u00e7a dos dados, pois nada sai do computador<\/li>\n<li>Eficiente, uma vez que a Qdrant se mant\u00e9m r\u00e1pida mesmo com grandes quantidades de dados<\/li>\n<\/ul>\n<p>Se quiser utilizar a sua IA n\u00e3o apenas para conversar, mas como um verdadeiro sistema de conhecimento e mem\u00f3ria, esta combina\u00e7\u00e3o \u00e9 obrigat\u00f3ria. E funciona com pouco esfor\u00e7o - com controlo total sobre os seus pr\u00f3prios dados.<\/p>\n<hr \/>\n<h3>Inqu\u00e9rito atual sobre a utiliza\u00e7\u00e3o de sistemas locais de IA<\/h3>\n<div class='bootstrap-yop yop-poll-mc'>\n\t\t\t\t\t\t\t<div class=\"basic-yop-poll-container\" style=\"background-color:#ffffff; border:0px; border-style:solid; border-color:#000000; border-radius:5px; padding:0px 5px;\" data-id=\"9\" data-temp=\"basic-pretty\" data-skin=\"square\" data-cscheme=\"blue\" data-cap=\"0\" data-access=\"guest\" data-tid=\"\" data-uid=\"63191515ee6418ab1bb32fb12881ee6e\" data-pid=\"4121\" data-resdet=\"votes-number,percentages\" data-show-results-to=\"guest\" data-show-results-moment=\"after-vote\" data-show-results-only=\"false\" data-show-message=\"true\" data-show-results-as=\"bar\" data-sort-results-by=\"as-defined\" data-sort-results-rule=\"asc\"data-is-ended=\"0\" data-percentages-decimals=\"2\" data-gdpr=\"no\" data-gdpr-sol=\"consent\" data-css=\".basic-yop-poll-container[data-uid] .basic-vote {\t\t\t\t\t\t\t\t\ttext-align: center;\t\t\t\t\t\t\t\t}\" data-counter=\"0\" data-load-with=\"1\" data-notification-section=\"top\"><div class=\"row\"><div class=\"col-md-12\"><div class=\"basic-inner\"><div class=\"basic-message hide\" style=\"border-left: 10px solid #008000; padding: 0px 10px;\" data-error=\"#ff0000\" data-success=\"#008000\"><p class=\"basic-message-text\" style=\"color:#000000; font-size:14px; font-weight:normal;\"><\/p><\/div><div class=\"basic-overlay hide\"><div class=\"basic-vote-options\"><\/div><div class=\"basic-preloader\"><div class=\"basic-windows8\"><div class=\"basic-wBall basic-wBall_1\"><div class=\"basic-wInnerBall\"><\/div><\/div><div class=\"basic-wBall basic-wBall_2\"><div class=\"basic-wInnerBall\"><\/div><\/div><div class=\"basic-wBall basic-wBall_3\"><div class=\"basic-wInnerBall\"><\/div><\/div><div class=\"basic-wBall basic-wBall_4\"><div class=\"basic-wInnerBall\"><\/div><\/div><div class=\"basic-wBall basic-wBall_5\"><div class=\"basic-wInnerBall\"><\/div><\/div><\/div><\/div><\/div><form class=\"basic-form\" action=\"\"><input type=\"hidden\" name=\"_token\" value=\"683cbd28ef\" autocomplete=\"off\"><div class=\"basic-elements\"><div class=\"basic-element basic-question basic-question-text-vertical\" data-id=\"9\" data-uid=\"0664b67b0042617f1a7bc8c43aa3e3ff\" data-type=\"question\" data-question-type=\"text\" data-required=\"yes\" data-allow-multiple=\"no\" data-min=\"1\" data-max=\"7\" data-display=\"vertical\" data-colnum=\"\" data-display-others=\"no\" data-others-color=\"\" data-others=\"\" data-others-max-chars=\"0\"><div class=\"basic-question-title\"><h5 style=\"color:#000000; font-size:16px; font-weight:normal; text-align:left;\">O que pensa de um software de IA de execu\u00e7\u00e3o local, como o MLX ou o Ollama?<\/h5><\/div><ul class=\"basic-answers\"><li class=\"basic-answer\" style=\"padding:0px 0px;\" data-id=\"45\" data-type=\"text\" data-vn=\"141\" data-color=\"#000000\" data-make-link=\"no\" data-link=\"\"><div class=\"basic-answer-content basic-text-vertical\"><label for=\"answer[45]\" class=\"basic-answer-label\"><input type=\"radio\" id=\"answer[45]\" name=\"answer[9]\" value=\"45\"><span class=\"basic-text\" style=\"color: #000000; font-size: 14px; font-weight: normal;\">Ingenious - finalmente independente da nuvem<\/span><\/label><\/div><\/li><li class=\"basic-answer\" style=\"padding:0px 0px;\" data-id=\"46\" data-type=\"text\" data-vn=\"25\" data-color=\"#000000\" data-make-link=\"no\" data-link=\"\"><div class=\"basic-answer-content basic-text-vertical\"><label for=\"answer[46]\" class=\"basic-answer-label\"><input type=\"radio\" id=\"answer[46]\" name=\"answer[9]\" value=\"46\"><span class=\"basic-text\" style=\"color: #000000; font-size: 14px; font-weight: normal;\">Interessante, mas (ainda) demasiado complicado<\/span><\/label><\/div><\/li><li class=\"basic-answer\" style=\"padding:0px 0px;\" data-id=\"47\" data-type=\"text\" data-vn=\"28\" data-color=\"#000000\" data-make-link=\"no\" data-link=\"\"><div class=\"basic-answer-content basic-text-vertical\"><label for=\"answer[47]\" class=\"basic-answer-label\"><input type=\"radio\" id=\"answer[47]\" name=\"answer[9]\" value=\"47\"><span class=\"basic-text\" style=\"color: #000000; font-size: 14px; font-weight: normal;\">Vou experiment\u00e1-lo em breve<\/span><\/label><\/div><\/li><li class=\"basic-answer\" style=\"padding:0px 0px;\" data-id=\"48\" data-type=\"text\" data-vn=\"5\" data-color=\"#000000\" data-make-link=\"no\" data-link=\"\"><div class=\"basic-answer-content basic-text-vertical\"><label for=\"answer[48]\" class=\"basic-answer-label\"><input type=\"radio\" id=\"answer[48]\" name=\"answer[9]\" value=\"48\"><span class=\"basic-text\" style=\"color: #000000; font-size: 14px; font-weight: normal;\">N\u00e3o preciso dela - a nuvem \u00e9 suficiente para mim<\/span><\/label><\/div><\/li><li class=\"basic-answer\" style=\"padding:0px 0px;\" data-id=\"49\" data-type=\"text\" data-vn=\"4\" data-color=\"#000000\" data-make-link=\"no\" data-link=\"\"><div class=\"basic-answer-content basic-text-vertical\"><label for=\"answer[49]\" class=\"basic-answer-label\"><input type=\"radio\" id=\"answer[49]\" name=\"answer[9]\" value=\"49\"><span class=\"basic-text\" style=\"color: #000000; font-size: 14px; font-weight: normal;\">N\u00e3o sei exatamente do que se trata<\/span><\/label><\/div><\/li><\/ul><\/div><div class=\"clearfix\"><\/div><\/div><div class=\"basic-vote\"><a href=\"#\" class=\"button basic-vote-button\" role=\"button\" style=\"background:#027bb8; border:0px; border-style: solid; border-color:#000000; border-radius:5px; padding:10px 10px; color:#ffffff; font-size:14px; font-weight:normal;\">Vota\u00e7\u00e3o<\/a><\/div><input type=\"hidden\" name=\"trp-form-language\" value=\"pt\"\/><\/form><\/div><\/div><\/div><\/div>\n\t\t\t\t\t\t<\/div>\n<hr \/>\n<h2>Perspectivas: O que \u00e9 poss\u00edvel com RAG, Ollama e Qdrant<\/h2>\n<p>A configura\u00e7\u00e3o descrita neste artigo constitui a base t\u00e9cnica para uma nova forma de lidar com o conhecimento - local, controlada e flexivelmente expans\u00edvel. Mas a viagem n\u00e3o termina aqui. Depois de compreender a intera\u00e7\u00e3o entre a fragmenta\u00e7\u00e3o, a incorpora\u00e7\u00e3o, a pesquisa sem\u00e2ntica e os modelos lingu\u00edsticos, rapidamente se aperceber\u00e1 da versatilidade desta arquitetura na pr\u00e1tica.<\/p>\n<h3>1. liga\u00e7\u00e3o a bases de dados pr\u00f3prias<\/h3>\n<p>Quer se trate de FileMaker, MySQL, PostgreSQL ou MongoDB - qualquer conte\u00fado pode ser regularmente extra\u00eddo, dividido em peda\u00e7os e inserido automaticamente na base de dados vetorial atrav\u00e9s de consultas espec\u00edficas. Isto transforma uma base de dados cl\u00e1ssica numa fonte de conhecimento semanticamente pesquis\u00e1vel. Especialmente em sistemas de apoio, arquivos de produtos ou bibliotecas digitais, isto abre op\u00e7\u00f5es de acesso completamente novas para funcion\u00e1rios ou clientes.<\/p>\n<h3>2. importa\u00e7\u00e3o autom\u00e1tica de p\u00e1ginas Web, PDFs ou documentos<\/h3>\n<p>Os conte\u00fados n\u00e3o t\u00eam de ser transferidos manualmente. Com ferramentas como BeautifulSoup, readability, pdfplumber ou docx2txt, s\u00edtios Web inteiros, manuais em PDF ou documentos Word podem ser automaticamente importados, convertidos em texto e preparados para a fragmenta\u00e7\u00e3o. Por exemplo, wikis t\u00e9cnicos, portais de clientes ou documenta\u00e7\u00e3o em linha podem ser regularmente actualizados e introduzidos na base de dados RAG.<\/p>\n<h3>3. desenvolvimento de conhecimentos a longo prazo atrav\u00e9s da estrutura\u00e7\u00e3o<\/h3>\n<p>Ao contr\u00e1rio de uma aplica\u00e7\u00e3o cl\u00e1ssica de IA, que come\u00e7a do zero com cada pergunta, uma configura\u00e7\u00e3o RAG permite a expans\u00e3o e a curadoria passo a passo do conhecimento subjacente. A sele\u00e7\u00e3o e a prepara\u00e7\u00e3o de partes espec\u00edficas criam a sua pr\u00f3pria mem\u00f3ria sem\u00e2ntica, que se torna mais valiosa a cada entrada.<\/p>\n<h3>4. liga\u00e7\u00e3o com gr\u00e1ficos de conhecimento (Neo4j)<\/h3>\n<p>Se quiser dar um passo em frente, pode n\u00e3o s\u00f3 armazenar a informa\u00e7\u00e3o semanticamente, mas tamb\u00e9m lig\u00e1-la logicamente. Com o Neo4j, uma base de dados de grafos, as rela\u00e7\u00f5es entre termos, pessoas, t\u00f3picos ou categorias podem ser visualizadas e especificamente consultadas. Isto transforma uma cole\u00e7\u00e3o de textos num gr\u00e1fico de conhecimento estruturado que pode ser utilizado tanto por humanos como por IA - por exemplo, para visualizar cadeias causais, sequ\u00eancias temporais ou grupos tem\u00e1ticos.<\/p>\n<h3>5. utilizar nas suas pr\u00f3prias ferramentas, aplica\u00e7\u00f5es ou chatbots<\/h3>\n<p>Uma vez configurada, a l\u00f3gica RAG pode ser integrada em quase todas as aplica\u00e7\u00f5es: como uma fun\u00e7\u00e3o de pesquisa sem\u00e2ntica numa aplica\u00e7\u00e3o Web interna, como um auxiliar de introdu\u00e7\u00e3o inteligente num sistema CRM ou como um chatbot com a sua pr\u00f3pria experi\u00eancia no s\u00edtio Web da empresa. Ao utilizar APIs locais (por exemplo, Ollama REST e Qdrant gRPC), todos os componentes permanecem flex\u00edveis e expans\u00edveis - mesmo para al\u00e9m das fronteiras tradicionais da empresa.<\/p>\n<p>Aqueles que t\u00eam a coragem de se familiarizar com estas ferramentas criam a base para sistemas de IA locais e independentes com um verdadeiro valor de utilidade - num esp\u00edrito de controlo, soberania e clareza t\u00e9cnica.<\/p>\n<hr \/>\n\n\t\t\t<div class=\"display-post-types\">\n\n\t\t\t\t\t\t\t<style type=\"text\/css\">\n\t\t\t#dpt-wrapper-929 { --dpt-text-align: left;--dpt-image-crop: center;--dpt-border-radius: 5px;--dpt-small-grid-column: 33.33%;--dpt-large-grid-column: 33.3333333333%;--dpt-h-gutter: 10px;--dpt-v-gutter: 10px; }\t\t\t<\/style>\n\t\t\t<style type=\"text\/css\">#dpt-wrapper-929 { --dpt-title-font-style:normal;--dpt-title-font-weight:600;--dpt-title-line-height:1.5;--dpt-title-text-decoration:none;--dpt-title-text-transform:none;--dpt-excerpt-font-style:normal;--dpt-excerpt-font-weight:400;--dpt-excerpt-line-height:1.5;--dpt-excerpt-text-decoration:none;--dpt-excerpt-text-transform:none;--dpt-meta1-font-style:normal;--dpt-meta1-font-weight:400;--dpt-meta1-line-height:1.9;--dpt-meta1-text-decoration:none;--dpt-meta1-text-transform:none;--dpt-meta2-font-style:normal;--dpt-meta2-font-weight:400;--dpt-meta2-line-height:1.9;--dpt-meta2-text-decoration:none;--dpt-meta2-text-transform:none; }<\/style><div class=\"dpt-main-header\">\n\t\t\t\t\t\t<div class=\"dpt-main-title\">\n\t\t\t\t\t\t\t<span class=\"dpt-main-title-text\">T\u00f3picos actuais sobre software ERP<\/span>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t<\/div>\t\t\t\n\t\t\t\t<div id=\"dpt-wrapper-929\" class=\"dpt-wrapper dpt-grid1 multi-col dpt-mason-wrap\" >\n\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"dpt-entry has-thumbnail\" data-title=\"gfm-dental 1.1 enth\u00e4lt konstanzpr\u00fcfung nach din 6868-157.\" data-id=\"2059\"  data-category=\"apple macos filemaker &amp; erp\" data-post_tag=\"apple erp-software filemaker\">\n\t\t\t\t\t\t\t<div class=\"dpt-entry-wrapper\"><div class=\"dpt-featured-content\"><div class=\"dpt-permalink\"><a href=\"https:\/\/www.markus-schall.de\/pt\/2015\/05\/gfm-dental-11-contem-teste-de-constancia-de-acordo-com-din-6868-157\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">gFM-Dental 1.1 cont\u00e9m ensaio de const\u00e2ncia de acordo com a norma DIN 6868-157.<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"630\" height=\"444\" class=\"attachment-full size-full\" alt=\"Efetuar o controlo de regularidade no gFM-Dental\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/neue_konstanzpruefung_630.jpg\" data-dpt-sizes=\"(max-width: 630px) 100vw, 630px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/neue_konstanzpruefung_630.jpg 630w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/neue_konstanzpruefung_630-300x211.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/neue_konstanzpruefung_630-18x12.jpg 18w\" \/><\/div><span class=\"dpt-thumbnail-aspect-ratio\" style=\"padding-top: 70%\"><\/span><\/div><\/div><div class=\"sub-entry\"><h3 class=\"dpt-title\"><a class=\"dpt-title-link\" href=\"https:\/\/www.markus-schall.de\/pt\/2015\/05\/gfm-dental-11-contem-teste-de-constancia-de-acordo-com-din-6868-157\/\" rel=\"bookmark\">gFM-Dental 1.1 cont\u00e9m ensaio de const\u00e2ncia de acordo com a norma DIN 6868-157.<\/a><\/h3><\/div><\/div>\n\t\t\t\t\t\t<\/div><!-- .dpt-entry -->\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"dpt-entry has-thumbnail\" data-title=\"gofilemaker.de hat einen neuen internetauftritt\" data-id=\"2347\"  data-category=\"filemaker &amp; erp\" data-post_tag=\"erp-software filemaker gfm-business\">\n\t\t\t\t\t\t\t<div class=\"dpt-entry-wrapper\"><div class=\"dpt-featured-content\"><div class=\"dpt-permalink\"><a href=\"https:\/\/www.markus-schall.de\/pt\/2022\/04\/gofilemaker-de-tem-um-novo-sitio-web\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">O gofilemaker.de tem um novo s\u00edtio Web<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"2560\" height=\"2020\" class=\"attachment-full size-full\" alt=\"gofilemaker.de Presen\u00e7a na Internet\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/gofilemaker_de_2022-scaled.jpg\" data-dpt-sizes=\"(max-width: 2560px) 100vw, 2560px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/gofilemaker_de_2022-scaled.jpg 2560w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/gofilemaker_de_2022-300x237.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/gofilemaker_de_2022-1024x808.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/gofilemaker_de_2022-768x606.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/gofilemaker_de_2022-1536x1212.jpg 1536w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/gofilemaker_de_2022-2048x1616.jpg 2048w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/gofilemaker_de_2022-15x12.jpg 15w\" \/><\/div><span class=\"dpt-thumbnail-aspect-ratio\" style=\"padding-top: 79%\"><\/span><\/div><\/div><div class=\"sub-entry\"><h3 class=\"dpt-title\"><a class=\"dpt-title-link\" href=\"https:\/\/www.markus-schall.de\/pt\/2022\/04\/gofilemaker-de-tem-um-novo-sitio-web\/\" rel=\"bookmark\">O gofilemaker.de tem um novo s\u00edtio Web<\/a><\/h3><\/div><\/div>\n\t\t\t\t\t\t<\/div><!-- .dpt-entry -->\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"dpt-entry has-thumbnail\" data-title=\"warum eine erp-software allein nicht reicht \u2013 und wie man prozesse wirklich versteht\" data-id=\"2791\"  data-category=\"filemaker &amp; erp tipps &amp; anleitungen\" data-post_tag=\"buch datenbanken datenlogik denkmodelle erfahrungen erp-software prozesse\">\n\t\t\t\t\t\t\t<div class=\"dpt-entry-wrapper\"><div class=\"dpt-featured-content\"><div class=\"dpt-permalink\"><a href=\"https:\/\/www.markus-schall.de\/pt\/2025\/09\/porque-e-que-o-software-erp-por-si-so-nao-e-suficiente-e-como-compreender-realmente-os-processos\/\" class=\"dpt-permalink\"><span class=\"screen-reader-text\">Porque \u00e9 que o software ERP por si s\u00f3 n\u00e3o \u00e9 suficiente - e como compreender realmente os processos<\/span><\/a><\/div><div class=\"dpt-thumbnail\"><div class=\"dpt-thumbnail-inner\"><img width=\"1280\" height=\"724\" class=\"attachment-full size-full\" alt=\"Software ERP: Compreender os processos operacionais antes da digitaliza\u00e7\u00e3o\" context=\"dpt\" data-dpt-src=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/erp-betriebsprozesse-verstehen.jpg\" data-dpt-sizes=\"(max-width: 1280px) 100vw, 1280px\" data-dpt-srcset=\"https:\/\/www.markus-schall.de\/wp-content\/uploads\/erp-betriebsprozesse-verstehen.jpg 1280w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/erp-betriebsprozesse-verstehen-300x170.jpg 300w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/erp-betriebsprozesse-verstehen-1024x579.jpg 1024w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/erp-betriebsprozesse-verstehen-768x434.jpg 768w, https:\/\/www.markus-schall.de\/wp-content\/uploads\/erp-betriebsprozesse-verstehen-18x10.jpg 18w\" \/><\/div><span class=\"dpt-thumbnail-aspect-ratio\" style=\"padding-top: 57%\"><\/span><\/div><\/div><div class=\"sub-entry\"><h3 class=\"dpt-title\"><a class=\"dpt-title-link\" href=\"https:\/\/www.markus-schall.de\/pt\/2025\/09\/porque-e-que-o-software-erp-por-si-so-nao-e-suficiente-e-como-compreender-realmente-os-processos\/\" rel=\"bookmark\">Porque \u00e9 que o software ERP por si s\u00f3 n\u00e3o \u00e9 suficiente - e como compreender realmente os processos<\/a><\/h3><\/div><\/div>\n\t\t\t\t\t\t<\/div><!-- .dpt-entry -->\n\t\t\t\t\t\t\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\n<hr \/>\n<h2>Perguntas frequentes sobre o RAG com Ollama + Qdrant<\/h2>\n<h3>1. o que \u00e9 uma base de dados RAG - e para que serve?<\/h3>\n<p>Uma base de dados RAG (Retrieval Augmented Generation) combina uma base de dados vetorial com um modelo lingu\u00edstico. Permite tornar o seu pr\u00f3prio conte\u00fado - por exemplo, documenta\u00e7\u00e3o ou s\u00edtios Web - semanticamente pesquis\u00e1vel, para que os modelos de IA possam aceder especificamente a sec\u00e7\u00f5es relevantes da sua pr\u00f3pria base de dados.<\/p>\n<h3>2 O que significa \"chunking\" neste contexto?<\/h3>\n<p>A fragmenta\u00e7\u00e3o significa dividir textos longos em sec\u00e7\u00f5es (peda\u00e7os) mais pequenas e coerentes - normalmente entre 200 e 500 caracteres. Isto permite que sec\u00e7\u00f5es de texto individuais sejam guardadas de forma eficiente na base de dados vetorial e recuperadas mais tarde quando surgem quest\u00f5es.<\/p>\n<h3>3. Porque \u00e9 que n\u00e3o se pode simplesmente guardar textos inteiros no Qdrant?<\/h3>\n<p>Porque os modelos de IA e as pesquisas vectoriais funcionam com comprimentos de texto limitados. Documentos grandes \"esconderiam\" conte\u00fados importantes ou torn\u00e1-los-iam imprecisos. A fragmenta\u00e7\u00e3o aumenta a precis\u00e3o porque s\u00e3o comparadas sec\u00e7\u00f5es espec\u00edficas em vez de textos completos.<\/p>\n<h3>4. Posso utilizar conte\u00fados de qualquer fonte?<\/h3>\n<p>Sim, desde que tenha os textos num formato edit\u00e1vel (por exemplo, texto simples, HTML, Markdown, PDF, entradas FileMaker, etc.), pode prepar\u00e1-los, dividi-los e integr\u00e1-los no Qdrant. Tamb\u00e9m s\u00e3o poss\u00edveis fontes mistas.<\/p>\n<h3>5. \u00e9 necess\u00e1rio saber programar para construir um sistema deste tipo?<\/h3>\n<p>Conhecimentos b\u00e1sicos de Terminal e Python s\u00e3o \u00fateis, mas n\u00e3o essenciais. Muitas etapas (por exemplo, a separa\u00e7\u00e3o em blocos no FileMaker, a exporta\u00e7\u00e3o JSON) podem ser implementadas visual e automaticamente. O gui\u00e3o de importa\u00e7\u00e3o Qdrant pode ser facilmente personalizado.<\/p>\n<h3>6. Posso tamb\u00e9m gerir v\u00e1rios documentos ou categorias?<\/h3>\n<p>Sim, cada fragmento pode conter metadados - por exemplo, t\u00edtulo, fonte, l\u00edngua ou categoria. Estes podem ser tidos em conta durante a pesquisa para filtrar os resultados de forma mais espec\u00edfica.<\/p>\n<h3>7 Quais s\u00e3o os modelos adequados para a gera\u00e7\u00e3o de incorpora\u00e7\u00e3o?<\/h3>\n<p>Pode utilizar um modelo local atrav\u00e9s do Ollama (por exemplo, mistral, llama2, gemma) ou um modelo de incorpora\u00e7\u00e3o separado, como o all-MiniLM de sentence-transformers. \u00c9 importante que o modelo gere resultados de incorpora\u00e7\u00e3o como vectores.<\/p>\n<h3>8. Como \u00e9 que inicio o Qdrant no Mac?<\/h3>\n<p>A forma mais f\u00e1cil \u00e9 atrav\u00e9s do comando Docker:<\/p>\n<pre class=\"notranslate\" data-no-translation=\"\">docker run -p 6333:6333 -v qdrant_storage:\/qdrant\/storage qdrant\/qdrant<\/pre>\n<p>O Qdrant \u00e9 ent\u00e3o executado em http:\/\/localhost:6333<\/p>\n<h3>9. Qual \u00e9 o tamanho dos meus volumes de dados?<\/h3>\n<p>O Qdrant tem um excelente desempenho e pode gerir facilmente dezenas ou centenas de milhares de blocos. A principal limita\u00e7\u00e3o \u00e9 a RAM e o espa\u00e7o de armazenamento, n\u00e3o o n\u00famero.<\/p>\n<h3>10. Isto tamb\u00e9m funciona com o FileMaker?<\/h3>\n<p>Sim, \u00e9 poss\u00edvel fazer toda a exporta\u00e7\u00e3o de chunking e JSON diretamente no FileMaker. Os peda\u00e7os s\u00e3o exportados como ficheiros JSON individuais, que s\u00e3o depois importados para o Qdrant atrav\u00e9s de um script Python - completamente independente do sistema original.<\/p>\n<h3>11. Tamb\u00e9m posso executar isto noutro servidor em vez de no Mac?<\/h3>\n<p>Sem d\u00favida. A configura\u00e7\u00e3o tamb\u00e9m funciona em servidores Linux, Raspberry Pi ou na nuvem (se desejado). O Docker torna-o independente da plataforma. Para uso produtivo, geralmente \u00e9 recomendado um servidor com mais RAM e suporte a GPU.<\/p>\n<h3>12. Como posso combinar a pesquisa de vectores com o Ollama?<\/h3>\n<p>Em primeiro lugar, cria-se um vetor para uma pergunta do utilizador atrav\u00e9s do Ollama (Embedding API), utilizando-o para procurar os fragmentos mais relevantes no Qdrant e fornecendo-os ao modelo lingu\u00edstico como contexto. O Ollama processa ent\u00e3o a pergunta + informa\u00e7\u00f5es relevantes para o contexto e gera uma resposta bem fundamentada.<\/p>\n<p>Imagem (c) geralt @ pixabay<\/p>","protected":false},"excerpt":{"rendered":"<p>Num mundo de informa\u00e7\u00e3o cada vez mais confuso, \u00e9 cada vez mais importante tornar as suas pr\u00f3prias bases de dados pesquis\u00e1veis de forma direcionada - n\u00e3o atrav\u00e9s de pesquisas cl\u00e1ssicas de texto integral, mas atrav\u00e9s de respostas semanticamente relevantes. \u00c9 exatamente aqui que entra em jogo o princ\u00edpio da base de dados RAG - uma solu\u00e7\u00e3o de pesquisa apoiada por IA que consiste em dois componentes centrais:<\/p>","protected":false},"author":1,"featured_media":2768,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":742,"footnotes":""},"categories":[431,3],"tags":[440,452,471,435,433,437,432,450,451],"class_list":["post-2764","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ki-systeme","category-filemaker","tag-datenbanken","tag-docker","tag-kuenstliche-intelligenz","tag-llama","tag-llm","tag-mistral","tag-ollama","tag-qdrant","tag-vektordatenbank"],"_links":{"self":[{"href":"https:\/\/www.markus-schall.de\/pt\/wp-json\/wp\/v2\/posts\/2764","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.markus-schall.de\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.markus-schall.de\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.markus-schall.de\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.markus-schall.de\/pt\/wp-json\/wp\/v2\/comments?post=2764"}],"version-history":[{"count":14,"href":"https:\/\/www.markus-schall.de\/pt\/wp-json\/wp\/v2\/posts\/2764\/revisions"}],"predecessor-version":[{"id":3401,"href":"https:\/\/www.markus-schall.de\/pt\/wp-json\/wp\/v2\/posts\/2764\/revisions\/3401"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.markus-schall.de\/pt\/wp-json\/wp\/v2\/media\/2768"}],"wp:attachment":[{"href":"https:\/\/www.markus-schall.de\/pt\/wp-json\/wp\/v2\/media?parent=2764"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.markus-schall.de\/pt\/wp-json\/wp\/v2\/categories?post=2764"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.markus-schall.de\/pt\/wp-json\/wp\/v2\/tags?post=2764"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}