编程中的安全素养;解读Prompt Engineering
安全素养
在上一篇文章中我们我们运用直接在代码中写入了我们的openai的apikey,这会导致我们的apikey暴露了可能会被别人拿去使用从而是我们的key被锁住了而今天我们在这里可以引入一个新安装包npm i dotenv
然后新建一个.env的环境变量把我们的apikey存入到.env环境变量文件里面,详细步骤如下;
我们先初始化一个项目的描述文件
然后通过上述指令安装dotenv安装包
在package.json文件description元素中能看到我们我们安装好的安装包和版本
在新建.env文件配置好我们的openai apikey就可以了在后续直接用OPENAI_API_KEY来表示我们的key了
这是一个编程的安全素养展示,编程的安全素养是程序员在开发过程中必须具备的一组重要能力和意识,以确保软件的安全性、稳定性和可靠性。讲完这些就继续到我们的下一个主题了
Prompt Engineering(提示工程)概述
Prompt,作为与LLM交互的“钥匙”,其设计直接影响到模型的输出质量和效果。一个优秀的Prompt需要能够清晰地表达用户意图,引导模型产生准确的回答。在吴恩达的课程中,我们学习到了Prompt设计的一些基本原则,包括提供清晰、明确的提示,使用长提示可能效果更好,以及通过Few-Shot Learning向模型展示其学习能力。接下来我们就通过代码来演示一下:
用npm i openai
继续安装好我们的openai安装包:
//require 是node里面的模块化里的关键字,负责引入模块
//从本地node_modules 引入openai模块, 以OpenAI这个类
require('dotenv').config();
// env 是环境变量
const OpenAI=require('openai')
const client=new OpenAI({
apiKey:process.env.OPENAI_API_KEY,
baseURL:'https://api.chatanywhere.tech/v1'
})
const getChatResponse=async function(model,prompt,n){
const response=await client.chat.completions.create({
model:model, //适合聊天的模型 有很多种大模型
messages:[{
role:'user',
content:prompt,
}]
})
return response.choices[0].message.content
}
async function main(){
// es6 模板字符串 比传统的单引号双引号可以动态解析
// 支持多行 特别适合详细的设置prompt
let text=`
您应该提供尽可能清晰,具体的指示,以表达您希望模型执行的任务\
这将引导模型朝向所需的输出,并降低收到无关或不正确响应的可能性。\
不要将写清晰的提示词与写简短的提示词混淆。\
在许多情况下,更长的提示词可以为模型提供更多的清晰度和上下文信息,
从而导致更详细和相关的输出。
`
// LLM 的NLP 总结能力
// \ 转译
let prompt=`
把用三个反引号括起来的文本总结成一句话,20字以内。
\`\`\`${text}\`\`\`
`
const response=await getChatResponse('gpt-3.5-turbo',prompt)
console.log(response);
let prompt2=`
您的任务是以一致的风格回答问题。
<孩子>: 教我耐心。
<祖父母>: 挖出最深峡谷的河流源于一处不起眼的泉眼;最宏伟的交响乐从单一的音符开始;最复杂的挂毯以一根孤独的线开始编织。
<孩子>: 教我韧性。
`
const response2=await getChatResponse('gpt-3.5-turbo',prompt2);
console.log(response2);
}
main()
其中前面我们写require('dotenv').config();
是用来加载环境变量从.env文件中,在代码中我们为了Don·t repeat yourself Dry 封装了一个getChatResponse
函数来让AI能连续多次来回答我们的问题。运行结果为:
在这里response展示了LLM的对NLP总结能力,response2展示了LLM的强大快速的学习能力。
结论
提示工程,也称为"Γ指令工程"。在人工智能领域,Prompt指的是用户给大型语言模型发出的指令。Prompt在人工智能时代扮演着非常重要的角色。它被誉为AGI时代的"编程语言”,而提示工程则被视为AGI时代的"软件工程"。因此,掌握提示工程技能就像学会使用鼠标和键盘一样,是适应AGI时代的基本技能。
转载自:https://juejin.cn/post/7371384453359140879