这是您的 Python 代码项目的精炼文档
从用户演示学习
对于复杂任务,用户可以使用 步骤记录器 演示任务,以记录操作轨迹。UFO 可以从这些用户演示中学习,以提高 AppAgent 的性能。
机制
UFO 使用 步骤记录器 工具记录任务和操作轨迹。记录的演示保存为 zip 文件。DemonstrationSummarizer
类提取并总结演示。总结的演示保存在 config_dev.yaml
文件中指定的 DEMONSTRATION_SAVED_PATH
中。当 AppAgent 遇到类似任务时,DemonstrationRetriever
类从演示数据库中检索保存的演示,并根据检索到的演示生成计划。
信息
您可以在 用户演示提供 文档中找到如何使用步骤记录器工具记录任务和操作轨迹。
您可以找到一个从用户演示中学习的演示视频
激活从用户演示中学习
步骤 1:用户演示
请按照 用户演示提供 文档中的步骤提供用户演示。
步骤 2:配置 AppAgent
配置以下参数以允许 UFO 使用用户演示中的 RAG
配置选项 | 描述 | 类型 | 默认值 |
---|---|---|---|
RAG_DEMONSTRATION |
是否使用用户演示中的 RAG | 布尔值 | False |
RAG_DEMONSTRATION_RETRIEVED_TOPK |
离线检索的 Top K 文档 | 整数 | 5 |
RAG_DEMONSTRATION_COMPLETION_N |
演示结果的完成选择数量 | 整数 | 3 |
参考
演示总结器
DemonstrationSummarizer
类位于 record_processor/summarizer/summarizer.py
文件中。DemonstrationSummarizer
类提供总结演示的方法
DemonstrationSummarizer 类是演示学习的总结器。它将演示记录总结为摘要列表,并将摘要保存到 YAML 文件和向量数据库中。摘要示例如下:{ "example": { "Observation": "Word.exe 已打开。", "Thought": "用户正在尝试创建一个新文件。", "ControlLabel": "1", "ControlText": "示例控件文本", "Function": "CreateFile", "Args": "filename='new_file.txt'", "Status": "成功", "Plan": "创建一个名为 'new_file.txt' 的新文件。", "Comment": "用户成功创建了一个新文件。" }, "Tips": "您可以使用 'CreateFile' 函数创建一个新文件。" }
初始化 DemonstrationSummarizer。
参数 |
|
---|
summarizer/summarizer.py
中的源代码
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
|
__build_prompt(demo_record)
根据用户演示记录构建提示。
参数 |
|
---|
summarizer/summarizer.py
中的源代码
82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
|
__parse_response(response_string)
将响应字符串解析为摘要字典。
参数 |
|
---|
summarizer/summarizer.py
中的源代码
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 131 132 133 134 135 |
|
create_or_update_vector_db(summaries, db_path)
staticmethod
创建或更新向量数据库。
参数 |
|
---|
summarizer/summarizer.py
中的源代码
172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 |
|
create_or_update_yaml(summaries, yaml_path)
staticmethod
创建或更新 YAML 文件。
参数 |
|
---|
summarizer/summarizer.py
中的源代码
137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 |
|
get_summary_list(record)
获取记录的摘要列表
参数 |
|
---|
summarizer/summarizer.py
中的源代码
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
|
演示检索器
DemonstrationRetriever
类位于 rag/retriever.py
文件中。DemonstrationRetriever
类提供检索演示的方法
基类:Retriever
用于创建演示检索器的类。
创建新的 DemonstrationRetriever。:db_path: 数据库的路径。
源代码位于 rag/retriever.py
219 220 221 222 223 224 |
|
get_indexer(db_path)
创建演示索引器。:db_path: 数据库的路径。
源代码位于 rag/retriever.py
226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 |
|