2.2 指令模板
指令模板是一种具有指导性的文本生成模式,它要求我们提供模型需要的具体指令,以便模型能够生成符合我们要求的文本。相对于其他文本生成模式,指令模板通常用于需要精确指令的文本生成任务,如技术说明书、操作手册等。
在使用指令模板时,我们需要确保提供的指令准确无误、完整明 确,这有助于模型正确理解任务的要求并生成高质量的文本。我们可 以为每个任务提供单个句子或多个段落的指令,具体取决于任务的要求和复杂程度。
同时,我们需要对指令的语言表达进行仔细的考虑和设计,以确 保模型能够清晰地理解和执行指令,这包括选择合适的词汇、语法和格式等。
指令模板的使用可以提高文本生成的效率和准确性,减少人工编 写文本的工作量,并且有助于实现文本生成的自动化。这种模式不仅 可以大大缩短生成文本所需的时间,还能够提高生成文本的质量和准 确性,从而为许多自然语言处理应用提供便利。下面我们举例说明指令模板。
2.2.1 格式提取指令模板
我们需要使用STAR 原则来对一段文字进行提取,那么可以在ChatGPT 里面输入以下内容。
使用 STAR 原则与下面的格式总结这段话:
t1t!
在2023年4月13日的早晨,我来到了位于纽约市中心的中央公园。公园里熙熙攘攘的人群中,我注意到了一个身穿黑色西装、手持行李 的男子,他正步履匆匆地朝着一辆停靠在公园门口的出租车走去。我 猜想他可能是一名商人,正要去机场赶上他的早班飞机。看着他渐行 渐远的背影,我不禁想起了自己在过去的几年里,也经常在这个城市中奔波劳累的身影。
·情境 (Situation):
·任务 (Task):<comma_separated_list_of_task>
·行动 (Action):-
·结果 (Result):-|-
ChatGPT 输出如下内容。
情境(Situation):2023年4月13日早晨,我在纽约市中心的中央公园。
任务(Task):观察周围环境。
行动(Action):
*注意到一个身穿黑色西装、手持行李的男子;
*观察他正步履匆匆地走向停靠在公园门口的出租车;
*推测他可能是一名商人,准备去机场赶上早班飞机;
*回忆自己在过去几年中在这个城市奔波劳累的身影。
结果(Result):我对身边的环境有了更深入的观察,并对自己的经历有了新的体会。
2.2.2 文件格式转换
如果我们要进行不同文件格式之间的转换,例如,将csv 格式转换成 Markdown格式,那么我们可以在ChatGPT里面输入以下内容。
将下面的csv格式的表格数据转换为Markdown格式,输出Markdown代码块。
csv 格式表头如下:
变量 | 描述 |
stock_code | 股票代码 |
stock_name | 股票名字 (link) |
stock_industry | 股票行业 |
stock_url | 股票链接 |
daily_up | 当日涨幅 |
half_year_decline | 半年跌幅 |
volume_ratio | 量比 |
stock_turn | 换手率 |
stock_date | 日期 |
IPO_price | 上市价格 |
IPO_date | 上市日期 |
ChatGPT输出如下内容。
变量 | 描述 |
stock_code | 股票代码 |
stock_name | 股票名字 (link) |
stock_industry | 股票行业 |
stock_url | 股票链接 |
daily_up | 当日涨幅 |
half_year_decline | 半年跌幅 |
volume_ratio | 量比 |
stock_turn | 换手率 |
stock_date | 日期 |
IPO_price | 上市价格 |
IPO_date | 上市日期 |
2.2.3 代码转换
如果我们要进行不同代码之间的转换,例如,将 Python代码转换成 C++代码,那么我们可以在 ChatGPT里面输入以下内容。
将以下Python代码转换成C++代码,并且为代码加上相应的注释。
import yfinance as yf
import numpy as np
#获取股票历史价格数据
ticker =yf.Ticker('AAPL') # 以 AAPL 股票为例
hist =ticker.history(period="max")
#计算每日收益率
daily_returns
#计算波动率
volatility =np.std(daily_returns) *np.sqrt(252)
#252 为交易日数量,用于日波动率 annualized
print("波动率为:",volatility)
ChatGPT 输出如下内容。
#include <iostream>
#include <cmath>
#include <vector>
#include<curl/curl.h>
#include"rapidjson/document.h"
//回调函数,用于获取股票历史价格数据
Size_twrite_data(void*ptr,size_tsize,size_tnmemb,
std::string*data){
data->append((char*)ptr,size*nmemb);
returnsize*nmemb;
intmain(){
//初始化curl
CURL*curl;
curl=curl_easy_init();
if(!curl){
std::cerr<<"curl初始化失败!"<<std::end1;
return1;
//设置请求url和参数
std::stringurl="https://queryl.finance.yahoo.com/v8/
finance/chart/AAPL";
std::stringparams="?interval=1dgrange=max";
std::stringfull_url=url+params;
//发送GET请求,获取股票历史价格数据
std::stringbuffer;
curl_easy_setopt(curl,CURLOPT_URL,full_url.c_str());
curl_easy_setopt(curl,CURLOPT_WRITEFUNCTION,write_data);
curl_easy_setopt(curl,CURLOPT_WRITEDATA,&buffer);
CURLcoderes=curl_easy_perform(curl);
if(res!=CURLE_OK){
std::cerr<<"curl执行失败:"<<curl_easy_strerror(res)
<<std::endl;
curl_easy_cleanup(curl);
return1;
//解析JSON数据,获取股票历史价格
rapidjson::Documentjson;
json.Parse(buffer.c_str());
if(!json.IsObject()ll!json.HasMember("chart")
ll!json["chart"].IsObject()ll!json["chart"].HasMember("result")
!json["chart"]["result"].IsArray()lljson["chart"]["result"].
().Empty()){
std::cerr<<"获取历史价格失败!"<<std::end1;
curl_easy_cleanup(curl);
return1;
constauto&result=json["chart"]["result"][0];
if(!result.HasMember("timestamp")ll!result.HasMember
("indicators")ll!result["indicators"].IsObject()Il
!result["indicators"].HasMember("quote")ll!result["indicators"]
["quote"].IsArray()llresult["indicators"]["quote"].
GetArray().Empty()){
std::cerr<<"解析历史价格失败!"<<std::end1;
curl_easy_cleanup(curl);
return1;
constauto"e=result["indicators"]["quote"][0];
if(!quote.HasMember("close")ll!quote["close"].IsArray()ll
quote["close"].GetArray().Empty()){
std::cerr<<“解析历史价格失败!”<<std::end1;
curl_easy_cleanup(curl);
return1;
constauto×tamp=result["timestamp"].GetArray();
constauto&close=quote["close"].GetArray();
//计算每日收益率
std::vector<double>daily
for(rapidjson::SizeType
doubletoday_price=close[i].GetDouble();
doubleyesterday_price=close[i-1].GetDouble();
doubletoday_return=(today