不写代码、年薪百万,带你玩赚ChatGPT提示工程-提示应用程序

文章目录

  • 前言
  • 一、数据生成
  • 二、PAL (Program-Aided Language Models): Code as Reasoning
  • 总结


前言

随着ChatGPT的大火,提示工程在大模型中的重要性不言而喻,本文参考国外Prompt Engineering Guide完成国内中文版本的《提示工程指南》,希望能够和大家一起交流,分享及发现提示工程的美妙之处。文章所有内容可以在ChatGPT_Prompt_Chinese中找到。

在之前的指南中,我们介绍并给出了Prompt的高级示例。

在本指南中,我们将介绍一些高级和有趣的方式,我们可以使用提示工程来执行有用和更高级的任务。

需要注意的是,在本章节我们将会引入ChatGPT的API,进行一定量的工程实践。


一、数据生成

LLM 具有生成文本的强大能力。使用有效的提示策略可以引导模型产生更好、更一致、更真实的响应。 LLM 还可以特别用于生成数据,这对于运行各种实验非常有用。例如,我们可以使用它来为情感分类器生成快速样本,如下所示:

Prompt:

为情感分析生成 10 个样本。样本分为正面和负面两类。生成 2 个负面样本和 8 个正面样本。使用以下格式为样本编写问题和答案:
问题:<句子>
答案:<情感>

Output:

问题:这家餐厅的服务员态度很恶劣,让人感到非常不舒服。
答案:负面问题:我最喜欢的歌手今晚开演唱会了,我太兴奋了!
答案:正面问题:我刚刚丢了钱包,里面有我所有的信用卡和现金,我感到非常沮丧。
答案:负面问题:今天天气真是太好了,阳光明媚,心情愉悦。
答案:正面问题:这本小说真是太好看了,我一口气读完了整本书。
答案:正面问题:我的手机掉进水里了,无法正常工作了,我感到非常烦恼。
答案:负面问题:我的朋友们今天都来我家玩,我们一起吃了美食,玩了好几个小时,我感到非常愉快。
答案:正面问题:我被一辆出租车撞了,虽然没有受伤,但是我的车被撞坏了,我感到很不开心。
答案:负面问题:我终于找到了一份满意的工作,薪水还不错,我感到非常开心。
答案:正面问题:我的狗狗生了一窝可爱的小狗,它们都很健康,我感到非常高兴。
答案:正面

这非常有用。实际上,我们在指南的另一个部分中使用此示例进行了不同的测试。

二、PAL (Program-Aided Language Models): Code as Reasoning

Gao et al., (2022) 该方法使用LLMs读取自然语言问题并生成程序作为中间推理步骤。称为程序辅助语言模型(PAL),它与链式思维(COT)提示不同,因为它不是使用自由形式的文本来获取解决方案,而是将解决方案步骤卸载到程序运行时,如 Python 解释器。
在这里插入图片描述
让我们使用 LangChain 和 OpenAI GPT-3 来看一个示例。我们有兴趣开发一个简单的应用程序,该应用程序能够解释所提出的问题并通过利用 Python 解释器提供答案。

具体而言,我们有兴趣创建一个功能,允许使用 LLM 来回答需要日期理解的问题。我们将向 LLM 提供一个提示,其中包含一些示例,这些示例是从以下内容采用的:

import openai
from datetime import datetime
from dateutil.relativedelta import relativedelta
import os
from langchain.llms import OpenAI
from dotenv import load_dotenv

让我们首先配置一些东西:

load_dotenv()# API configuration
openai.api_key = os.getenv("OPENAI_API_KEY")# for LangChain
os.environ["OPENAI_API_KEY"] = os.getenv("OPENAI_API_KEY")

设置模型实例:

