0
点赞
收藏
分享

微信扫一扫

Azure OpenAI入门(二):了解提示工程

1 基础环境配置

1. 测试先决条件:

l Python 3.7.1 或更高版本

l 安装openai客户端和python-dotenv、langchain

pip install openai python-dotenv langchain

Azure OpenAI入门(二):了解提示工程_API

2. 导入库和配置Azure Openai相关凭据

#初始化链接
import openai
import os
import IPython
from langchain.llms import OpenAI
from dotenv import load_dotenv

load_dotenv()

# Azure OpenAI API configuration
openai.api_type = "azure"
openai.api_key = ""
openai.api_base =  ""
openai.api_version = '2022-12-01'
model_deployment_name ="gpt-35-turbo"

# for LangChain
#os.environ["OPENAI_API_KEY"] = os.getenv("")
#os.environ["SERPAPI_API_KEY"] = os.getenv("SERPAPI_API_KEY")

def set_open_params(
 model = model_deployment_name,
 temperature = 0,
 max_tokens = 1024,
 top_p = 1,
 frequency_penalty = 0,
 presence_penalty = 0,
):
 """ set openai parameters"""

 openai_params = {}    

 openai_params['model'] = model
 openai_params['temperature'] = temperature
 openai_params['max_tokens'] = max_tokens
 openai_params['top_p'] = top_p
 openai_params['frequency_penalty'] = frequency_penalty
 openai_params['presence_penalty'] = presence_penalty
 return openai_params

def get_completion(params, prompt):
 """ GET completion from openai api """

 response = openai.Completion.create(
 engine = params['model'],
 prompt = prompt,
 temperature = params['temperature'],
 max_tokens = params['max_tokens'],
 top_p = params['top_p'],
 frequency_penalty = params['frequency_penalty'],
 presence_penalty = params['presence_penalty'],
 return response

2 提示工程

提示工程(Prompt engineering)是人工智能中的一个概念,特别是自然语言处理(NLP)。 在提示工程中,任务的描述会被嵌入到输入中。例如,不是隐含地给予模型一定的参数,而是以问题的形式直接输入。

提示工程的典型工作方式是将一个或多个任务转换为基于提示的数据集,并通过所谓的“基于提示的学习(prompt-based learning)”来训练语言模型。

提示工程可以从一个大型的“冻结”预训练语言模型开始工作,其中只学习了提示的表示方法,即所谓的“前缀调整(prefix-tuning)”或“提示调整(prompt tuning)”。

设计提示词时,将指令放在提示符的开头,并使用###或"""来分隔指令和上下文

1. 补全和生成示例的prompt

#基础用法
params = set_open_params(temperature=0,top_p=1)

#补全和生成示例
prompt = "天空是"
response = get_completion(params, prompt)
IPython.display.Markdown(response.choices[0].text)

模型按照我们提示词补全了文字,并生成了类似的示例 

Azure OpenAI入门(二):了解提示工程_API_02

2. 文本总结概述

文本总结概述可以把长段文字内容重新整理为更简洁的表述,比如:

#文本总结和概述
prompt = """抗生素是一种用于治疗细菌感染的药物。它们要么杀死细菌,要么阻止细菌繁殖,让身体的免疫系统对抗感染。抗生素通常以药丸、胶囊或液体溶液的形式口服,有时通过静脉注射。它们对病毒感染无效,使用不当可能导致抗生素耐药性。

请用一句话总结上面的句子:"""

 OpenAI回复:

Azure OpenAI入门(二):了解提示工程_ChatGPT_03

 

3. 阅读理解,按照要求回答问题

#阅读理解并回答问题
prompt = """根据下面的语境回答问题。回答要简洁明了。如果不确定答案,回答“不确定”。
背景:Teplizumab起源于新泽西州一家名为Ortho Pharmaceutical的制药公司。在那里,科学家们制造出了这种抗体的早期版本,称为OKT3。最初来源于小鼠的这种分子能够结合到T细胞的表面并限制其杀伤细胞的潜力。1986年,它被批准用于预防肾移植后的器官排斥反应,这使它成为第一个允许用于人类的治疗性抗体。
问:OKT3最初的来源是什么?
回答:"""

 OpenAI回复:

Azure OpenAI入门(二):了解提示工程_python_04


4. 分析文本情感

#文本情感分析
prompt = """将文本分为中性、否定或肯定。
我觉得食物还可以。
情绪:"""

 OpenAI回复:

Azure OpenAI入门(二):了解提示工程_API_05

5. 尝试角色扮演

我们可以让AI扮演相关的角色来和我们进行对话,比如:

· 假装你是马克吐温

· 假装你要去会见男/女朋友

· 从现在开始,你就是….

#角色扮演
prompt = """以下是与卡尔·史瓦西的对话。卡尔·史瓦西他是黑洞发现者。
人类:你好,你是谁?
卡尔·史瓦西:我是德国天文学家卡尔·史瓦西,黑洞的发现者。
人类:你能告诉我黑洞是怎么产生的吗?
卡尔·史瓦西:"""

 OpenAI回复:

Azure OpenAI入门(二):了解提示工程_API_06

6. 推理

#推理
prompt = """这组中的奇数加起来是偶数: 15, 32, 5, 13, 82, 7, 1. 
通过将问题分解为多个步骤来解决。首先,找出奇数,将它们相加,并指出结果是奇数还是偶数."""

OpenAI回复:

Azure OpenAI入门(二):了解提示工程_API_07

 

举报

相关推荐

0 条评论