Lernen aus Hilfedokumenten

Benutzer oder Anwendungen können dem AppAgent Hilfedokumente zur Verfügung stellen, um dessen Fähigkeiten zu erweitern. Der AppAgent kann Wissen aus diesen Dokumenten abrufen, um sein Verständnis der Aufgabe zu verbessern, qualitativ hochwertige Pläne zu generieren und effizienter mit der Anwendung zu interagieren. Informationen zur Bereitstellung von Hilfedokumenten für den AppAgent finden Sie im Abschnitt Bereitstellung von Hilfedokumenten.

Mechanismus

Die Hilfedokumente werden im Format von Aufgaben-Lösungs-Paaren bereitgestellt. Nach Erhalt einer Anfrage ruft der AppAgent die relevanten Hilfedokumente ab, indem er die Anfrage mit den Aufgabenbeschreibungen in den Hilfedokumenten abgleicht, und generiert einen Plan basierend auf den abgerufenen Lösungen.

Hinweis

Da die abgerufenen Hilfedokumente möglicherweise nicht relevant für die Anfrage sind, wird der AppAgent sie nur als Referenz zur Erstellung des Plans verwenden.

Aktivieren Sie das Lernen aus Hilfedokumenten

Befolgen Sie die nachstehenden Schritte, um das Lernen aus Hilfedokumenten zu aktivieren

Schritt 1: Bereitstellung von Hilfedokumenten

Bitte befolgen Sie die Schritte im Dokument Bereitstellung von Hilfedokumenten, um dem AppAgent Hilfedokumente zur Verfügung zu stellen.

Schritt 2: Konfigurieren Sie den AppAgent

Konfigurieren Sie die folgenden Parameter in der Datei config.yaml, um das Lernen aus Hilfedokumenten zu aktivieren

Konfigurationsoption Beschreibung Typ Standardwert
RAG_OFFLINE_DOCS Ob die Offline-RAG verwendet werden soll Boolean False
RAG_OFFLINE_DOCS_RETRIEVED_TOPK Die Topk für die offline abgerufenen Dokumente Integer 1

Referenz

Basen: Retriever

Klasse zur Erstellung von Offline-Retrievern.

Erstellt einen neuen OfflineDocRetriever. :appname: Der Name der Anwendung.

Quellcode in rag/retriever.py
83
84
85
86
87
88
89
90
def __init__(self, app_name: str) -> None:
    """
    Create a new OfflineDocRetriever.
    :appname: The name of the application.
    """
    self.app_name = app_name
    indexer_path = self.get_offline_indexer_path()
    self.indexer = self.get_indexer(indexer_path)

get_indexer(path)

Lädt den Retriever.

Parameter
  • path (str) –

    Der Pfad zum Laden des Retrievers.

Rückgabe
  • Der geladene Retriever.

Quellcode in rag/retriever.py
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
def get_indexer(self, path: str):
    """
    Load the retriever.
    :param path: The path to load the retriever from.
    :return: The loaded retriever.
    """

    if path:
        print_with_color(
            "Loading offline indexer from {path}...".format(path=path), "cyan"
        )
    else:
        return None

    try:
        db = FAISS.load_local(
            path, get_hugginface_embedding(), allow_dangerous_deserialization=True
        )
        return db
    except Exception as e:
        print_with_color(
            "Warning: Failed to load experience indexer from {path}, error: {error}.".format(
                path=path, error=e
            ),
            "yellow",
        )
        return None

get_offline_indexer_path()

Ruft den Pfad zum Offline-Indexer ab.

Rückgabe
  • Der Pfad zum Offline-Indexer.

Quellcode in rag/retriever.py
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
def get_offline_indexer_path(self):
    """
    Get the path to the offline indexer.
    :return: The path to the offline indexer.
    """
    offline_records = get_offline_learner_indexer_config()
    for key in offline_records:
        if key.lower() in self.app_name.lower():
            return offline_records[key]

    return None