AutoGPT:提示工程指南

Auto-GPT是一个开源的AI工具,利用OpenAI的GPT-4或GPT-3.5 API来完成用户以自然语言表达的定义目标。它通过将主任务分解为更小的组件,并在一个循环过程中自主利用各种资源来实现这一目标。

在本指南中,我们将探讨AutoGPT的各种特性,并概述使用AutoGPT进行编码的最佳实践和提示。

🧩 目录

  • AutoGPT安装指南
  • AutoGPT所需的API
  • 克隆Github仓库时的更改
  • 提示工程指南
  • 提示工程的最佳方法
  • 使用AutoGPT执行代码
  • 使用AutoGPT执行shell
  • 使用AutoGPT分析代码
  • 使用AutoGPT改进代码
  • 使用AutoGPT生成文档
  • 使用AutoGPT进行调试
  • 使用AutoGPT进行Google搜索
  • 使用AutoGPT进行网页抓取
  • 使用AutoGPT搜索文件
  • 使用AutoGPT进行Github克隆
  • 在编码和调试中最好使用AutoGPT的指南
  • 结论

🚀 AutoGPT安装指南

要安装AutoGPT,我们首先需要克隆Github仓库。你可以在这里找到最新版本:https://github.com/Significant-Gravitas/Auto-GPT/releases/latest

你可以在终端使用命令git clone https://github.com/significant-gravitas/auto-gpt.git来克隆仓库,或者在仓库页面点击"Code"按钮并下载zip文件。

按照auto-gpt仓库安装指南中的指示进行操作。

通过运行命令autogpt --version验证安装是否成功。你应该在终端中看到显示的版本号。

你也可以使用虚拟环境来包含AutoGPT的安装,并确保在安装依赖或运行AutoGPT时不会遇到任何错误。

📌 AutoGPT所需的API

确保将'.env'更新为你自己的配置和你自己的api密钥。该文件包含你可能需要的每个api。你可以省略一些,如果你不使用它们,例如用于图像生成,但请确保你有:

  • OpenAI API密钥 - 这个密钥是使用OpenAI API的必需品,AutoGPT就是基于这个API构建的。你可以通过注册OpenAI API程序来获取API密钥。
  • GITHUB_API_KEY - 这个密钥是授权你访问GITHUB API的必需品。你可以通过在github网站上按照步骤获取这个密钥。
  • 你的GITHUB_USERNAME

你可以在这里添加所有的API。'.env'文件是自解释的。一旦你获得了这些密钥,你需要编辑仓库中的.env文件并添加上面列出的API密钥。

还要注意以下内容:

  • 如果你希望它在本地执行命令,通过更改为true来允许本地命令执行
  • 如果你不希望将其限制在工作区文件夹,更改为false

📝 克隆Github仓库时的更改

你需要编辑仓库中的.env文件并添加上面列出的API密钥。这是因为API密钥是敏感信息,不应硬编码到应用程序中。

你还需要在prompts.json文件中添加你自己的提示,以使AutoGPT对你的特定用例更有用。仓库中提供的提示是通用的提示,可能不适用于你的项目。通过添加你自己的提示,你可以训练AutoGPT生成针对你特定用例的响应。

💻 提示工程指南

要提示AutoGPT,使用命令python -m autogpt在你的终端。确保你在正确的路径。如果不在,通过' cd Path'设置它。

为了获得最好的结果,确保你的提示是具体和明确定义的。这将给AutoGPT一个清晰的理解你试图达到什么,并帮助它生成更准确的响应。

在审查模型的响应时,记住AutoGPT是一个语言模型,而不是人。因此,它可能生成的响应并不完全准确或适合你的用例。由你来审查响应并进行任何必要的修改。

另一种使用AutoGPT的方式是将其集成到你的代码中。你可以看看克隆文件夹中的命令,并使用它以编程方式生成响应。如果你希望在特定的上下文中生成响应,这可能很有用。

🔥 提示工程的最佳方法

以下是一些使用AutoGPT进行提示工程的最佳方式:

1. 使用AutoGPT执行代码:

@command装饰器用于定义自定义命令。它接受三个参数:

  • name:命令的名称。
  • description:命令的简短描述。
  • params:表示命令期望参数的字符串。

