Skip to content

ChatGPT - 插件

‘插件’(plugin)的概念通常指扩展宿主应用程序功能的软件。虽然 OpenAI 官方的 ChatGPT plugin system(测试版)已演变为 GPT Store 中 custom GPT 的 ‘Actions’,但利用 OpenAI API 构建自定义工具和应用程序以发挥 ChatGPT 能力的核心原理仍然高度相关且强大。本章将演示如何构建一个使用 ChatGPT API 的简单 Python 应用程序,从而有效地创建您自己的自定义 AI 驱动工具。

ChatGPT 驱动的工具是指通过 OpenAI 的 API 与其语言模型(如 GPT-3.5 或 GPT-4)集成的应用程序或脚本,用于执行特定任务。这些工具可以是自动化文本生成的简单脚本,也可以是解决特定用户或组织问题的更复杂应用程序。示例包括自定义内容生成器、代码助手、数据摘要工具或专业聊天机器人(chatbots)。

核心思想是利用 ChatGPT 等模型的语言理解和生成能力来创建定制化解决方案。本章重点介绍 API 驱动的方法。

如何创建一个简单的 ChatGPT 驱动工具(笑话生成器)

Section titled “如何创建一个简单的 ChatGPT 驱动工具(笑话生成器)”

我们将使用 Python 和 OpenAI API 创建一个简单的笑话生成器工具。让我们一步步进行:

步骤 1:获取 OpenAI API Key 登录您的 OpenAI 账户 (platform.openai.com) 或注册。导航到 API keys 部分并创建一个新的 secret key(密钥)。请安全保管此密钥;最好在您的项目中使用 environment variable(环境变量),例如 OPENAI_API_KEY。

步骤 2:设置您的项目 为您的工具创建一个项目文件夹。在其中创建一个 Python 文件,例如 joke_generator.py。

步骤 3:安装 OpenAI 库 打开您的 terminal(终端)或 command prompt(命令提示符),安装官方的 OpenAI Python 库:

pip install openai

步骤 4:编写 Python 代码 打开 joke_generator.py 并添加以下代码:

from openai import OpenAI
import os
# Initialize the OpenAI client
# It's best practice to use an environment variable for your API key
API_KEY = os.environ.get("OPENAI_API_KEY")
if not API_KEY:
# Fallback if environment variable is not set (not recommended for production)
API_KEY = "YOUR_API_KEY_HERE" # Replace with your actual key if needed for testing
print("Warning: API key not found in environment variables. Using hardcoded key (if provided).")
client = OpenAI(api_key=API_KEY)
def get_chatgpt_joke(topic="general"):
"""Generates a joke on a given topic using ChatGPT."""
try:
messages = [
{"role": "system", "content": "You are a witty comedian who tells short, family-friendly jokes."},
{"role": "user", "content": f"Tell me a joke about {topic}."}
]
response = client.chat.completions.create(
model="gpt-3.5-turbo", # Or other suitable chat models
messages=messages,
max_tokens=60, # Adjust as needed for joke length
temperature=0.7 # Add some creativity
)
return response.choices[0].message.content.strip()
except Exception as e:
return f"Sorry, I couldn't tell a joke right now. Error: {e}"
# Main part of the script to test the tool
if __name__ == "__main__":
print("Welcome to the ChatGPT Joke Generator!")
joke_topic = input("What topic would you like a joke about? (e.g., animals, computers, space): ")
if not joke_topic:
joke_topic = "general" # Default topic
print("\nThinking of a joke for you...")
joke = get_chatgpt_joke(joke_topic)
print("\nChatGPT says:")
print(joke)

如果您不使用 environment variable(环境变量),请确保替换 "YOUR_API_KEY_HERE"(强烈建议使用环境变量)。代码定义了一个函数 get_chatgpt_joke,它接受一个主题,构建一个 prompt(提示词),然后调用 OpenAI API。

步骤 5:运行您的工具 保存文件并在您的 terminal(终端)中运行它:

python joke_generator.py

脚本将提示您输入笑话主题,然后显示由 ChatGPT 生成的笑话。

如果您运行该脚本,交互过程可能如下所示:

Welcome to the ChatGPT Joke Generator!
What topic would you like a joke about? (e.g., animals, computers, space): computers
Thinking of a joke for you...
ChatGPT says:
Why did the computer keep sneezing?
Because it had a virus!

步骤 6:部署和进一步开发(可选) 如果您想分享此工具或将其集成到更大的应用程序中,可以考虑使用 Flask 或 Django 等框架将其部署为 Web 服务,或将其打包为 command-line utility(命令行工具)。您还可以扩展其功能,例如支持不同风格或长度的笑话。

这就是使用 ChatGPT API 创建自定义工具的基本示例!这种方法为您构建专门的 AI 应用程序提供了巨大的灵活性。

常见问题:使用 OpenAI API 进行开发

Section titled “常见问题:使用 OpenAI API 进行开发”

1. 自定义 GPT 中的 ‘Actions’ 是什么?它们与 API 调用有何关系?

Section titled “1. 自定义 GPT 中的 ‘Actions’ 是什么?它们与 API 调用有何关系?”

自定义 GPT 中的 ‘Actions’(适用于 ChatGPT Plus 用户的 GPT Store 中提供)允许 GPT 通过调用您定义的第三方 API 与外部服务交互。这与构建调用 OpenAI API 和其他潜在 API 的工具原理类似;但 Actions 是集成在 ChatGPT 界面内部的,而基于 API 的工具是您构建和托管的独立应用程序。

2. 为基于 API 的工具设计 prompt(提示词)有哪些最佳实践?

Section titled “2. 为基于 API 的工具设计 prompt(提示词)有哪些最佳实践?”

有效的 prompt(提示词)设计是关键。最佳实践包括:

  • 具体明确: 清晰定义任务和所需的输出格式。
  • 使用系统消息: 提供上下文并定义 AI 的角色或 persona(例如,“您是一位乐于助人的代码摘要工具。”)。
  • 少样本提示 (Few-shot prompting): 如果任务复杂,在您的 prompt 中包含期望的输入/输出示例对。
  • 迭代优化: 根据模型的响应测试和完善您的 prompt。
  • 控制输出长度: 使用 max_tokens 参数管理响应大小和成本。

3. 使用 OpenAI API 构建工具时如何管理 API 成本?

Section titled “3. 使用 OpenAI API 构建工具时如何管理 API 成本?”

API 使用按 token(令牌)消耗计费。为了管理成本:

  • 选择合适的模型: 对于许多任务,像 gpt-3.5-turbo 这样的模型通常比 gpt-4 更具成本效益。
  • 优化 prompt(提示词)长度: 较短的 prompt 使用的 token 更少。
  • 限制 max_tokens: 将 max_tokens 设置为满足所需输出的最低值。
  • 实施速率限制(rate limiting)和缓存(caching): 对于面向用户的应用程序,限制每个用户的请求速率并在适用的情况下缓存常见响应。
  • 监控用量: 定期查看 OpenAI 平台上的 API usage dashboard(用量仪表板),跟踪支出并设置 usage limits(用量限制)。

4. 使用 OpenAI API 构建的工具类型有哪些?

Section titled “4. 使用 OpenAI API 构建的工具类型有哪些?”

开发者正在构建各种类型的工具,包括:内容生成辅助工具(用于文章、营销文案、脚本)、代码生成和解释工具、摘要服务、用于客户服务或特定领域的聊天机器人(chatbots)、翻译工具、教育辅导工具以及创意写作助手。