Die Suche nach Informationen ist einer der häufigsten Anwendungsbereiche für künstliche Intelligenz generativen Intelligenz-Modellen (KI) unterstützt. Oberfläche für die dialogorientierte Suche erstellen mithilfe von KI spezifische Fragen stellen und erhalten direkte Antworten geben.
In dieser Anleitung erfahren Sie, wie Sie eine KI-gestützte, konversationelle Suche erstellen Schnittstelle für Ihre Inhalte. Sie basiert auf Docs-Agent, ein Open-Source-Projekt, das mithilfe der Google Gemini API eine dialogorientierte Suchoberfläche ohne Training eines neuen KI-Modells oder Modellabstimmung mit Gemini-Modellen. Das bedeutet, dass Sie diese Suchfunktion schnell für kleine und große Inhaltsmengen.
Videoübersicht über das Projekt und wie Sie es erweitern können, einschließlich Erkenntnissen erfahren Sie von den Entwicklern: KI-Contentsuche | Mit Google AI entwickeln. Andernfalls können Sie mit der Erweiterung des Projekts beginnen, indem Sie der Anleitung folgen. weiter unten.
Übersicht
Das Docs-Agent-Projekt bietet eine Oberfläche für die dialogorientierte Suche für eine bestimmte Inhalte, die auf der Google Gemini API und generativen Modellen basieren. Nutzer können Eine detaillierte Frage in einem dialogorientierten Stil stellen und eine detaillierte Antwort erhalten die auf einem bestimmten Content-Set basieren. Hinter den Kulissen nimmt der Docs-Agent die und sucht anhand einer Vektordatenbank der Inhalte. detaillierten Prompt für das generative Modell, einschließlich Snippets mit relevantem Text Das generative Modell generiert eine Antwort auf die Frage und der Docs-Agent formatiert die Antwort und präsentiert sie den Nutzenden.
Abbildung 1. Funktionsdiagramm der Docs Agent-Projekt-App.
Damit der Docs-Agent Fragen zu Ihren Inhalten beantworten kann, müssen Sie Erstellung einer Vektordatenbank dieser Inhalte. Sie unterteilen Ihre Inhalte in logische Textblöcke zu erstellen und für jeden einen Vektor zu generieren. Diese Vektoren sind numerische Darstellungen der Informationen in jedem Block und werden mit Eine KI-Funktion zur Texteinbettung aus den generativen Modellen von Google.
Wenn ein Nutzer eine Frage stellt, verwendet der Docs-Agent dieselbe Texteinbettung um eine numerische Darstellung der Frage zu erstellen, und verwendet diese , um die Vektordatenbank nach zugehörigen Inhalten zu durchsuchen. Es geht an die Spitze und fügt diese Informationen einem Prompt für das generative Modell hinzu. Die KI anhand der Frage und der zusätzlichen Kontextinformationen ein Antwort.
Projekt einrichten
In dieser Anleitung erfahren Sie, wie Sie das Docs Agent-Projekt für Entwicklung und Tests. Die allgemeinen Schritte umfassen die Installation einiger ein paar Umgebungsvariablen festlegen, das Projekt aus dem Code klonen und die Konfigurationsinstallation auszuführen. Das Codeprojekt verwendet Python Poetry (Python-Poesie) zum Verwalten von Paketen und der Python-Laufzeitumgebung.
Erforderliche Komponenten installieren
Das Docs Agent-Projekt nutzt Python 3 und Python Poetry, um Pakete und und führen Sie die Anwendung aus. Die folgende Installationsanleitung gilt für ein Linux-System. Hostcomputer.
So installieren Sie die erforderliche Software:
- Installieren Sie Python 3 und das
venv
-Paket für die virtuelle Umgebung für Python.
sudo apt update sudo apt install git pip python3-venv
- Installieren Sie Python Poetry, um Abhängigkeiten zu verwalten und das Paket für die
Projekt.
curl -sSL https://install.python-poetry.org | python3 -
Sie können Python Poetry verwenden, um weitere Python-Bibliotheken hinzuzufügen, wenn Sie die Projekt arbeiten.
Umgebungsvariablen festlegen
Legen Sie einige Umgebungsvariablen fest, die erforderlich sind, um den Code des Docs-Agents zuzulassen.
auszuführendes Projekt, einschließlich eines Google Gemini API-Schlüssels und Python
Gedichte Sie können diese Variablen in die Datei $HOME/.bashrc
einfügen.
unter Linux, um sie als Standardeinstellungen für Ihr Terminal festzulegen
Sitzungen.
So legen Sie die Umgebungsvariablen fest:
- Rufen Sie einen Google Gemini API-Schlüssel ab und kopieren Sie den Schlüsselstring.
- Legen Sie den API-Schlüssel als Umgebungsvariable fest. Verwenden Sie auf Linux-Hosts die Methode
folgenden Befehl.
export API_KEY=<YOUR_API_KEY_HERE>
- Ein bekanntes Problem auflösen
Problem
für Python Poesie durch Festlegen des Parameters
PYTHON_KEYRING_BACKEND
. Verwenden Sie auf Linux-Hosts den folgenden Befehl.
export PYTHON_KEYRING_BACKEND=keyring.backends.null.Keyring
Projekt klonen und konfigurieren
Laden Sie den Projektcode herunter und verwenden Sie zum Herunterladen den Befehl zur Poetry-Installation. die erforderlichen Abhängigkeiten und konfigurieren Sie das Projekt. Du brauchst git-Versionsverwaltungssoftware zum Abrufen des Projektquellcode. extern So laden Sie den Projektcode herunter und konfigurieren ihn:
- Klonen Sie das Git-Repository mit dem folgenden Befehl.
git clone https://github.com/google/generative-ai-docs
- Konfigurieren Sie optional Ihr lokales Git-Repository für den Sparse-Checkout.
Sie haben also nur die Dateien für das Docs Agent-Projekt.
cd generative-ai-docs/ git sparse-checkout init --cone git sparse-checkout set examples/gemini/python/docs-agent/
- Wechseln Sie zum Stammverzeichnis des
docs-agent
-Projekts.
cd examples/gemini/python/docs-agent/
- Führen Sie den Befehl „Poetry install“ aus, um Abhängigkeiten herunterzuladen und zu konfigurieren
Projekt:
poetry install
Inhalte vorbereiten
Das Docs-Agent-Projekt ist für die Arbeit mit Textinhalten konzipiert und umfasst Folgendes: Tools speziell für die Arbeit mit Websites, die Markdown als Quellformat verwenden. Wenn Sie mit Website-Inhalten arbeiten, sollten Sie das vorhandene Verzeichnisstruktur der bereitgestellten Website, um die Aufgabe der Inhaltsverarbeitung zu ermöglichen und Links zu diesen Inhalten zu erstellen.
Je nach Format und Details Ihrer Inhalte müssen Sie möglicherweise die Inhalte, um nicht öffentliche Informationen, interne Notizen oder andere Informationen zu entfernen die nicht suchbar sein sollen. Sie sollten grundlegende Formatierungen wie als Titel und Überschriften, die bei der Erstellung logischer Textaufteilungen oder -blöcke in der Schritt der Inhaltsverarbeitung.
So bereiten Sie Inhalte für die Verarbeitung vor:
- Erstellen Sie ein Verzeichnis für die Inhalte, nach denen der KI-Agent suchen soll.
mkdir docs-agent/content/
- Kopieren Sie Ihren Inhalt in das Verzeichnis
docs-agent/content/
. Wenn die Inhalt ist eine Website, die Verzeichnisstruktur von Websites beibehalten (oder replizieren) die bereitgestellte Website. - Die Inhalte nach Bedarf bereinigen oder bearbeiten, um nicht öffentliche Informationen zu entfernen, oder andere Informationen, die bei der Suche nicht berücksichtigt werden sollen.
Flutter-Dokumente zum Testen verwenden
Wenn Sie zum Testen des Docs-Agents eine Reihe von Inhalten benötigen, können Sie die Funktion Flutter Entwicklerdokumentation für Tests.
So rufen Sie die Flutter-Entwicklerdokumentation auf:
- Wechseln Sie in das Inhaltsverzeichnis für den Inhalt, den der KI-Agent ausführen soll.
suchen.
cd docs-agent/content/
- Klonen Sie die Flutter-Dokumente in das Verzeichnis
docs-agent/content/
.
git clone --recurse-submodules https://github.com/flutter/website.git
Inhalte verarbeiten
Damit der Such-Agent effektiv nach Inhalten suchen kann, die mit des Nutzers müssen Sie eine Datenbank mit Vektoren erstellen, Inhalte. Die Vektoren werden mit einer KI-generativen Modellfunktion namens Texteinbettung. Texteinbettungen sind numerische Darstellungen des Textes Inhalte. Sie nähern sich der semantischen Bedeutung des Textes an, da sie Zahlen. Durch numerische Darstellungen von Informationen kann das System Frage des Nutzers, ungefähre Bedeutung mit derselben Texteinbettung um verwandte Informationen als mathematische Berechnung zu finden. einen k-nächsten Nachbarn (k-NN)-Algorithmus verwendet wird.
Textinhalt aufteilen
Die Textmenge, die ein Texteinbettungsvektor effektiv darstellen kann, ist eingeschränkt. In diesem Projekt ist der in einem Vektor dargestellten Text auf 3.000 Zeichen beschränkt. Das bedeutet, dass Sie Ihre Inhalte in einzelne Abschnitte Zeichenbeschränkung In diesem Abschnitt wird beschrieben, wie Sie ein mit dem Docs Agent-Projekt zum Aufteilen von Markdown-Dateien in kleinere Textblöcke. Tipps zu mit anderen Inhaltsformaten arbeiten, siehe Andere Formate verarbeiten
So teilen Sie Inhalte im Markdown-Format auf:
- Konfigurieren Sie die Eingabeparameter für das Verarbeitungsskript, indem Sie die
docs-agent/config.yaml
-Datei. In diesem Beispiel ist eine Untergruppe der Flutter-Dokumentation:
input: - path: "content/website/src/ui" url_prefix: "https://docs.flutter.dev/ui"
- Speichern Sie die Änderungen an dieser Konfigurationsdatei.
- Rufen Sie das
docs-agent
-Projektverzeichnis auf:
cd docs-agent/
- Teilen Sie den Markdown-Quellinhalt mit dem Befehl
agent chunk
auf:
agent chunk
Das Skript verarbeitet den Eingabeinhalt und erstellt Ausgabetextdateien im
docs-agent/data
erstellen, wobei der Text nach Titeln, Überschriften und
zu verwandten Absätzen. Die Verarbeitung kann je nach Größe deines
Inhalte.
Vektoren für Texteinbettungen erstellen
Nachdem du deine Inhalte in mehrere aussagekräftige Blöcke in der richtigen Größe aufgeteilt hast, kann die Vektordatenbank mithilfe einer Texteinbettung mit Ihren Inhalten füllen. . Im Docs-Agent-Projekt wird Chroma verwendet. Vektordatenbank zum Speichern von Texteinbettungsvektoren. In dieser Anleitung wird beschrieben, wie Sie , um mithilfe des Skripts der Docs-Agents eine Vektordatenbank mit Ihrem Aufteilungsplan zu füllen Inhalte.
So generieren Sie Texteinbettungen und füllen die Vektordatenbank:
- Rufen Sie das
docs-agent
-Projektverzeichnis auf:
cd docs-agent/
- Füllen Sie die Vektordatenbank mithilfe der
agent populate
mit Ihrem Inhalt. Befehl:
agent populate
Dieses Script verwendet die Google Gemini API zum Generieren Texteinbettung Vektoren und speichert die Ausgabe dann in der Vektordatenbank. Die Verarbeitung kann bis zu je nach Größe der Inhalte etwas Zeit.
Andere Formate verarbeiten
Das Docs-Agent-Projekt wurde für die Arbeit mit Website-Inhalten in Markdown entwickelt Format. Die Projektautoren haben Konvertierungsskripts erstellt, andere Inhaltstypen in das Markdown-Format umwandeln, z. B. Google Docs, Portable Dokumentformat (PDF) und Gmail. Weitere Informationen zur Verwendung dieser Nutzer mit Conversion finden Sie in der docs-agent/apps_script des Code-Repositorys enthält.
Andere Inhaltsformate konvertieren
Sie können für das Projekt andere Inhaltsformate verwenden, diese weitere Methoden müssen von Ihnen oder anderen Mitgliedern der Community entwickelt werden. Code-Repository prüfen Probleme und Pull-Anfragen für Menschen, die ähnliche Lösungen entwickeln.
Der Schlüsselcode, den Sie zur Unterstützung anderer Inhaltsformate erstellen müssen, ist ein Splitter.
Skript wie das
files_to_plain_text.py
. Versuchen Sie, ein Skript oder Programm zu entwickeln, das eine ähnliche Ausgabe wie diese erzeugt.
. Denken Sie daran, dass die endgültige Textausgabe nur minimale Formatierung und
überflüssige Informationen. Wenn Sie Inhaltsformate wie HTML oder JSON verwenden,
Entfernen Sie alle nicht informativen Formatierungen (Tags,
Scripting, CSS) wie möglich, damit die Werte des Textes nicht verzerrt werden
Einbettungen, die Sie daraus generieren.
Sobald Sie ein Aufteilungsskript für das Inhaltsformat erstellt haben, sollten Sie
den
populate_vector_database.py
um Ihre Vektordatenbank mit Daten zu füllen. Weitere Informationen zur Verarbeitung
Dateien für die Verwendung mit dem Docs-Agent finden Sie im Docs-Agent
Readme-Datei zur Vorverarbeitung
App testen
Wenn Sie das Ausfüllen Ihrer Vektordatenbank abgeschlossen haben, ist das Projekt bereit. für Tests. Das Projekt stellt eine Paketfunktion bereit, mit der Sie die Projekt lokal durchführen.
So führen Sie die Projekt-Weboberfläche aus und testen sie:
- Rufen Sie das
docs-agent
-Projektverzeichnis auf:
cd docs-agent/
- Führen Sie das Startskript der Webanwendung aus:
agent chatbot
- Rufen Sie in Ihrem Webbrowser die URL-Webadresse auf, die in der
und die Anwendung testen.
* Running on http://your-hostname-here:5000
Implementierungsmöglichkeiten
Die Gemini API bietet Programmiertools, die Komponenten von Implementierung des Docs-Agents, insbesondere semantischer Abruf und zugeordnete Gemini-Modellvariante für Question Answering (AQA). Sie können die Semantic Retrieval -Funktion die separate Vektordatenbank ersetzen. Semantic Retrieval-Funktion kannst du Einbettungen für deine Inhalte generieren und diese Inhalte speichern. Die AQA: Gemini-Modell ist abgestimmt auf Beantworten von Fragen mit Quellmaterial in einem Prompt. Sie verwenden Semantik. Datenabruf zusammen mit dem AQA-Modell, Fragen beantworten über Ihre Inhalte in der Gemini API.
Der Docs-Agent bietet Konfigurationsoptionen für die Verwendung der semantischen Retrieval API-Funktion, das AQA-Gemini-Modell oder beides. Weitere Informationen finden Sie unter die Docs-Agent-Readme-Datei
Zusätzliche Ressourcen
Weitere Informationen über das Docs Agent-Projekt finden Sie in der Code-Repository gespeichert. Wenn Sie Hilfe bei der App-Entwicklung benötigen oder Collab-Partner finden Sie in der Google Developers-Community auf Discord Server.
Produktionsanwendungen
Wenn Sie den Docs Agent für eine große Zielgruppe bereitstellen möchten, beachten Sie, dass die Verwendung des unterliegt die Google Gemini API möglicherweise Ratenbegrenzung und anderen Nutzungsbeschränkungen. Wenn Sie erwägen, eine Produktionsanwendung mit der Gemini API wie Docs-Agent, schauen Sie sich Google Cloud Vertex AI um die Skalierbarkeit und Zuverlässigkeit Ihrer Anwendung zu erhöhen.