以下是使用@command装饰器定义一个名为execute_python_file的自定义命令的示例:


@command("execute_python_file", "Execute Python File", '"filename": ""')
def execute_python_file(filename: str) -> str:
    # Implementation of the command

2. 使用AutoGPT执行shell

要执行shell命令,你可以使用subprocess模块。以下是运行shell命令的两种方法:

a) 使用subprocess.run():

此方法运行命令并等待其完成。它返回命令的输出(stdout和stderr)。


result = subprocess.run(command_line, capture_output=True, shell=True)
output = f"STDOUT:\n{result.stdout}\nSTDERR:\n{result.stderr}"

b) 使用subprocess.Popen():

此方法启动命令作为一个单独的进程并立即返回。它对运行非阻塞命令很有用。


process = subprocess.Popen(
    command_line, shell=True, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL
)
return f"Subprocess started with PID:'{str(process.pid)}'"

要创建一个执行shell命令的自定义命令,你可以使用@command装饰器和subprocess方法:


@command("execute_shell", "Execute Shell Command", '"command_line": ""')
def execute_shell(command_line: str) -> str:
    result = subprocess.run(command_line, capture_output=True, shell=True)
    output = f"STDOUT:\n{result.stdout}\nSTDERR:\n{result.stderr}"
    return output

3. 使用AutoGPT分析代码:

analyze_code模块设计用于分析给定的代码片段并提供改进建议。它使用@command装饰器定义了一个名为analyze_code的自定义命令。该函数接受一个包含要分析的代码的字符串,并返回一系列建议。

以下是代码的简化解释:

使用@command装饰器定义analyze_code函数:


@command("analyze_code", "Analyze Code", '"code": ""')
def analyze_code(code: str) -> list[str]:

设置AI函数调用的函数字符串、参数和描述字符串:


function_string = "def analyze_code(code: str) -> list[str]:"
args = [code]
description_string = (
    "Analyzes the given code and returns a list of suggestions for improvements."
)

调用AI函数分析代码并返回建议:


return call_ai_function(function_string, args, description_string)

4. 使用AutoGPT改进代码:

improve_code函数设计用于根据提供的建议列表改进给定的代码片段。它使用@command装饰器定义了一个名为improve_code的自定义命令。该函数接受一个建议列表和一个包含要改进的代码的字符串,并返回一个应用了建议改进的新代码字符串。

以下是代码的简化解释:

使用@command装饰器定义improve_code函数:


@command("improve_code", "Get Improved Code", '"suggestions": " 	", "code": ""')
def improve_code(suggestions: list[str], code: str) -> str:

设置AI函数调用的函数字符串、参数和描述字符串:


function_string = "def generate_improved_code(suggestions: list[str], code: str) -> str:"
args = [json.dumps(suggestions), code]
description_string = (
    "Improves the provided code based on the suggestions"
    " provided, making no other changes."
)

调用AI函数改进代码并返回改进版本:


return call_ai_function(function_string, args, description_string)

要使用improve_code函数,传递一个建议列表和一个包含你想要改进的代码片段的字符串:


suggestions = [
    "Replace the print statement with a return statement.",
    "Add type hints to the function."
]

code_to_improve = '''
def some_function():
    print("Hello, World!")
'''

improved_code = improve_code(suggestions, code_to_improve)
print(improved_code)

improve_code函数接着会调用AI函数,该函数反过来使用OpenAI API将建议的改进应用到代码上,并生成一个新的、改进版本的代码。请注意,改进的质量取决于语言模型对建议的理解以及正确应用它们的能力。

5. 使用AutoGPT生成文档:


prompt = "Generate documentation for the function 'Function name'"

generator =   response = openai.Completion.create(
         engine=engine,
         prompt=prompt,
         max_tokens=150,
         n=1,
         stop=None,
         temperature=1.2,
         presence_penalty=0.5,
         frequency_penalty=0.5,
     )

6. 使用AutoGPT进行调试:

使用improve_code函数进行调试,你可以按照以下步骤进行:

  • 识别代码中的问题或错误。你可以手动进行,也可以使用诸如linter、静态分析器或调试器等工具来帮助定位问题。
  • 根据识别的问题创建一个建议列表。每个建议都应描述如何修复代码中的特定问题或错误。
  • 调用improve_code函数,将建议列表和存在问题的代码片段作为参数传递:

