UFO 项目采用明确定义的目录结构进行组织,以方便开发、部署和文档编写。以下是每个目录和文件的概述及其用途

📦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

目录和文件说明

documents

  • 用途: 存储所有项目文档。
  • 详情: 这可能包括设计文档、用户手册、API 文档以及任何其他相关的项目文档。

learner

  • 用途: 用于为帮助文档构建向量数据库。
  • 详情: 此目录包含用于处理帮助文档和创建可搜索向量数据库的脚本和工具,从而增强代理完成任务的能力。

model_worker

  • 用途: 包含部署自定义模型所需的工具和脚本。
  • 详情: 这包括模型部署配置以及用于将自定义模型集成到项目中的管理工具。

dataflow

  • 用途: 包含用于大型动作模型 (LAM) 的数据收集管道的代码。
  • 详情: 此目录包含用于收集和处理数据以训练大型动作模型的脚本和工具,从而提高代理的性能和能力。

record_processor

  • 用途: 解析使用 Windows 步骤记录器记录的人工演示并构建向量数据库。
  • 详情: 此目录包含解析器、数据处理脚本和工具,用于将人工演示转换为适合代理检索的格式。

vetordb

  • 用途: 存储向量数据库中用于检索增强生成 (RAG) 的所有数据。
  • 详情: 此目录对于维护数据至关重要,这些数据增强了代理检索相关信息和生成更准确响应的能力。

logs

  • 用途: 存储应用程序生成的日志文件。
  • 详情: 此目录有助于监控、调试和分析应用程序的性能和行为。日志在应用程序运行时动态生成。

ufo

  • 用途: 包含主要项目代码的核心目录。
  • 详情: 此目录进一步细分为多个子目录,每个子目录在项目中都有特定的用途。

    module

    • 用途: 包含 UFO 项目的基本模块,例如会话管理和回合。
    • 详情: 这包括在整个项目中使用的基本类和函数。

    agents

    • 用途: 存放 UFO 项目中各种代理的代码实现。
    • 详情: 代理是系统中执行特定任务的组件,此目录包含它们的逻辑、组件和行为。

    automator

    • 用途: 实现代理的技能集以自动化应用程序。
    • 详情: 这包括使代理能够与各种应用程序交互并自动执行任务(例如鼠标和键盘操作以及 API 调用)的脚本和工具。

    experience

    • 用途: 解析并保存代理的自我经验。
    • 详情: 此目录包含代理从其行动和结果中学习的机制,从而随着时间的推移提高其性能。

    llm

    • 用途: 存储大型语言模型 (LLM) 的实现。
    • 详情: 这包括不同语言模型(如 GPT、Genimi、QWEN 等)的 API 实现,这些模型由代理使用。

    prompter

    • 用途: 为代理构建提示。
    • 详情: 此目录包含提示构建逻辑和工具,可帮助代理为用户交互生成有意义的提示。

    prompts

    • 用途: 包含用于构建完整提示的提示模板和文件。
    • 详情: 这包括预定义的提示结构和内容,用于与代理创建有意义的交互。

    rag

    • 用途: 从不同来源实现检索增强生成 (RAG) 以增强代理的能力。
    • 详情: 此目录包含用于将各种数据源集成到 RAG 框架中的脚本和工具,从而提高代理输出的准确性和相关性。

    trajectory

    • 用途: 实现任务完成轨迹的加载和解析。
    • 详情: 此目录包含用于加载和解析任务完成轨迹的工具和脚本,使代理能够从过去的经验中学习或用于评估目的。

    utils

    • 用途: 包含实用函数。
    • 详情: 此目录包含辅助函数、常用实用程序和其他可重用代码片段,以支持项目的操作。

    config

    • 用途: 存储配置文件。
    • 详情: 此目录包含用于各种环境和目的的不同配置文件。
    • config.yaml: LLM 和其他设置的用户配置文件。您需要将 config.yaml.template 重命名为 config.yaml 并根据需要编辑配置设置。
    • config_dev.yaml: 针对开发目的量身定制的开发人员特定配置文件。

    ufo.py

    • 用途: UFO 客户端的主入口点。
    • 详情: 此脚本初始化并启动 UFO 应用程序。