question = "Today is 27 February 2023. I was born exactly 25 years ago. What is the date I was born in MM/DD/YYYY?"DATE_UNDERSTANDING_PROMPT = """
# Q: 2015 is coming in 36 hours. What is the date one week from today in MM/DD/YYYY?
# If 2015 is coming in 36 hours, then today is 36 hours before.
today = datetime(2015, 1, 1) - relativedelta(hours=36)
# One week from today,
one_week_from_today = today + relativedelta(weeks=1)
# The answer formatted with %m/%d/%Y is
one_week_from_today.strftime('%m/%d/%Y')
# Q: The first day of 2019 is a Tuesday, and today is the first Monday of 2019. What is the date today in MM/DD/YYYY?
# If the first day of 2019 is a Tuesday, and today is the first Monday of 2019, then today is 6 days later.
today = datetime(2019, 1, 1) + relativedelta(days=6)
# The answer formatted with %m/%d/%Y is
today.strftime('%m/%d/%Y')
# Q: The concert was scheduled to be on 06/01/1943, but was delayed by one day to today. What is the date 10 days ago in MM/DD/YYYY?
# If the concert was scheduled to be on 06/01/1943, but was delayed by one day to today, then today is one day later.
today = datetime(1943, 6, 1) + relativedelta(days=1)
# 10 days ago,
ten_days_ago = today - relativedelta(days=10)
# The answer formatted with %m/%d/%Y is
ten_days_ago.strftime('%m/%d/%Y')
# Q: It is 4/19/1969 today. What is the date 24 hours later in MM/DD/YYYY?
# It is 4/19/1969 today.
today = datetime(1969, 4, 19)
# 24 hours later,
later = today + relativedelta(hours=24)
# The answer formatted with %m/%d/%Y is
today.strftime('%m/%d/%Y')
# Q: Jane thought today is 3/11/2002, but today is in fact Mar 12, which is 1 day later. What is the date 24 hours later in MM/DD/YYYY?
# If Jane thought today is 3/11/2002, but today is in fact Mar 12, then today is 3/1/2002.
today = datetime(2002, 3, 12)
# 24 hours later,
later = today + relativedelta(hours=24)
# The answer formatted with %m/%d/%Y is
later.strftime('%m/%d/%Y')
# Q: Jane was born on the last day of Feburary in 2001. Today is her 16-year-old birthday. What is the date yesterday in MM/DD/YYYY?
# If Jane was born on the last day of Feburary in 2001 and today is her 16-year-old birthday, then today is 16 years later.
today = datetime(2001, 2, 28) + relativedelta(years=16)
# Yesterday,
yesterday = today - relativedelta(days=1)
# The answer formatted with %m/%d/%Y is
yesterday.strftime('%m/%d/%Y')
# Q: {question}
""".strip() + '\n'
llm_out = llm(DATE_UNDERSTANDING_PROMPT.format(question=question))
print(llm_out)
exec(llm_out)
print(born)

这将输出以下内容: 02/27/1998


总结

在本指南中,我们主要介绍了一些高级和有趣的方法,我们可以使用提示工程来执行有用和更高级的任务例如:生成数据、作为推理的代码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/30926.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.NET周报【12月第3期 2022-12-23】

由于众所周知的原因&#xff0c;大佬们纷纷加入羊群&#xff0c;笔者也未能幸免&#xff0c;体验下来这绝对不是普通感冒的症状&#xff0c;身体不适&#xff0c;熬了几天&#xff0c;所以本周更新比较晚&#xff1b;另外精力有限&#xff0c;对于国际板块只有链接没有简介&…

如何投资美国股票

5月开始炒美股&#xff0c;投入资金不多&#xff0c;2500美元&#xff08;按当时汇率为17000元人民币&#xff09;。几个月来&#xff0c;一直在摸索&#xff0c;其间有赚有赔&#xff0c;到9月下旬&#xff0c;只实现盈亏平衡。但也就是在9月下旬&#xff0c;我摸索出了一条“…

vue 打包出现的空白屏幕 资源无法正常加载问题

你可以在dist index 中看到这样一行字 Were sorry but xxxxxxx doesnt work properly without JavaScript enabled. 大概率是&#xff1a; 在vue.config.js里面添加 pubilcPath:./ &#xff08;注意这里用相对路径 的./ 而不是绝对路径&#xff09; 将路由变成hash模式 原因&a…

jupyter notebook 在新安装的环境 安装包后 导入失败: 加载模块失败 ModuleNotFoundError: No module named

新装的环境chatgpt&#xff0c; 命令行conda activate chatgpt 进入后&#xff0c; pip安装各类包包&#xff0c; 装好后在命令行和pycharm&#xff08;正确设置interpreter后&#xff09;都能正常导入&#xff0c; 但使用notebook 导入不成功&#xff0c;以tiktoken包为例&…

最大功率点跟踪MPPT

太阳能电池最大功率点跟踪MPPT&#xff08;Maximum Power Point Tracking&#xff09;技术能够保证在负载或环境光照强度变化时&#xff0c;光伏电池一直保持最大输出功率&#xff0c;以最大化太阳能利用率。 从太阳能板的I/V伏安特性曲线&#xff08;绿线&#xff09;中可以看…

4G DTU在电力远程自动抄表中的应用

随着工业自动化的发展&#xff0c;在原有的人工手动抄表中已经发展到远程智能抄表&#xff0c;通过现有的网络智能化的从远端把需要的数据采集到一起&#xff0c;那么&#xff0c;在很多必须无人值守的设备或监测点&#xff0c;不适合搭建有线通讯网络。若采用光纤或电台的方式…

基于分布鲁棒优化的电-气-热综合能源系统日前经经济调度

1 概述 随着经济的快速发展,化石燃料的燃烧引起的环境恶化问题日益突出。近年来风力发电和光伏发电等可再生能源发电发展迅速,但是风能等可再生能源的发电功率具有波动性且不容易控制。这使得构建一个清洁高效且.能够消纳可再生能源的能源系统的需求更加迫切。综合能源系统是…

主题:基于共享储能电站的工业用户日前优化经济调度

Matlab调用Yalmip工具箱&#xff0c;采用Cplex或Gurobi求解器求解。 主题&#xff1a;基于共享储能电站的工业用户日前优化经济调度 多用户(微网)储能电站日前经济调度&#xff0c;完美复现 ID:6650662269578775老电工了

