{"id":48529,"date":"2023-10-17T12:52:47","date_gmt":"2023-10-17T10:52:47","guid":{"rendered":"https:\/\/www.inovex.de\/?p=48529"},"modified":"2024-03-14T10:25:42","modified_gmt":"2024-03-14T09:25:42","slug":"haystack-schnelle-entwicklung-generativer-ai-applikationen","status":"publish","type":"post","link":"https:\/\/www.inovex.de\/de\/blog\/haystack-schnelle-entwicklung-generativer-ai-applikationen\/","title":{"rendered":"Haystack: Schnelle Entwicklung Generativer AI-Applikationen"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">Durch den steigenden Einsatz von \u201eGenerative AI\u201c oder intelligenten Chatbots sind Large Language Models (LLMs) zunehmend im Trend. <a href=\"https:\/\/www.deepset.ai\/\">DeepSet<\/a> setzt sich mit Haystack zum Ziel, LLMs schnell und unkompliziert in eigene Applikationen zu integrieren. Dabei k\u00f6nnen Natural Language Processing (NLP) Tasks wie Question-Answering (QA), Information Retrieval und Document Search abgebildet werden. Als Open Source (OS) Framework erleichtert Haystack die Entwicklung von NLP-Applikationen erheblich, indem es Komponenten f\u00fcr die effiziente Speicherung, Organisation und Abfrage von Informationen in gro\u00dfen textbasierten Datenmengen anbietet.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Dieser Blogpost bietet einen groben \u00dcberblick \u00fcber die Funktionalit\u00e4t von Haystack und veranschaulicht anhand eines Beispiels aus der Praxis, wie die Technologie eingesetzt werden kann. Dadurch wird klar, f\u00fcr welche Anwendungsf\u00e4lle sich Haystack eignet und welche M\u00f6glichkeiten diese Technologie bietet.\u00a0<\/span><\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\"><p class=\"ez-toc-title\" style=\"cursor:inherit\"><\/p>\n<\/div><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.inovex.de\/de\/blog\/haystack-schnelle-entwicklung-generativer-ai-applikationen\/#Haystack-auf-einen-Blick\" >Haystack auf einen Blick<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.inovex.de\/de\/blog\/haystack-schnelle-entwicklung-generativer-ai-applikationen\/#Nodes-Die-Kernkomponenten-von-Haystack\" >Nodes: Die Kernkomponenten von Haystack<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.inovex.de\/de\/blog\/haystack-schnelle-entwicklung-generativer-ai-applikationen\/#Pipelines-Die-Schalttafel-von-Haystack\" >Pipelines: Die Schalttafel von Haystack<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.inovex.de\/de\/blog\/haystack-schnelle-entwicklung-generativer-ai-applikationen\/#Agenten-in-Haystack-Intelligente-Entscheidungstraeger\" >Agenten in Haystack: Intelligente Entscheidungstr\u00e4ger<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.inovex.de\/de\/blog\/haystack-schnelle-entwicklung-generativer-ai-applikationen\/#Document-Store-Die-Speicherloesung-in-Haystack\" >Document Store: Die Speicherl\u00f6sung in Haystack<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.inovex.de\/de\/blog\/haystack-schnelle-entwicklung-generativer-ai-applikationen\/#Deployment-von-Haystack-Praktische-Aspekte-und-REST-API-Anwendung\" >Deployment von Haystack: Praktische Aspekte und REST API-Anwendung<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.inovex.de\/de\/blog\/haystack-schnelle-entwicklung-generativer-ai-applikationen\/#Haystack-in-der-Praxis\" >Haystack in der Praxis<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.inovex.de\/de\/blog\/haystack-schnelle-entwicklung-generativer-ai-applikationen\/#Haystack-im-Einsatz-Das-COSMIC-X-Forschungsprojekt\" >Haystack im Einsatz: Das COSMIC-X-Forschungsprojekt<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.inovex.de\/de\/blog\/haystack-schnelle-entwicklung-generativer-ai-applikationen\/#Haystacks-Rolle-im-Projekt-Ein-Blick-auf-die-Integration\" >Haystacks Rolle im Projekt: Ein Blick auf die Integration<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/www.inovex.de\/de\/blog\/haystack-schnelle-entwicklung-generativer-ai-applikationen\/#Praktische-Leitfaeden-und-Empfehlungen-fuer-eine-effiziente-Haystack-Nutzung\" >Praktische Leitf\u00e4den und Empfehlungen f\u00fcr eine effiziente Haystack-Nutzung<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/www.inovex.de\/de\/blog\/haystack-schnelle-entwicklung-generativer-ai-applikationen\/#Brauche-ich-dann-noch-Chatbot-Frameworks-wie-Rasa\" >Brauche ich dann noch Chatbot-Frameworks wie Rasa?<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/www.inovex.de\/de\/blog\/haystack-schnelle-entwicklung-generativer-ai-applikationen\/#Fazit-Haystack-%E2%80%93-Eine-Schluesselkomponente-fuer-effiziente-NLP-Anwendungen\" >Fazit: Haystack \u2013 Eine Schl\u00fcsselkomponente f\u00fcr effiziente NLP-Anwendungen<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/www.inovex.de\/de\/blog\/haystack-schnelle-entwicklung-generativer-ai-applikationen\/#Danksagung\" >Danksagung<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"Haystack-auf-einen-Blick\"><\/span><strong>Haystack auf einen Blick<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Haystack besteht aus verschiedenen Komponenten, welche in den folgenden Abschnitten kurz erkl\u00e4rt werden:<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Nodes-Die-Kernkomponenten-von-Haystack\"><\/span><b>Nodes: Die Kernkomponenten von Haystack<\/b><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Haystack&#8217;s Funktionalit\u00e4ten sind modular gestaltet und werden durch sogenannte Nodes bereitgestellt. Einzelne Nodes sind miteinander kombinierbar. Das Framework bietet eine Vielzahl an Funktionalit\u00e4ten, wie bspw. Data Handling, Semantic Search, Routing und <a href=\"https:\/\/docs.haystack.deepset.ai\/docs\/nodes_overview\">viele weitere<\/a>. Jeder Node kann \u00fcber eine entsprechende Konfiguration individualisiert werden. So ergibt sich eine Vielfalt an Optionen, unterschiedliche Daten(-typen) zu integrieren und LLMs einzubinden. Zus\u00e4tzlich zu den bereits existierenden Nodes k\u00f6nnen Custom Nodes mit selbst geschriebener Funktionalit\u00e4t implementiert werden. Eine wichtige Node ist der vielseitig einsetzbare Prompt Node, welcher die Einbindung von LLMs erm\u00f6glicht.\u00a0<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Pipelines-Die-Schalttafel-von-Haystack\"><\/span><b>Pipelines: Die Schalttafel von Haystack<\/b><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Pipelines beschreiben die Verbindung verschiedener Nodes miteinander. Der Output einer Node wird dabei als Input f\u00fcr die n\u00e4chste Node verwendet. Viele Nodes sind beliebig austauschbar, damit die Pipeline flexibel erstellt und erweitert werden kann. Eine Pipeline k\u00f6nnte wie folgt aussehen:\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Die Nodes enthalten die einzelnen Funktionalit\u00e4ten und werden miteinander zu einer Pipeline verkn\u00fcpft. Zus\u00e4tzlich gibt es die M\u00f6glichkeit, <\/span><i><span style=\"font-weight: 400;\">Decision Components <\/span><\/i><span style=\"font-weight: 400;\">zu nutzen, die lediglich die Ausf\u00fchrung eines bestimmten Zweigs ausl\u00f6sen. Der letzte Output der Pipeline dient als R\u00fcckgabewert, welcher in eine Datenbank geschrieben oder dem anfragenden User wiedergegeben wird. Ein konkretes Beispiel f\u00fcr eine Haystack Pipeline ist im Praxisteil des Blog Artikels zu finden.\u00a0<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-48532 aligncenter\" src=\"https:\/\/www.inovex.de\/wp-content\/uploads\/haystack_blogpost_3-163x300.png\" alt=\"\" width=\"285\" height=\"525\" srcset=\"https:\/\/www.inovex.de\/wp-content\/uploads\/haystack_blogpost_3-163x300.png 163w, https:\/\/www.inovex.de\/wp-content\/uploads\/haystack_blogpost_3-555x1024.png 555w, https:\/\/www.inovex.de\/wp-content\/uploads\/haystack_blogpost_3-768x1417.png 768w, https:\/\/www.inovex.de\/wp-content\/uploads\/haystack_blogpost_3-832x1536.png 832w, https:\/\/www.inovex.de\/wp-content\/uploads\/haystack_blogpost_3-400x738.png 400w, https:\/\/www.inovex.de\/wp-content\/uploads\/haystack_blogpost_3-360x664.png 360w, https:\/\/www.inovex.de\/wp-content\/uploads\/haystack_blogpost_3.png 984w\" sizes=\"auto, (max-width: 285px) 100vw, 285px\" \/><\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Agenten-in-Haystack-Intelligente-Entscheidungstraeger\"><\/span><b>Agenten in Haystack: Intelligente Entscheidungstr\u00e4ger<\/b><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Mit Haystack ist es nicht nur m\u00f6glich, eine einzelne Pipeline auszuf\u00fchren, sondern diese flexibel anzupassen. Durch sogenannte Agenten, welche implizit LLMs verwenden, k\u00f6nnen dynamische Verarbeitungsketten erzeugt werden. Wenn eine Anfrage an den Agenten gestellt wird, entscheidet dieser, welche Node oder Pipeline f\u00fcr die Bearbeitung dieser spezifischen Anfrage verwendet wird. Der Node oder die Pipeline, f\u00fcr die sich der Agent entscheidet, wird Expert genannt. Diese Entscheidung wird durch sogenannte <\/span><i><span style=\"font-weight: 400;\">Labels<\/span><\/i><span style=\"font-weight: 400;\"> getroffen, die den jeweiligen Experten (Node oder Pipeline) bei ihrer Erstellung zugewiesen werden.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Durch diese intelligente Label-basierte Steuerung bildet sich eine dynamische Pipeline, die sich bei jeder Anfrage neu zusammensetzt und so in der Lage ist, effizient und zielgerichtet auf verschiedene Anfragen zu reagieren. Neue Experten k\u00f6nnen erstellt und dem Agent hinzugef\u00fcgt werden, was eine kontinuierliche Erweiterung und Anpassung erm\u00f6glicht.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-51731 size-large aligncenter\" style=\"color: #404040;\" src=\"https:\/\/www.inovex.de\/wp-content\/uploads\/agent-slide-1024x550.png\" alt=\"\" width=\"640\" height=\"344\" srcset=\"https:\/\/www.inovex.de\/wp-content\/uploads\/agent-slide-1024x550.png 1024w, https:\/\/www.inovex.de\/wp-content\/uploads\/agent-slide-300x161.png 300w, https:\/\/www.inovex.de\/wp-content\/uploads\/agent-slide-768x412.png 768w, https:\/\/www.inovex.de\/wp-content\/uploads\/agent-slide-1536x825.png 1536w, https:\/\/www.inovex.de\/wp-content\/uploads\/agent-slide-1920x1031.png 1920w, https:\/\/www.inovex.de\/wp-content\/uploads\/agent-slide-400x215.png 400w, https:\/\/www.inovex.de\/wp-content\/uploads\/agent-slide-360x193.png 360w, https:\/\/www.inovex.de\/wp-content\/uploads\/agent-slide.png 2048w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">Jeder Agent in Haystack ben\u00f6tigt eine <\/span><i><span style=\"font-weight: 400;\">Prompt Node<\/span><\/i><span style=\"font-weight: 400;\">. Diese Prompt Node ist eine entscheidende Komponente, welche die Anfragen entgegennimmt und den Inhalt der Anfragen interpretiert und klassifiziert. Dementsprechend wird mit der Klassifizierung auf die Labels gemappt und entschieden, welcher spezifische Expert f\u00fcr die weitere Bearbeitung der Anfrage verwendet werden soll.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Document-Store-Die-Speicherloesung-in-Haystack\"><\/span><b>Document Store: Die Speicherl\u00f6sung in Haystack<\/b><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Typischerweise wird der Input von Sprachmodellen mit weiteren Inhalten angereichert, bspw. den Dokumenten, welche zusammengefasst werden sollen. Daher ist es erforderlich, diese Dokumente in einem Document Store vorzuhalten. Neben dem Inhalt der Dokumente enth\u00e4lt dieser Document Store Metadaten, die ebenfalls zur Laufzeit zur Verf\u00fcgung gestellt werden k\u00f6nnen. Es gibt bereits eine Vielzahl an m\u00f6glichen Document Stores, darunter Elasticsearch (<\/span>ES), In-Memory-Datenbanken, Object Storage (OS) und Vektor-Datenbanken wie Milvus und Pinecone.<\/p>\n<p><span style=\"font-weight: 400;\">Bevor die Daten in den Document Store gespeichert werden k\u00f6nnen, m\u00fcssen sie als <\/span><i><span style=\"font-weight: 400;\">Document Objects<\/span><\/i><span style=\"font-weight: 400;\"> formatiert werden. Anschlie\u00dfend k\u00f6nnen sie im Document Store hinterlegt werden und sind f\u00fcr sp\u00e4tere Abfragen verf\u00fcgbar. <\/span><span style=\"font-weight: 400;\">Liegen die Dokumente bereits in einer existierenden OpenSearch-Datenbank, erm\u00f6glicht Haystack die nahtlose Integration in den Workflow.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Deployment-von-Haystack-Praktische-Aspekte-und-REST-API-Anwendung\"><\/span><b>Deployment von Haystack: Praktische Aspekte und REST API-Anwendung<\/b><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Haystack bietet die M\u00f6glichkeit, in verschiedenen Anwendungsf\u00e4llen eingesetzt zu werden. Um diese Flexibilit\u00e4t zu gew\u00e4hrleisten, stellt Haystack zwei Ans\u00e4tze bereit. Zum einen die Integration in eine Python-Anwendung und zum anderen die Verwendung eines Docker-Images.<\/span><\/p>\n<p><b>Python-Anwendung:<\/b><span style=\"font-weight: 400;\"> Verwendung der Haystack-Library in einer Python-Anwendung und Bereitstellung der Schnittstellen durch ein Web Framework. Diese Schnittstellen aktivieren Pipelines, welche mit Python Code definiert wurden. Mit dieser Methode k\u00f6nnen individuelle Anwendungen entwickelt werden, die auf die spezifischen Anforderungen des Projekts zugeschnitten sind.<\/span><\/p>\n<p><b>Docker-Image:<\/b><span style=\"font-weight: 400;\"> Eines der vorhandenen Haystack Docker-Images kann verwendet werden. Es gibt vier Varianten dieser Docker-Images, abh\u00e4n<\/span><span style=\"font-weight: 400;\">gig davon, ob eine GPU genutzt werden soll oder ob Dependencies f\u00fcr eine potenzielle UI vorab installiert werden sollen. Bei dieser Option\u00a0<\/span><span style=\"font-weight: 400;\">wird dem Container eine YAML-File \u00fcbergeben, welche die gew\u00fcnschten Pipelines beinhaltet.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Beispiel-YAML:<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-48657 aligncenter\" style=\"color: #505d6d;\" src=\"https:\/\/www.inovex.de\/wp-content\/uploads\/haystack_blogpost_example_yaml-183x300.png\" alt=\"\" width=\"364\" height=\"597\" srcset=\"https:\/\/www.inovex.de\/wp-content\/uploads\/haystack_blogpost_example_yaml-183x300.png 183w, https:\/\/www.inovex.de\/wp-content\/uploads\/haystack_blogpost_example_yaml-623x1024.png 623w, https:\/\/www.inovex.de\/wp-content\/uploads\/haystack_blogpost_example_yaml-768x1261.png 768w, https:\/\/www.inovex.de\/wp-content\/uploads\/haystack_blogpost_example_yaml-400x657.png 400w, https:\/\/www.inovex.de\/wp-content\/uploads\/haystack_blogpost_example_yaml-360x591.png 360w, https:\/\/www.inovex.de\/wp-content\/uploads\/haystack_blogpost_example_yaml.png 856w\" sizes=\"auto, (max-width: 364px) 100vw, 364px\" \/><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Haystack-in-der-Praxis\"><\/span><strong>Haystack in der Praxis<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"Haystack-im-Einsatz-Das-COSMIC-X-Forschungsprojekt\"><\/span><strong>Haystack im Einsatz: Das COSMIC-X-Forschungsprojekt<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Das Haystack Framework wird im Forschungsprojekt <\/span><a href=\"https:\/\/www.cosmic-x.de\/\"><span style=\"font-weight: 400;\">COSMIC-X<\/span><\/a><span style=\"font-weight: 400;\"> eingesetzt, um einen Chatbot mit Dokumenten-Suchfunktion zu implementieren. <\/span><span style=\"font-weight: 400;\">In der Abbildung ist der Kontext dargestellt:<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-48655 aligncenter\" src=\"https:\/\/www.inovex.de\/wp-content\/uploads\/haystack_blogpost_use_case-300x148.png\" alt=\"\" width=\"671\" height=\"331\" srcset=\"https:\/\/www.inovex.de\/wp-content\/uploads\/haystack_blogpost_use_case-300x148.png 300w, https:\/\/www.inovex.de\/wp-content\/uploads\/haystack_blogpost_use_case-768x379.png 768w, https:\/\/www.inovex.de\/wp-content\/uploads\/haystack_blogpost_use_case-400x197.png 400w, https:\/\/www.inovex.de\/wp-content\/uploads\/haystack_blogpost_use_case-360x177.png 360w, https:\/\/www.inovex.de\/wp-content\/uploads\/haystack_blogpost_use_case.png 935w\" sizes=\"auto, (max-width: 671px) 100vw, 671px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">Ein Chatbot er\u00f6ffnet Servicetechnikern die M\u00f6glichkeit, auf s\u00e4mtliche interne Dokumentationen deutscher Sprache mittels semantischer Suche zuzugreifen.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Dieser kann innerhalb von Channels sowie in privaten Chats ve<\/span>rwendet werden und soll damit den Wissenstransfer und Austausch unter den Servicetechnikern f\u00f6rdern. Die Ergebnisse werden in einer benutzerfreundlichen Sprache pr\u00e4sentiert.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Haystacks-Rolle-im-Projekt-Ein-Blick-auf-die-Integration\"><\/span><b>Haystacks Rolle im Projekt: Ein Blick auf die Integration<\/b><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Um Anfragen und Problemstellungen von Servicetechnikern auf die passenden Eintr\u00e4ge in der gro\u00dfen Menge an Dokumenten semantisch abbilden zu k\u00f6nnen, wird eine geeignete Vektor-Repr\u00e4sentation (Embedding) ben\u00f6tigt. Zudem k\u00f6nnen die Dokumente in unterschiedlichen Formaten vorliegen, was eine Automatisierung des Vorgangs erschwert. Durch die Haystack Pipelines l\u00e4sst sich dieser Prozess in all seinen Teilschritten zentralisiert konfigurieren. Im Folgenden sind zwei solcher Pipelines mit unterschiedlichen Aufgaben dargestellt:<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-48530 aligncenter\" style=\"color: #404040;\" src=\"https:\/\/www.inovex.de\/wp-content\/uploads\/haystack_blogpost_1-300x162.png\" alt=\"\" width=\"746\" height=\"403\" srcset=\"https:\/\/www.inovex.de\/wp-content\/uploads\/haystack_blogpost_1-300x162.png 300w, https:\/\/www.inovex.de\/wp-content\/uploads\/haystack_blogpost_1-1024x554.png 1024w, https:\/\/www.inovex.de\/wp-content\/uploads\/haystack_blogpost_1-768x415.png 768w, https:\/\/www.inovex.de\/wp-content\/uploads\/haystack_blogpost_1-1536x831.png 1536w, https:\/\/www.inovex.de\/wp-content\/uploads\/haystack_blogpost_1-2048x1108.png 2048w, https:\/\/www.inovex.de\/wp-content\/uploads\/haystack_blogpost_1-1920x1038.png 1920w, https:\/\/www.inovex.de\/wp-content\/uploads\/haystack_blogpost_1-400x216.png 400w, https:\/\/www.inovex.de\/wp-content\/uploads\/haystack_blogpost_1-360x195.png 360w\" sizes=\"auto, (max-width: 746px) 100vw, 746px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">Die Indexing Pipeline wird <\/span>genutzt, um unstrukturierte Daten, wie beispielsweise PDFs, in einem strukturierten Format abzuspeichern. Die Search-Pipeline verarbeitet User-Anfragen, sucht nach passenden Dokumentenabschnitten und generiert eine Antwort.<\/p>\n<p><strong>Indexing Pipeline<\/strong><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><em>Filetype-Classifier:<\/em> Klassifiziert Datei-Typ f\u00fcr Weiterverarbeitung<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><em>PDF Converter:<\/em> Formatiert PDF zu Text\u00a0<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><em>Pre-Processor:<\/em> Textverarbeitung<\/span>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Entfernt Kopf- und Fu\u00dfzeilen, Leerzeichen, leere Zeilen<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Teilt Dokument in kleinere Abschnitte<\/span><\/li>\n<\/ul>\n<\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><em>Embedding Retriever:<\/em> Erstellt Embedding f\u00fcr jede Einheit<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><em>Document Store:<\/em> Speichert Dokumente und Embeddings<\/span><\/li>\n<\/ul>\n<p><strong>Search Pipeline<\/strong><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><em>Retriever:<\/em> Extrahiert zur Nutzeranfrage passende Dokumente<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><em>PromptNode:<\/em> Anbindung von Large Language Models (z.B. GPT3.5)<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Eine n\u00e4here Erl\u00e4uterung der einzelnen Komponenten befindet sich auf der <\/span><a href=\"https:\/\/docs.haystack.deepset.ai\/docs\"><span style=\"font-weight: 400;\">offiziellen Dokumentation<\/span><\/a><span style=\"font-weight: 400;\"> von Haystack.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Praktische-Leitfaeden-und-Empfehlungen-fuer-eine-effiziente-Haystack-Nutzung\"><\/span><strong>Praktische Leitf\u00e4den und Empfehlungen f\u00fcr eine effiziente Haystack-Nutzung<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Um Entwicklungszeit zu sparen und keine eigene API zu implementieren, eignet sich die bereits implementierte Haystack REST-API, welche durch YAML-Files konfiguriert wird.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Eine breite Palette von Vorlagen und Anleitungen steht zur Verf\u00fcgung, um die Entwicklungsprozesse zu beschleunigen. Dazu z\u00e4hlen unter anderem vorgefertigte Abl\u00e4ufe sowie ein Prompt Hub mit vordefinierten Prompts, die eine optimale Nutzung gro\u00dfer Sprachmodelle erm\u00f6glichen.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Die Haystack REST-API stellt bereits eine Vielzahl von Endpunkten bereit und kann durch vordefinierte Docker Container direkt in die eigene Architektur integriert werden.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Dennoch ist es ratsam, Pipelines zu Beginn in Python Code abzubilden, da der Gro\u00dfteil der Haystack-Dokumentation auf Python-Code-Beispielen basiert. Eine eingebaute Hilfsfunktion erm\u00f6glicht zudem den Export von Python-Pipelines in das YAML-Pipeline-Format.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Falls die vorgegebenen Haystack-Nodes nicht ausreichen, m\u00fcssen eigene Custom-Nodes implementiert werden, die bisher nicht mit der No-Code YAML-Variante kompatibel sind. In diesem Fall muss eine eigene API aufgesetzt werden. Hierf\u00fcr eignet sich beispielsweise FastAPI.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Die Integration von Object Stores, welche nicht direkt von Haystack unterst\u00fctzt werden, ist ebenfalls durch YAML-Pipelines erschwert. Auch in diesem Fall eignet sich ein Wechsel zur eigenen API-Implementierung.<\/span><\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Brauche-ich-dann-noch-Chatbot-Frameworks-wie-Rasa\"><\/span><strong>Brauche ich dann noch Chatbot-Frameworks wie Rasa?<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Dank der REST-API von Haystack kann die Kommunikation zwischen Chatbot-Frameworks und einem individuellen Haystack-Service nahtlos erfolgen. Die Umsetzung von Rasa ist in dieser <a href=\"https:\/\/docs.haystack.deepset.ai\/v1.25\/docs\/chatbots#setting-up-a-rasa-chatbot\">offiziellen Dokumentation<\/a> ausf\u00fchrlich erkl\u00e4rt.<\/span><span style=\"font-weight: 400;\">\u00a0Es ist erw\u00e4hnenswert, dass Haystack sowohl eigenst\u00e4ndig als Chatbot mit Hilfe seiner Komponenten fungiert, als auch in bestehende Chatbots integriert werden kann.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Haystack und Rasa sind beide Open-Source-Plattformen, die zur Entwicklung von Conversational AI-Systemen verwendet werden k\u00f6nnen. Allerdings unterscheiden sie sich in ihrer Funktionalit\u00e4t und im Schwerpunkt:<\/span><\/p>\n<p><strong>Haystack:<\/strong><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Konzentriert sich auf die Umsetzung von Frage-Antwort-Systemen und Information Retrieval.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Bietet leistungsstarke Funktionen f\u00fcr die Suche und Extraktion von Informationen aus gro\u00dfen Textdateien und Verarbeitung nat\u00fcrlicher Sprache (NLP).<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Ziel: Speicherung, Organisation und semantische Abfrage von Informationen aus textbasierten Datenquellen.<\/span><\/li>\n<\/ul>\n<p><strong>Rasa:<\/strong><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Conversational AI-Framework zur Entwicklung interaktiver Chatbots und Sprachassistenten.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">NLP-Verarbeitung &amp; Dialogmarketing.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Ziel: Entwicklung komplexer Dialoge und Zustandsmaschinen f\u00fcr unterschiedliche Kontexte, um nat\u00fcrliche Gespr\u00e4che zu erm\u00f6glichen.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Eine Kombination beider Frameworks ist ebenfalls denkbar. Mit den generisch definierbaren Pipelines erleichtert Haystack die Handhabung gro\u00dfer Wissensdatenbanken und erm\u00f6glicht ein semantisches QA.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Wenn komplexere, dom\u00e4nenspezifische Konversationsverl\u00e4ufe abgebildet werden sollen, l\u00e4sst sich Rasa einbinden. Durch Rasas Ansatz lassen sich Intentionen von Nutzern in verzweigten Dialogen identifizieren und auf konkrete Aktionen abbilden. Eine Aktion k\u00f6nnte beispielsweise eine Haystack Query-Pipeline sein.<\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Fazit-Haystack-%E2%80%93-Eine-Schluesselkomponente-fuer-effiziente-NLP-Anwendungen\"><\/span><strong>Fazit: Haystack \u2013 Eine Schl\u00fcsselkomponente f\u00fcr effiziente NLP-Anwendungen<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Insgesamt bietet Haystack eine vielseitige L\u00f6sung, die eine effiziente Strukturierung, Speicherung und Durchsuchung von textbasierten Informationen erm\u00f6glicht. Die individuelle Konfigurierbarkeit von Pipelines erm\u00f6glicht den Einsatz in vielen Anwendungsfeldern f\u00fcr unterschiedliche Projekte. Zus\u00e4tzlich kann Haystack in bestehende Chatbot-Frameworks integriert werden, in denen nur die ben\u00f6tigten Komponenten verwendet werden. Im Umfang des Blogpost wurde Version 1.19 von Haystack verwendet, derzeit (August 2023) befindet sich Version 2.0 in Entwicklung.\u00a0<\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Danksagung\"><\/span><strong>Danksagung<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Die Inhalte dieser Arbeit stammen aus dem Projekt \u201eKollaborative Smart Services f\u00fcr industrielle Wertsch\u00f6pfungsnetze in GAIA-X (COSMIC-X)\u201c. Dieses Forschungs- und Entwicklungsprojekt wird mit Mitteln des Bundesministeriums f\u00fcr Bildung und Forschung (BMBF) (F\u00f6rderkennzeichen 02J21D146) gef\u00f6rdert und vom Projekttr\u00e4ger Karlsruhe (PTKA) betreut. Die Verantwortung f\u00fcr den Inhalt dieser Ver\u00f6ffentlichung liegt bei den Autor:innen.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Durch den steigenden Einsatz von \u201eGenerative AI\u201c oder intelligenten Chatbots sind Large Language Models (LLMs) zunehmend im Trend. DeepSet setzt sich mit Haystack zum Ziel, LLMs schnell und unkompliziert in eigene Applikationen zu integrieren. Dabei k\u00f6nnen Natural Language Processing (NLP) Tasks wie Question-Answering (QA), Information Retrieval und Document Search abgebildet werden. Als Open Source (OS) [&hellip;]<\/p>\n","protected":false},"author":378,"featured_media":49379,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"ep_exclude_from_search":false,"footnotes":""},"tags":[375,578,141],"service":[76,425,75],"coauthors":[{"id":378,"display_name":"Jakob Kempter","user_nicename":"jkempter"},{"id":317,"display_name":"Thomas Jonas","user_nicename":"tjonas"}],"class_list":["post-48529","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-conversational-ai","tag-information-extraction","tag-nlp","service-artificial-intelligence","service-backend","service-nlp"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Haystack: Schnelle Entwicklung Generativer AI-Applikationen - inovex GmbH<\/title>\n<meta name=\"description\" content=\"Dieser Blog-Artikel bietet einen groben \u00dcberblick \u00fcber die Funktionalit\u00e4t von Haystack und veranschaulicht anhand eines Praxisbeispiels, wie die Technologie eingesetzt werden kann.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.inovex.de\/de\/blog\/haystack-schnelle-entwicklung-generativer-ai-applikationen\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Haystack: Schnelle Entwicklung Generativer AI-Applikationen - inovex GmbH\" \/>\n<meta property=\"og:description\" content=\"Dieser Blog-Artikel bietet einen groben \u00dcberblick \u00fcber die Funktionalit\u00e4t von Haystack und veranschaulicht anhand eines Praxisbeispiels, wie die Technologie eingesetzt werden kann.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.inovex.de\/de\/blog\/haystack-schnelle-entwicklung-generativer-ai-applikationen\/\" \/>\n<meta property=\"og:site_name\" content=\"inovex GmbH\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/inovexde\" \/>\n<meta property=\"article:published_time\" content=\"2023-10-17T10:52:47+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-14T09:25:42+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.inovex.de\/wp-content\/uploads\/Blogheader-Haystack.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1500\" \/>\n\t<meta property=\"og:image:height\" content=\"880\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Jakob Kempter, Thomas Jonas\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.inovex.de\/wp-content\/uploads\/Blogheader-Haystack-1024x601.png\" \/>\n<meta name=\"twitter:creator\" content=\"@inovexgmbh\" \/>\n<meta name=\"twitter:site\" content=\"@inovexgmbh\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jakob Kempter\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"8\u00a0Minuten\" \/>\n\t<meta name=\"twitter:label3\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data3\" content=\"Jakob Kempter, Thomas Jonas\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/haystack-schnelle-entwicklung-generativer-ai-applikationen\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/haystack-schnelle-entwicklung-generativer-ai-applikationen\\\/\"},\"author\":{\"name\":\"Jakob Kempter\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#\\\/schema\\\/person\\\/d175d7fa6d9b52e836ce2d7abb535940\"},\"headline\":\"Haystack: Schnelle Entwicklung Generativer AI-Applikationen\",\"datePublished\":\"2023-10-17T10:52:47+00:00\",\"dateModified\":\"2024-03-14T09:25:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/haystack-schnelle-entwicklung-generativer-ai-applikationen\\\/\"},\"wordCount\":1668,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/haystack-schnelle-entwicklung-generativer-ai-applikationen\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/Blogheader-Haystack.png\",\"keywords\":[\"Conversational Ai\",\"Information Extraction\",\"nlp\"],\"articleSection\":[\"General\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/haystack-schnelle-entwicklung-generativer-ai-applikationen\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/haystack-schnelle-entwicklung-generativer-ai-applikationen\\\/\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/haystack-schnelle-entwicklung-generativer-ai-applikationen\\\/\",\"name\":\"Haystack: Schnelle Entwicklung Generativer AI-Applikationen - inovex GmbH\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/haystack-schnelle-entwicklung-generativer-ai-applikationen\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/haystack-schnelle-entwicklung-generativer-ai-applikationen\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/Blogheader-Haystack.png\",\"datePublished\":\"2023-10-17T10:52:47+00:00\",\"dateModified\":\"2024-03-14T09:25:42+00:00\",\"description\":\"Dieser Blog-Artikel bietet einen groben \u00dcberblick \u00fcber die Funktionalit\u00e4t von Haystack und veranschaulicht anhand eines Praxisbeispiels, wie die Technologie eingesetzt werden kann.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/haystack-schnelle-entwicklung-generativer-ai-applikationen\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/haystack-schnelle-entwicklung-generativer-ai-applikationen\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/haystack-schnelle-entwicklung-generativer-ai-applikationen\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/Blogheader-Haystack.png\",\"contentUrl\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/Blogheader-Haystack.png\",\"width\":1500,\"height\":880,\"caption\":\"Blogheader-Haystack: Drei Menschen handwerkeln in einem kleinen Raum.\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/haystack-schnelle-entwicklung-generativer-ai-applikationen\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Haystack: Schnelle Entwicklung Generativer AI-Applikationen\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#website\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/\",\"name\":\"inovex GmbH\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#organization\",\"name\":\"inovex GmbH\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/inovex-logo-16-9-1.png\",\"contentUrl\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/inovex-logo-16-9-1.png\",\"width\":1921,\"height\":1081,\"caption\":\"inovex GmbH\"},\"image\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/inovexde\",\"https:\\\/\\\/x.com\\\/inovexgmbh\",\"https:\\\/\\\/www.instagram.com\\\/inovexlife\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/inovex\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UC7r66GT14hROB_RQsQBAQUQ\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#\\\/schema\\\/person\\\/d175d7fa6d9b52e836ce2d7abb535940\",\"name\":\"Jakob Kempter\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/cropped-jakob_kempter_profile-96x96.pngdfebce902e026c6d4d7fe8c94225bca7\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/cropped-jakob_kempter_profile-96x96.png\",\"contentUrl\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/cropped-jakob_kempter_profile-96x96.png\",\"caption\":\"Jakob Kempter\"},\"url\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/author\\\/jkempter\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Haystack: Schnelle Entwicklung Generativer AI-Applikationen - inovex GmbH","description":"Dieser Blog-Artikel bietet einen groben \u00dcberblick \u00fcber die Funktionalit\u00e4t von Haystack und veranschaulicht anhand eines Praxisbeispiels, wie die Technologie eingesetzt werden kann.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.inovex.de\/de\/blog\/haystack-schnelle-entwicklung-generativer-ai-applikationen\/","og_locale":"de_DE","og_type":"article","og_title":"Haystack: Schnelle Entwicklung Generativer AI-Applikationen - inovex GmbH","og_description":"Dieser Blog-Artikel bietet einen groben \u00dcberblick \u00fcber die Funktionalit\u00e4t von Haystack und veranschaulicht anhand eines Praxisbeispiels, wie die Technologie eingesetzt werden kann.","og_url":"https:\/\/www.inovex.de\/de\/blog\/haystack-schnelle-entwicklung-generativer-ai-applikationen\/","og_site_name":"inovex GmbH","article_publisher":"https:\/\/www.facebook.com\/inovexde","article_published_time":"2023-10-17T10:52:47+00:00","article_modified_time":"2024-03-14T09:25:42+00:00","og_image":[{"width":1500,"height":880,"url":"https:\/\/www.inovex.de\/wp-content\/uploads\/Blogheader-Haystack.png","type":"image\/png"}],"author":"Jakob Kempter, Thomas Jonas","twitter_card":"summary_large_image","twitter_image":"https:\/\/www.inovex.de\/wp-content\/uploads\/Blogheader-Haystack-1024x601.png","twitter_creator":"@inovexgmbh","twitter_site":"@inovexgmbh","twitter_misc":{"Verfasst von":"Jakob Kempter","Gesch\u00e4tzte Lesezeit":"8\u00a0Minuten","Written by":"Jakob Kempter, Thomas Jonas"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.inovex.de\/de\/blog\/haystack-schnelle-entwicklung-generativer-ai-applikationen\/#article","isPartOf":{"@id":"https:\/\/www.inovex.de\/de\/blog\/haystack-schnelle-entwicklung-generativer-ai-applikationen\/"},"author":{"name":"Jakob Kempter","@id":"https:\/\/www.inovex.de\/de\/#\/schema\/person\/d175d7fa6d9b52e836ce2d7abb535940"},"headline":"Haystack: Schnelle Entwicklung Generativer AI-Applikationen","datePublished":"2023-10-17T10:52:47+00:00","dateModified":"2024-03-14T09:25:42+00:00","mainEntityOfPage":{"@id":"https:\/\/www.inovex.de\/de\/blog\/haystack-schnelle-entwicklung-generativer-ai-applikationen\/"},"wordCount":1668,"commentCount":0,"publisher":{"@id":"https:\/\/www.inovex.de\/de\/#organization"},"image":{"@id":"https:\/\/www.inovex.de\/de\/blog\/haystack-schnelle-entwicklung-generativer-ai-applikationen\/#primaryimage"},"thumbnailUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/Blogheader-Haystack.png","keywords":["Conversational Ai","Information Extraction","nlp"],"articleSection":["General"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.inovex.de\/de\/blog\/haystack-schnelle-entwicklung-generativer-ai-applikationen\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.inovex.de\/de\/blog\/haystack-schnelle-entwicklung-generativer-ai-applikationen\/","url":"https:\/\/www.inovex.de\/de\/blog\/haystack-schnelle-entwicklung-generativer-ai-applikationen\/","name":"Haystack: Schnelle Entwicklung Generativer AI-Applikationen - inovex GmbH","isPartOf":{"@id":"https:\/\/www.inovex.de\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.inovex.de\/de\/blog\/haystack-schnelle-entwicklung-generativer-ai-applikationen\/#primaryimage"},"image":{"@id":"https:\/\/www.inovex.de\/de\/blog\/haystack-schnelle-entwicklung-generativer-ai-applikationen\/#primaryimage"},"thumbnailUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/Blogheader-Haystack.png","datePublished":"2023-10-17T10:52:47+00:00","dateModified":"2024-03-14T09:25:42+00:00","description":"Dieser Blog-Artikel bietet einen groben \u00dcberblick \u00fcber die Funktionalit\u00e4t von Haystack und veranschaulicht anhand eines Praxisbeispiels, wie die Technologie eingesetzt werden kann.","breadcrumb":{"@id":"https:\/\/www.inovex.de\/de\/blog\/haystack-schnelle-entwicklung-generativer-ai-applikationen\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.inovex.de\/de\/blog\/haystack-schnelle-entwicklung-generativer-ai-applikationen\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.inovex.de\/de\/blog\/haystack-schnelle-entwicklung-generativer-ai-applikationen\/#primaryimage","url":"https:\/\/www.inovex.de\/wp-content\/uploads\/Blogheader-Haystack.png","contentUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/Blogheader-Haystack.png","width":1500,"height":880,"caption":"Blogheader-Haystack: Drei Menschen handwerkeln in einem kleinen Raum."},{"@type":"BreadcrumbList","@id":"https:\/\/www.inovex.de\/de\/blog\/haystack-schnelle-entwicklung-generativer-ai-applikationen\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.inovex.de\/de\/"},{"@type":"ListItem","position":2,"name":"Haystack: Schnelle Entwicklung Generativer AI-Applikationen"}]},{"@type":"WebSite","@id":"https:\/\/www.inovex.de\/de\/#website","url":"https:\/\/www.inovex.de\/de\/","name":"inovex GmbH","description":"","publisher":{"@id":"https:\/\/www.inovex.de\/de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.inovex.de\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/www.inovex.de\/de\/#organization","name":"inovex GmbH","url":"https:\/\/www.inovex.de\/de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.inovex.de\/de\/#\/schema\/logo\/image\/","url":"https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/03\/inovex-logo-16-9-1.png","contentUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/03\/inovex-logo-16-9-1.png","width":1921,"height":1081,"caption":"inovex GmbH"},"image":{"@id":"https:\/\/www.inovex.de\/de\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/inovexde","https:\/\/x.com\/inovexgmbh","https:\/\/www.instagram.com\/inovexlife\/","https:\/\/www.linkedin.com\/company\/inovex","https:\/\/www.youtube.com\/channel\/UC7r66GT14hROB_RQsQBAQUQ"]},{"@type":"Person","@id":"https:\/\/www.inovex.de\/de\/#\/schema\/person\/d175d7fa6d9b52e836ce2d7abb535940","name":"Jakob Kempter","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.inovex.de\/wp-content\/uploads\/cropped-jakob_kempter_profile-96x96.pngdfebce902e026c6d4d7fe8c94225bca7","url":"https:\/\/www.inovex.de\/wp-content\/uploads\/cropped-jakob_kempter_profile-96x96.png","contentUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/cropped-jakob_kempter_profile-96x96.png","caption":"Jakob Kempter"},"url":"https:\/\/www.inovex.de\/de\/blog\/author\/jkempter\/"}]}},"_links":{"self":[{"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/posts\/48529","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/users\/378"}],"replies":[{"embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/comments?post=48529"}],"version-history":[{"count":5,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/posts\/48529\/revisions"}],"predecessor-version":[{"id":52342,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/posts\/48529\/revisions\/52342"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/media\/49379"}],"wp:attachment":[{"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/media?parent=48529"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/tags?post=48529"},{"taxonomy":"service","embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/service?post=48529"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/coauthors?post=48529"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}