Das UFO-Projekt ist in eine klar definierte Verzeichnisstruktur unterteilt, um Entwicklung, Bereitstellung und Dokumentation zu erleichtern. Nachfolgend finden Sie eine Übersicht über jedes Verzeichnis und jede Datei sowie deren Zweck
📦project
┣ 📂documents # Folder to store project documentation
┣ 📂learner # Folder to build the vector database for help documents
┣ 📂model_worker # Folder to store tools for deploying your own model
┣ 📂record_processor # Folder to parse human demonstrations from Windows Step Recorder and build the vector database
┣ 📂dataflow # Folder for the code of data collection pipeline for Large Action Model (LAM)
┣ 📂vetordb # Folder to store all data in the vector database for RAG (Retrieval-Augmented Generation)
┣ 📂logs # Folder to store logs, generated after the program starts
┗ 📂ufo # Directory containing main project code
┣ 📂module # Directory for the basic module of UFO, e.g., session and round
┣ 📂agents # Code implementation of agents in UFO
┣ 📂automator # Implementation of the skill set of agents to automate applications
┣ 📂experience # Parse and save the agent's self-experience
┣ 📂llm # Folder to store the LLM (Large Language Model) implementation
┣ 📂prompter # Prompt constructor for the agent
┣ 📂prompts # Prompt templates and files to construct the full prompt
┣ 📂rag # Implementation of RAG from different sources to enhance agents' abilities
┣ 📂trajectory # Implementation of loading and parsing trajectories of task completion
┣ 📂utils # Utility functions
┣ 📂config # Configuration files
┣ 📜config.yaml # User configuration file for LLM and other settings
┣ 📜config_dev.yaml # Configuration file for developers
┗ ...
┗ 📄ufo.py # Main entry point for the UFO client
Verzeichnis- und Dateibeschreibungen
documents
- Zweck: Speichert die gesamte Projektdokumentation.
- Details: Dies kann Design-Dokumente, Benutzerhandbücher, API-Dokumentation und jede andere relevante Projektdokumentation umfassen.
learner
- Zweck: Dient zum Aufbau der Vektordatenbank für Hilfedokumente.
- Details: Dieses Verzeichnis enthält Skripte und Tools zur Verarbeitung von Hilfedokumenten und zur Erstellung einer durchsuchbaren Vektordatenbank, wodurch die Fähigkeit der Agenten zur Aufgabenerfüllung verbessert wird.
model_worker
- Zweck: Enthält Tools und Skripte, die für die Bereitstellung benutzerdefinierter Modelle erforderlich sind.
- Details: Dies umfasst Konfigurationen für die Modellbereitstellung und Verwaltungswerkzeuge zur Integration benutzerdefinierter Modelle in das Projekt.
dataflow
- Zweck: Enthält den Code für die Datenerfassungs-Pipeline für das Large Action Model (LAM).
- Details: Dieses Verzeichnis enthält Skripte und Tools zur Sammlung und Verarbeitung von Daten zum Trainieren des Large Action Model, um die Leistung und Fähigkeiten der Agenten zu verbessern.
record_processor
- Zweck: Parst menschliche Demonstrationen, die mit dem Windows Step Recorder aufgezeichnet wurden, und erstellt die Vektordatenbank.
- Details: Dieses Verzeichnis enthält Parser, Datenverarbeitungsskripte und Tools zur Konvertierung menschlicher Demonstrationen in ein für die Abfrage durch Agenten geeignetes Format.
vetordb
- Zweck: Speichert alle Daten innerhalb der Vektordatenbank für Retrieval-Augmented Generation (RAG).
- Details: Dieses Verzeichnis ist unerlässlich für die Pflege der Daten, die die Fähigkeit der Agenten verbessern, relevante Informationen abzurufen und genauere Antworten zu generieren.
logs
- Zweck: Speichert von der Anwendung generierte Protokolldateien.
- Details: Dieses Verzeichnis hilft bei der Überwachung, Fehlersuche und Analyse der Anwendungsleistung und des Anwendungsverhaltens. Protokolle werden dynamisch generiert, während die Anwendung ausgeführt wird.
ufo
- Zweck: Das Kernverzeichnis, das den Hauptprojektcode enthält.
-
Details: Dieses Verzeichnis ist weiter in mehrere Unterverzeichnisse unterteilt, die jeweils einem bestimmten Zweck im Projekt dienen.
module
- Zweck: Enthält die Basismodule des UFO-Projekts, wie Sitzungsverwaltung und Runden.
- Details: Dies umfasst grundlegende Klassen und Funktionen, die im gesamten Projekt verwendet werden.
agents
- Zweck: Enthält die Code-Implementierungen verschiedener Agenten im UFO-Projekt.
- Details: Agenten sind Komponenten, die spezifische Aufgaben innerhalb des Systems ausführen, und dieses Verzeichnis enthält ihre Logik, Komponenten und ihr Verhalten.
automator
- Zweck: Implementiert die Fähigkeiten von Agenten zur Automatisierung von Anwendungen.
- Details: Dies umfasst Skripte und Tools, die es Agenten ermöglichen, mit verschiedenen Anwendungen zu interagieren und Aufgaben zu automatisieren, wie z. B. Maus- und Tastaturaktionen sowie API-Aufrufe.
experience
- Zweck: Parst und speichert die Selbst-Erfahrungen des Agenten.
- Details: Dieses Verzeichnis enthält Mechanismen für Agenten, aus ihren Aktionen und Ergebnissen zu lernen und ihre Leistung im Laufe der Zeit zu verbessern.
llm
- Zweck: Speichert die Implementierung des Large Language Model (LLM).
- Details: Dies umfasst die Implementierung von APIs für verschiedene Sprachmodelle wie GPT, Genimi, QWEN usw., die von den Agenten verwendet werden.
prompter
- Zweck: Konstruiert Prompts für die Agenten.
- Details: Dieses Verzeichnis enthält die Logik zur Prompt-Konstruktion und Tools, die Agenten helfen, sinnvolle Prompts für Benutzerinteraktionen zu generieren.
prompts
- Zweck: Enthält Prompt-Vorlagen und Dateien, die zum Konstruieren des vollständigen Prompts verwendet werden.
- Details: Dies umfasst vordefinierte Prompt-Strukturen und Inhalte, die verwendet werden, um sinnvolle Interaktionen mit den Agenten zu erstellen.
rag
- Zweck: Implementiert Retrieval-Augmented Generation (RAG) aus verschiedenen Quellen, um die Fähigkeiten der Agenten zu verbessern.
- etails: Dieses Verzeichnis enthält Skripte und Tools zur Integration verschiedener Datenquellen in das RAG-Framework, wodurch die Genauigkeit und Relevanz der Agentenausgaben verbessert wird.
trajectory
- Zweck: Implementiert das Laden und Parsen von Trajektorien zur Aufgabenerfüllung.
- Details: Dieses Verzeichnis enthält Tools und Skripte zum Laden und Parsen von Trajektorien zur Aufgabenerfüllung, wodurch Agenten aus vergangenen Erfahrungen lernen können oder zu Bewertungszwecken.
utils
- Zweck: Enthält Hilfsfunktionen.
- Details: Dieses Verzeichnis enthält Hilfsfunktionen, allgemeine Utilities und andere wiederverwendbare Code-Snippets, die die Projektoperationen unterstützen.
config
- Zweck: Speichert Konfigurationsdateien.
- Details: Dieses Verzeichnis enthält verschiedene Konfigurationsdateien für verschiedene Umgebungen und Zwecke.
- config.yaml: Benutzerkonfigurationsdatei für LLM und andere Einstellungen. Sie müssen
config.yaml.templateinconfig.yamlumbenennen und die Konfigurationseinstellungen nach Bedarf bearbeiten. - config_dev.yaml: Spezifische Konfigurationsdatei für Entwickler mit Einstellungen, die für Entwicklungszwecke zugeschnitten sind.
ufo.py
- Zweck: Haupteinstiegspunkt für den UFO-Client.
- Details: Dieses Skript initialisiert und startet die UFO-Anwendung.