含分布式电源的配电网日前两阶段优化调度模型(Matlab代码实现)

&#x1f468;‍&#x1f393; 个人主页&#xff1a; 研学社的博客 &#x1f4a5; &#x1f4a5; &#x1f49e; &#x1f49e; 欢迎来到本博客 ❤️ ❤️ &#x1f4a5; &#x1f4a5; &#x1f3c6; 博主优势&#xff1a; &#x1f31e; &#x1f31e; &#x1f31e;博客内容…

29考虑特性分布的储能电站接入的电网多时间尺度源储荷协调调度策略MATLAB程序-日前日内实时+需求响应+协调调度

资源地址&#xff1a; 29考虑特性分布的储能电站接入的电网多时间尺度源储荷协调调度策略MATLAB程序-日前日内实时需求响应协调调度-Matlab文档类资源-CSDN文库 参考文献&#xff1a; 考虑特性分布的储能电站接入的电网多时间尺度源储荷协调调度策略——金力 主要内容&…

考虑设备动作损耗的配电网分布式电压无功优化(Matlab代码实现)

目录 1 部分复现 2 概述 3 运行结果 4 Matlab代码实现 1 部分复现 2 概述 从控制策略上电压无功控制主要分为全局控制和分散控制。其中全局控制策略是指由调度中心统一下发指令&#xff0c;例如文献通过求解一个全同性的优化问题集中控制配电网的电压无功设备。基于数据…

太阳能电池最大功率点跟踪MPPT(Maximum Power Point Tracking)技术

太阳能电池最大功率点跟踪MPPT&#xff08;Maximum Power Point Tracking&#xff09;技术能够保证在负载或环境光照强度变化时&#xff0c;光伏电池一直保持最大输出功率&#xff0c;以最大化太阳能利用率。 从太阳能板的I/V伏安特性曲线&#xff08;绿线&#xff09;中可以看…

光伏发电量和用电量的概率预测研究综述(2)

前言 由于本篇综述实在太长&#xff0c;故分为三部分&#xff0c;此乃第二部分。第一部分&#xff1a;光伏发电量和用电量的概率预测研究综述&#xff08;1&#xff09; 目录 3. Forecasting techniques3.1. Statistical approach3.1.1. Parametric3.1.2. Nonparametric 3.2. …

光伏发电系统——mppt最大功率点追踪

在对基于前级boost的最大功率点追踪仿真时候&#xff0c;遇到了很多问题&#xff0c;现在终于做出来了&#xff0c;简单分享一下&#xff0c;由于本系统两级光伏发电系统。后级的DC/AC将直流母线的电压控成了恒定电压源。故本系统和网上常见的mppt追踪有所区别。 本系统的控制&…

基于BP神经网络的电力系统短期负荷预测,简单实用

基于BP神经网络的电力系统短期负荷预测&#xff0c;包含30日的负荷数据和气象特征数据&#xff0c;对31日负荷进行预测&#xff0c;同时与实际负荷进行对比&#xff0c;观察误差。 %创建一个新的BP前向神经网络 %newff—生成一个新的BP前向神经网络 netnewff(minmax(P),[10,12]…

电力消耗模型构建、分析和预测

作者&#xff1a;Minghong Xu 某制药公司每年要花费大量的资金在电费上&#xff0c;由于电力公司的业务改革&#xff0c;该药企可以在一年或月开始时向电力公司预购一定数量的电力&#xff0c;如果实际消耗大于该值&#xff0c;则每多消耗一度电要付比以前更多的电费&#xff0…

光伏发电量和用电量的概率预测研究综述(1)

前言 题目&#xff1a; Review on probabilistic forecasting of photovoltaic power production and electricity consumption 期刊&#xff1a; renewable and sustainable energy reviews 2018 论文地址&#xff1a;Review on probabilistic forecasting of photovoltaic p…

王炸!刚刚ChatGPT又又又更新了!

大家注意&#xff1a;因为微信最近又改了推送机制&#xff0c;经常有小伙伴说错过了之前被删的文章&#xff0c;比如前阵子冒着风险写的爬虫&#xff0c;再比如一些限时福利&#xff0c;错过了就是错过了。 所以建议大家加个星标&#xff0c;就能第一时间收到推送。&#x1f44…

基于Electron25+Vite4.x仿chatgpt客户端应用ElectronChatGPT

Electron25vue3桌面端聊天AI实例|electron仿chatgpt 基于最新前端技术栈 vite4vue3pinia2vue-router 整合 electron25 跨端技术开发桌面端仿chatgpt聊天程序。支持经典分栏布局、暗黑明亮主题模式、多开窗口功能。 技术框架 编辑器&#xff1a;VScode 使用技术&#xff1a;Ele…

chatgpt赋能python:Python连接服务器指南

Python连接服务器指南 Python作为一种易于学习和使用的编程语言&#xff0c;越来越受到开发人员的青睐&#xff0c;尤其是在服务器连接方面。在此文章中&#xff0c;我们将介绍如何使用Python连接服务器。 1. 安装必要的库 在使用Python进行服务器连接之前&#xff0c;您需要…