近日首个自研全开源自然语言低代码GPT应用快速开发框架PromptAppGPT迎来重要更新。
框架简介可以参考往期文章: 真低代码!首个基于ChatGPT的自然语言开发框架PromptAppGPT:全自动编译、运行、界面生成
项目网站:https://promptappgpt.wangzhishi.net/
项目代码:https://github.com/mleoking/PromptAppGPT
PromptAppGPT框架更新后增加了对网页搜索、图片搜索、网页抓取、JavaScript代码执行等多个重要执行组件的内置支持。
新的执行组件的加入和本次其他机制优化使得PromptAppGPT具备了几十行低代码实现AutoGPT这种AI自动助手的能力。
更新后PromptAppGPT将AI全自动助手的开发和运行门槛都降到了最低: 人人都可以自然语言开发, 直接打开网址点击就可以运行,不用安装任何依赖组件。
本次更新增加的My AutoGPT程序就是基于PromptAppGPT开发AI全自动助手类APP的示例。

基于PromptAppGPT 的 My AutoGPT的代码

 

---
author: Leo
name: My AutoGPT
description: Use gpt   and executors to autonomously achieve whatever goal you set.
gptRound: multiple
failedRetries: 2
autoRun: true
 
sysTask:
  - executor: gpt
    prompt: |
  Constraints:
  1. If you are unsure how you previously   did something or want to recall past events, thinking about similar events   will help you remember.
  2. No user assistance
  3. Exclusively use the commands listed   in double quotes e.g. "command name"
 
  Commands:
  1. Webpage Search:   "doSearchWeb", args: "query":   "<keywords_to_search>"
  2. Image Search:   "doSearchImage", args: "query":   "<keywords_to_search>"
  3. Task Complete:   "doCompleteTask", args: "output":   "<task_output>"
 
  Resources:
  1. Internet access for searches and   information gathering.
  2. GPT-3.5 powered Agents for   delegation of simple tasks.
 
  Performance Evaluation:
  1. Continuously review and analyze your   actions to ensure you are performing to the best of your abilities.
  2. Constructively self-criticize your   big-picture behavior constantly.
  3. Reflect on past decisions and   strategies to refine your approach.
  4. Every command has a cost, so be   smart and efficient. Aim to complete tasks in the least number of steps.
 
  You should only respond in JSON format   as described below
  Response Format:
  {
  "thoughts": {
  "text":   "thought",
  "reasoning":   "reasoning",
  "plan": "- short   bulleted\n- list that conveys\n- long-term plan",
  "criticism":   "constructive self-criticism",
  "speak":   "thoughts summary to say to user"
  },
  "command": {
  "name": "command   name",
  "args": {
  "arg name":   "value"
  }
  }
  }
 
userTask:
  - trigger: doSearchWeb
    executor: bingWeb
    prompt: |
  query: $e{"query":   "(.*)"}
  limit: 2
    outputer: $e{RawInput} doGptNext
  - trigger: doSearchImage
    executor: bingImage
    prompt: |
  query: $e{"query":   "(.*)"}
  limit: 2
    outputer: $e{RawInput} doGptNext
  - trigger: doGptNext
    executor: gpt
    prompt: Determine which next command to   use, and respond using the format specified above.
  - trigger: doCompleteTask
    executor: log
    prompt: |
   $i{Task   Complete:@textarea=$e{"output": "(.*)"}}
  - executor: gpt
    prompt: |
  $i{My Objectives:@textarea=Objectives:
  1. Recommend the best smartphone for   business professionals in 2023.
  2. Explain why the smartphone is   recommended and show the smartphone's image.}
代码中,sysTask部分描述了助手需要遵守的约束(Constraints), 可以运行的命令(Commands),可以使用的资源(Resources),性能评估方法(Performance Evaluation),输出内容和格式规范。
userTask部分配置了助手运行需要的5种任务各自的触发条件(trigger),执行器(executor)和执行输入(prompt)。

My AutoGPT运行过程

首先输入要助手完成的目标:
1. Recommend the best smartphone for business professionals in 2023.
  为商务人士推荐2023年最好的智能手机
2. Explain why the   smartphone is recommended and show the smartphone's image.
  解释智能手机的推荐理由并展示手机图片
然后点击运行。这个时候程序就开始全自动目标拆解和完成的过程:
第一步,调用GPT作决策判断需要先进行网页搜索,找出2023年对于商务人士最好的智能手机列表。
第二步, 调用bingWeb搜索给出两个网页,并得出2023年商务人士最优智能手机候选: iPhone 14 Pro Max, Samsung Galaxy S22 Ultra, Google Pixel 7 Pro, Samsung Galaxy Z Fold 4, Oppo Find X5 Pro。
第三步,调用GPT作决策判断,下一步需要进一步搜索上面得到两个网页(TechRepublic vs TechRadar)观点的异同。
第四步,调用bingWeb获得了两篇报道观点异同信息。

第五步,调用GPT做决策判断,通过以上步骤输入,GPT判断出iPhone 14 Pro Max是2023年对商务人士最好的智能手机; 然后GPT决策下一步需要调用图像搜索来获得这个手机的图片。
第六步,调用bingImage搜索得出iPhone 14 Pro Max的两张图片。

第七步,调用GPT作决策判断,在两张图片中选择了第一张更好看的深蓝色的图片,并做出下一步决策是要完成任务(doCompleteTask)。

第八步,任务完成,结果推荐了iPhone 14 Pro Max手机,并给出了推荐理由和手机的图片链接。
我们看到基于PromptAppGPT的My AutoGPT应用已经展露出大语言模型对于目标进行自动拆解、决策、利用工具、和综合最终结果的能力。
 
更新后的PromptAppGPT带有更多的插件和机制,将能支持低代码开发更加智能的大语言模型应用。
参考资料:
https://github.com/mleoking/PromptAppGPT