教程

为 Bob 编写有效的提示词

通过编写有效的提示词,最大化 Bob 的输出质量。

IBM Bob 是一个编程和技术助手,但 Bob 无法读取你的想法。 Bob 依靠你的指示来提供出色的结果。学习提示词编写的 基础知识可以提升你与 Bob 的体验,节省时间, 让你得到想要的结果。

什么是提示词?

提示词是你给 Bob 的一组指令,以获得你想要的输出。 提示词可以是问题、请求或命令。它可以像"法国的首都是哪里?"一样简单, 也可以像"编写一个接受数字列表并返回平均值的 Python 函数"一样复杂。

想想软件开发原则"垃圾进,垃圾出"(garbage in, garbage out)。如果 你给 Bob 一个模糊或不完整的提示词,你可能会得到一个模糊或不完整的回答。

当你编写质量更高的提示词时,你会得到质量更高的回答。一个好的 提示词清晰、具体,并提供足够的上下文,以便 Bob 理解 你想要什么。

提示词的组成部分

要编写有效的提示词,你应该包含以下组成部分:

  • 指令(Instruction): 指导 Bob 执行什么任务。指令应 写成清晰的命令,如"总结这个 Python 函数"或 "为这个 API 生成 SBOM"。强有力的指令可以减少歧义并 带来更相关的结果。
  • 角色(Role): 为 Bob 分配一个特定的角色或人格,以便在生成回答时采用。 例如,你可以说"你是一位拥有 Python 专业知识的高级软件工程师"。 这有助于 Bob 根据该角色的视角定制其回答。
  • 上下文(Context): 上下文提供额外的背景信息或细节, 以塑造 Bob 的回答。上下文可以包括对情况的描述、 语气、受众或你想纳入的关键信息。上下文帮助 Bob 保持与任务的一致性。
  • 示例(Example): 示例包括一个或多个展示 所需模式、格式或语气的例子。在你希望输出遵循特定风格或结构时, 提供示例特别有用。示例帮助 Bob 理解什么是好的回答。
  • 提示(Cues): 提示是引导期望回答类型的简短文本。 提示通常放在提示词末尾,以推动 Bob 的输出生成 朝正确方向发展。

随着你的提示词编写技能不断提升,你可以将提示词保存到文件中, 以便重复使用并与团队共享。

提示词最佳实践

以下最佳实践可以帮助你为 Bob 编写有效的提示词。

  • 具体说明: 你的提示词越具体,Bob 就越能理解你想要什么。 与其问"如何编写 Python 函数?",不如问"如何编写一个 接受数字列表并返回平均值的 Python 函数?"
  • 提供上下文: 如果你的提示词涉及特定的项目或代码库, 请提供一些相关背景。这有助于 Bob 生成与你的情况相关的回答。 使用 Bob 的 @ 上下文提及 来引用特定文件。
  • 拆解任务: 就像你在 backlog 中细化任务时一样, 将复杂任务拆解为更小、更易管理的步骤。这可以帮助 Bob 生成更准确、更有针对性的回答。
  • 包含示例: 如果你在添加新的 API,可以指导 Bob 查看代码库中 写得好的 API 作为示例。你也可以在提示词中包含示例, 向 Bob 展示你想要的格式或风格。

编写提示词

在本节中,你将为 Bob 编写一个模糊的提示词并查看输出结果。 然后你将根据最佳实践改进提示词,以提高回答的质量。

目标是让 Bob 生成一个以 UTC 格式打印当前日期和时间的 Python 函数。 该函数应有良好的文档说明并包含错误处理。

如果聊天界面已关闭,点击导航栏旁的 Bob 图标打开它, 或使用快捷键 Option + Command + B(Mac)或 Ctrl + Alt + B(Windows)。

在 IBM Bob IDE 中打开的 Bob 聊天面板

在聊天界面的模式选择器中选择 Ask

输入以下提示词:

Write a Python function that prints the date and time.

Bob 将生成一个回答,但它可能无法满足你的所有要求。

from datetime import datetime

def print_datetime():
    now = datetime.now()
    print(now.strftime("%Y-%m-%d %H:%M:%S"))

Bob 生成了一个函数,但它很可能不包含错误处理或者不是 UTC 格式。

开启新对话以清除上下文窗口。

现在,改进你的提示词,为 Bob 分配一个角色并包含更具体的 指令、示例和上下文。

  • 添加角色: 为 Bob 指定一个角色,帮助它理解在生成回答时应采取的视角。 例如,"你是一位拥有 Python 专业知识的高级软件工程师。"

  • 添加具体指令: 明确你想要什么。例如, "编写一个以 UTC 格式打印当前日期和时间的 Python 3 函数。"

  • 添加上下文: 提供任何可以帮助 Bob 生成更好回答的额外信息。 例如,"函数应有良好的文档说明并包含错误处理。"

  • 示例: 包含一个你希望输出呈现的示例。如果代码库中 有示例,可以使用 Bob 的 @ 上下文提及来引用它们, 或链接到外部示例,如文档或权威来源, 如 Real Python

You are a senior software engineer with expertise in Python 3. Write a Python 3 function that prints the current date and time in UTC format. The function should be well documented and include error handling, modeled after https://realpython.com/ref/best-practices/exception-handling/.
"""
utc_datetime.py — Utility for printing the current UTC date and time.
"""

from datetime import datetime, timezone

def print_utc_datetime() -> None:
    """Print the current date and time in UTC (ISO 8601 format).

    Retrieves the current moment from the system clock, attaches UTC timezone
    info, formats it as an ISO 8601 string, and writes it to stdout.

    Returns:
        None

    Raises:
        OSError: If the system clock cannot be read (e.g., hardware failure or
            OS-level permission restrictions).
        ValueError: If datetime formatting unexpectedly fails (e.g., year out
            of the supported range).

    Example:
        >>> print_utc_datetime()
        Current UTC date and time: 2025-07-15T13:42:00.123456+00:00
    """
    try:
        now_utc: datetime = datetime.now(tz=timezone.utc)
    except OSError as exc:
        # System clock is unavailable or inaccessible.
        raise OSError("Failed to read the system clock.") from exc

    try:
        formatted: str = now_utc.isoformat()
    except ValueError as exc:
        # Extremely unlikely, but guard against out-of-range datetime values.
        raise ValueError(
            f"Failed to format the datetime object: {now_utc!r}"
        ) from exc

    print(f"Current UTC date and time: {formatted}")


if __name__ == "__main__":
    print_utc_datetime()

Bob 的回答现在应该与你的要求更加吻合,展示了 编写有效提示词的重要性。

IBM SkillsBuild

IBM SkillsBuild 是一个免费的在线学习平台,提供课程和 资源,帮助你在各种技术领域发展技能, 包括人工智能和机器学习。你可以找到关于如何为 Bob 等 AI 助手编写 有效提示词的课程,以及其他与软件开发和技术相关的主题。

要了解更多关于有效提示词编写的内容,请学习 Craft Precise Prompts for AI Models 课程。

后续步骤

在本教程中,你学习了有效提示词的组成部分,并将一个模糊的提示词改进为能够可靠生成所需输出的提示词。

继续学习使用技能,将一个写得好的提示词转化为 Bob 可以自动应用的可重用、可重复的工作流程。

这个主题怎么样?