suggestions = [
    "Fix the IndexError by using a conditional statement.",
    "Handle the ZeroDivisionError exception."
]

buggy_code = '''
def buggy_function(a, b):
    result = a / b
    return result

def another_buggy_function(lst):
    return lst[0]
'''

improved_code = improve_code(suggestions, buggy_code)
print(improved_code)

审查improve_code函数返回的改进代码。确保AI生成的改进符合你的建议并正确修复了识别的问题。验证改进后的代码是否按预期工作。

7. 使用AutoGPT进行Google搜索

- 选择搜索函数:`google_search`用于DuckDuckGo或`google_official_search`用于官方Google API。

- 使用你的搜索查询调用所选的函数:


query = "example search query"
num_results = 5

# Perform the search using DuckDuckGo
search_results = google_search(query, num_results)
print(search_results)

# Or, perform the search using the official Google API
# search_results = google_official_search(query, num_results)
# print(search_results)

该函数返回与给定查询匹配的搜索结果URL列表。确保你在secrets.json中保存了google api。

8. 使用AutoGPT进行网页抓取

使用你想要抓取的网站的URL和与你寻找的内容相关的问题调用browse_website函数:


url = "https://example.com"
question = "What is the main purpose of the website?"

answer_and_links = browse_website(url, question)
print(answer_and_links)

browse_website函数使用scrape_text_with_selenium来抓取网站的文本内容,并使用scrape_links_with_selenium来提取链接。

9. 使用AutoGPT搜索文件

使用你想要搜索的目录调用list_files函数:


directory = "path/to/directory"
all_files = list_files(directory)

根据文件名或你想要使用的任何其他条件过滤结果:


search_criteria = "example"
matching_files = [file for file in all_files if search_criteria in file]
print(matching_files)

在这个例子中,matching_files将包含一个列表,该列表中的所有文件都在指定的目录(及其子目录)中,并且其名称中包含search_criteria字符串。根据你的特定搜索需求修改过滤条件。

10. 使用AutoGPT进行Github克隆:

AutoGPT有一个名为clone_repository的函数,允许你从给定的URL克隆一个Git仓库到你的机器上的本地目录。要提示它输入并使用clone_repository函数克隆一个Git仓库,按照以下步骤操作:

  • 输入仓库URL和克隆路径
  • repo_url = "repository URL"
  • clone_path = "the path to clone the repository"
  • 使用提供的URL和路径调用clone_repository函数:

result = clone_repository(repo_url, clone_path)

这段代码调用了clone_repository函数,该函数使用Config对象提供的GitHub身份验证凭据克隆仓库。

✨ 在编码和调试中最好使用AutoGPT的指南

  • 使用AutoGPT自动为你的代码生成描述性注释。这可以帮助使你的代码更易读,更易于理解,尤其是对于可能不熟悉代码库的团队成员。
  • 使用AutoGPT为你的项目生成样板代码。例如,你可以使用AutoGPT生成为设置日志、创建配置文件或初始化数据库的代码。
  • 使用AutoGPT为你的代码生成测试用例。这可以帮助确保你的代码按预期工作,以及你对代码进行的任何更改不会引入新的错误。
  • 使用AutoGPT为你的项目生成文档。AutoGPT可以自动生成API文档、用户指南和其他类型的文档,节省你的时间和精力。

📘 结论

AutoGPT是一个强大的工具,可以帮助你进行编码和提示工程。它可以生成代码片段,检查代码语法,改进代码,生成测试用例,生成文档和执行python文件。通过使用AutoGPT,你可以节省时间,提高生产力。

版权声明:
作者:AutoGPT
链接:https://autogpt.cn/400
来源:AutoGPT中文
文章版权归作者所有,未经允许请勿转载。

THE END
分享
AutoGPT:提示工程指南
Auto-GPT是一个开源的AI工具,利用OpenAI的GPT-4或GPT-3.5 API来完成用户以自然语言表达的定义目标。它通过将主任务分解为更小的组件,并在一个循环过程中自主……
<<上一篇
下一篇>>