Skip to content

CONVERT 提示

提示工程 - 提示词在转换和计算中的应用

Section titled “提示工程 - 提示词在转换和计算中的应用”

提示工程(Prompt engineering)提供了广泛的技术来增强大型语言模型(LLMs),例如 ChatGPT 的能力。在本章中,我们将探讨如何有效地利用提示词(prompt)让 LLMs 执行转换、计算或单位转换,将它们用作多功能的计算工具。

通过精心设计清晰和具体的提示词,我们可以利用 LLM 处理和理解数值请求的能力,来获取各种转换和计算任务的结果。

要让 LLM 执行转换或计算,您需要用自然语言清晰地陈述您的请求。模型利用其训练数据(包含大量文本和代码)来理解单位之间的关系以及如何执行数学运算。

转换任务的基本交互如下所示:

User: Convert 10 miles to kilometers.
ChatGPT: 10 miles is approximately equal to 16.0934 kilometers.

在这个例子中,用户明确请求将 10 英里转换为公里。LLM 处理此请求并提供转换后的值。请注意,精度可能会有所不同,对于关键应用,请务必验证结果。

为了最大程度地利用 LLM 在这些任务上的能力,请考虑以下最佳实践:

  • 具体明确:清晰地陈述转换任务或计算。提供所有必要的细节,例如涉及的确切单位和数值。例如,如果存在歧义,请指定是“美制加仑”(U.S. gallons)还是“英制加仑”(imperial gallons)。
  • 处理潜在歧义:某些转换任务可能存在多种解释(例如,“吨”(ton)可以是公吨(metric ton)、短吨(short ton)或长吨(long ton))。如果不确定,请要求 LLM 说明其假设,或者在您的提示词中提供更多上下文。
  • 请求期望的输出格式:如果您需要特定格式的结果(例如,四舍五入到小数点后某一位、特定的单位符号),请将其包含在您的提示词中。例如:“将 50 摄氏度(degrees Celsius)转换为华氏度(Fahrenheit)。提供整数结果。”
  • 验证关键结果:LLMs 可能会犯错,尤其是在复杂的计算或不常见的转换中。对于关键应用,请务必使用专门的计算器或权威来源验证结果。LLMs 更适合进行快速估算或常见转换。
  • 分解复杂计算:对于多步计算,通过将其分解为更小的、顺序的提示词,或在单个提示词中清晰地列出所有步骤,可能会获得更好的结果。

应用示例:使用 Python 和 OpenAI API 实现

Section titled “应用示例:使用 Python 和 OpenAI API 实现”

我们来探讨一个使用 Python 和 OpenAI API 请求转换的实际示例。这个脚本演示了如何向 GPT-3.5 Turbo 等模型发送转换请求。

import os
from openai import OpenAI
# It's best practice to set your API key as an environment variable
# For example: os.environ.get("OPENAI_API_KEY")
# For this tutorial, we'll use a placeholder. Replace with your actual key.
client = OpenAI(api_key='YOUR_API_KEY')
def get_conversion_from_llm(query):
try:
response = client.chat.completions.create(
model="gpt-3.5-turbo", # You can also use newer models like gpt-4o-mini
messages=[
{
"role": "system",
"content": "You are a helpful assistant that performs unit conversions accurately."
},
{
"role": "user",
"content": query
}
],
max_tokens=60,
temperature=0.2, # Lower temperature for factual, precise tasks
n=1,
stop=None
)
return response.choices[0].message.content.strip()
except Exception as e:
return f"An error occurred: {e}"
user_request = "Convert 2500 US dollars to Euros. Use today's approximate exchange rate."
# Note: LLMs' knowledge of real-time data like exchange rates is limited to their last training update.
# For precise, real-time rates, an API dedicated to financial data is recommended.
# This example tests the LLM's ability to perform a conversion based on its general knowledge.
conversion_result = get_conversion_from_llm(user_request)
print(f"User Request: {user_request}")
print(f"ChatGPT's Response: {conversion_result}")

在此示例中,get_conversion_from_llm 函数将用户的转换请求发送到 OpenAI API。我们使用系统消息(system message)为 LLM 设置上下文(context)。用户的查询请求进行货币转换,这依赖于 LLM 训练数据中的近似汇率。对于实时、关键的金融数据,请始终使用专门的金融数据提供商。

当您运行脚本时,输出将取决于 LLM 当前的知识及其对“今天的近似汇率”(today’s approximate exchange rate)的解释。一个示例响应可能是:

User Request: Convert 2500 US dollars to Euros. Use today's approximate exchange rate.
ChatGPT's Response: As of my last update, 2500 US dollars is approximately equal to 2325 Euros. Please note that exchange rates fluctuate, so for the most current rate, you should consult a real-time currency converter.

此输出显示 LLM 正在执行转换,同时(恰当地)指出了关于实时数据的局限性。

在各种情况下,使用 LLMs 进行转换都非常方便:

  • 快速单位查找:例如,“5 英尺 7 英寸有多少厘米?”
  • 食谱调整:例如,“将 1.5 杯面粉转换为克。”
  • 旅行计划:例如,“20 摄氏度是多少华氏度?”
  • 教育用途:帮助学生理解不同的度量单位。

虽然 LLMs 功能强大,但对于高精度、安全关键或实时金融计算,专用软件或服务更为合适。对于日常估算和一般知识转换,LLMs 可以是一个快速方便的工具。

在本章中,我们探讨了如何通过提示词让 LLMs 执行转换和计算。通过提供清晰、具体的指令并理解 LLM 的能力和局限性,我们可以有效地将它们用作各种任务的计算辅助工具。请务必记住验证关键信息。