关闭

指令模板——人人都是提示工程师(06)

发表于:2024-1-05 09:16

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:陈明明 李腾龙    来源:51Testing软件测试网原创

  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&quote=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&timestamp=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
版权声明:51Testing软件测试网获得作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号