AppAgent verstärken
UFO bietet vielseitige Mechanismen zur Verstärkung der Fähigkeiten des AppAgent durch RAG (Retrieval-Augmented Generation) und andere Techniken. Diese verbessern das Verständnis des AppAgent für die Aufgabe, erhöhen die Qualität der generierten Pläne und steigern die Effizienz der Interaktionen des AppAgent mit der Anwendung.
Wir unterstützen derzeit folgende Verstärkungsmethoden
| Verstärkungsmethode | Beschreibung |
|---|---|
| Lernen aus Hilfedokumenten | Verstärken Sie den AppAgent, indem Sie Wissen aus Hilfedokumenten abrufen. |
| Lernen aus Bing-Suche | Verstärken Sie den AppAgent, indem Sie Informationen auf Bing suchen, um aktuelles Wissen zu erhalten. |
| Aus eigener Erfahrung lernen | Verstärken Sie den AppAgent, indem er aus seinen eigenen erfolgreichen Erfahrungen lernt. |
| Aus Benutzervorgaben lernen | Verstärken Sie den AppAgent, indem er aus von Benutzern demonstrierten Aktionsabläufen lernt. |
Wissensvermittlung
UFO stellt dem AppAgent das Wissen über die Methode context_provision zur Verfügung, die in der Klasse AppAgent definiert ist.
def context_provision(self, request: str = "") -> None:
"""
Provision the context for the app agent.
:param request: The Bing search query.
"""
# Load the offline document indexer for the app agent if available.
if configs["RAG_OFFLINE_DOCS"]:
utils.print_with_color(
"Loading offline help document indexer for {app}...".format(
app=self._process_name
),
"magenta",
)
self.build_offline_docs_retriever()
# Load the online search indexer for the app agent if available.
if configs["RAG_ONLINE_SEARCH"] and request:
utils.print_with_color("Creating a Bing search indexer...", "magenta")
self.build_online_search_retriever(
request, configs["RAG_ONLINE_SEARCH_TOPK"]
)
# Load the experience indexer for the app agent if available.
if configs["RAG_EXPERIENCE"]:
utils.print_with_color("Creating an experience indexer...", "magenta")
experience_path = configs["EXPERIENCE_SAVED_PATH"]
db_path = os.path.join(experience_path, "experience_db")
self.build_experience_retriever(db_path)
# Load the demonstration indexer for the app agent if available.
if configs["RAG_DEMONSTRATION"]:
utils.print_with_color("Creating an demonstration indexer...", "magenta")
demonstration_path = configs["DEMONSTRATION_SAVED_PATH"]
db_path = os.path.join(demonstration_path, "demonstration_db")
self.build_human_demonstration_retriever(db_path)
Die Methode context_provision lädt den Offline-Dokumenten-Indexer, den Online-Such-Indexer, den Erlebnis-Indexer und den Demonstrations-Indexer für den AppAgent basierend auf den Konfigurationseinstellungen in der Datei config_dev.yaml.
Referenz
UFO verwendet die Klasse Retriever, die sich in der Datei ufo/rag/retriever.py befindet, um Wissen aus verschiedenen Quellen abzurufen. Die Klasse Retriever bietet die folgenden Methoden zum Abrufen von Wissen an.
Basen: ABC
Klasse zum Abrufen von Dokumenten.
Erstellen Sie einen neuen Retriever.
Quellcode in rag/retriever.py
42 43 44 45 46 47 48 49 | |
get_indexer() abstractmethod
Holen Sie sich den Indexer.
| Rückgabe |
|
|---|
Quellcode in rag/retriever.py
51 52 53 54 55 56 57 | |
retrieve(query, top_k, filter=None)
Rufen Sie das Dokument anhand der gegebenen Abfrage ab. :filter: Der Filter, der auf die abgerufenen Dokumente angewendet werden soll.
| Parameter |
|
|---|
| Rückgabe |
|
|---|
Quellcode in rag/retriever.py
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | |