一、引言
在人工智能的浪潮中,ChatGPT以其卓越的语言处理能力,成为引领变革的先锋。大语言模型(LLM)的快速发展,正逐步重塑我们的工作与生活方式。尽管AI无法取代人类的独特性,学会与AI和谐共存,已成为我们每个人必须面对的课题。
二、提示工程是什么
为了更高效地与大语言模型沟通,**提示工程(Prompt Engineering)**应运而生。它是一门艺术,也是一种科学,旨在指导我们如何精心设计问题,以激发AI的潜能。通过精通提示工程,我们可以将大语言模型转化为强大的通用工具,无论是自然语言处理、智能决策支持,还是其他领域,都能发挥其巨大的潜力,提升效率,降低成本,推动AI技术的广泛应用。
三、如何得到一个好的提示?
设想大模型是一个知识渊博却涉世未深的孩子,我们如何提问,才能获得满意的答案?首先,清晰、明确地表达问题是关键。大语言模型并不擅长处理人类的双关语或模糊表达,这也是为什么它们在面对谜语、笑话或网络梗时,常常显得无能为力。例如,ChatGPT讲的笑话可能并不好笑:
每个模型本质上都是一个黑盒子,输入决定输出。我们可以明确地告诉大语言模型输入的内容和格式,并使用特定的标识符(如括号、引号等)来界定输入信息,这样可以帮助模型更准确地理解我们的意图。
对于输出,我们同样可以指定所需的内容格式,如编程中常见的JSON、HTML、XML等。这不仅提高了大语言模型的可编程性,也为我们将其集成到其他IT系统中提供了极大的便利。
// 示例:从一句话中提取信息并生成JSON格式的输出
{
"input": "3月24日的深圳天气晴朗",
"output": {
"city": "深圳", "date": "0324"}
}
有时,直接给出样例比指定格式更能提高效果,尤其是在处理日期等数据时:
四、代码实战
我们选择的是国内领先的大模型——阿里的通义千问,它在综合评测中名列前茅,价格也不贵。
qwen-turbo,输入(input)价格:0.002元/1,000 tokens;输出(output)价格:0.006元/1,000 tokens。
4.1 官方demo
https://help.aliyun.com/zh/model-studio/developer-reference/tongyi-qianwen-quick-start
from http import HTTPStatus
import dashscope
def call_with_messages():
messages = [{'role': 'system', 'content': 'You are a helpful assistant.'},
{'role': 'user', 'content': '请介绍一下通义千问'}]
response = dashscope.Generation.call(
dashscope.Generation.Models.qwen_turbo,
messages=messages,
result_format='message', # 将返回结果格式设置为 message
)
if response.status_code == HTTPStatus.OK:
print(response)
else:
print('Request id: %s, Status code: %s, error code: %s, error message: %s' % (
response.request_id, response.status_code,
response.code