likes
comments
collection
share

走进Prompt Engineering:解锁LLM潜能的金钥匙

作者站长头像
站长
· 阅读数 32

前言

什么是Prompt?Prompt Engineering? Prompt可以理解为向语言模型提出的问题或者指令,它是激发模型产生特定类型响应的“触发器”。 Prompt Engineering,即提示工程,是近年来随着大型语言模型(LLM,Large Language Models)的发展而兴起的一个重要概念

接下来,让我们学习如何使用Prompt Engineering。

1. 初始化项目

使用npm init -y命令在终端(快捷键Ctrl+`)快速创建一个package.json文件,这是Node.js项目的配置文件。

  • npm init -y

2. 安装OpenAI SDK

通过npm i openai命令安装OpenAI提供的官方SDK。这一步骤不仅会在你的项目目录中下载必要的库文件,还会自动在package.jsondependencies字段添加一条记录,表明该项目依赖于openai包。

  • npm i openai

3. 创建.env文件

利用dotenv库(通过dotenv.config()方法)可以将API Key等敏感信息存储在项目根目录下的.env文件中。这样可以避免将密钥直接写入源代码,减少泄露风险。

  • OPENAI_API_KEY =YOUR_API_KEY

4.创建main.js

① 环境变量配置

require('dotenv').config();
// 环境变量
// console.log(process.env, '------');

② 导入OpenAI模块并创建实例

const OpenAI = require('openai')//导入模块
// 创建实例
const client = new OpenAI({
    apiKey: process.env.OPENAI_API_KEY,
    baseURL: 'https://api.chatanywhere.tech/v1'
})

③ 创建异步函数getChatResponse

// 模型和prompt作为参数
const getChatResponse = async function (model, prompt) {
    // 向指定模型发送请求
    const response = await client.chat.completions.create({
        model: model, // 适合聊天的模型 很多种
        messages: [
            {
                role: 'user',
                content: prompt
            }
        ]
    })返回
    // 第一条消息的content部分
    return response.choices[0].message.content

}

④ 主函数main()

  • 第一个prompt是一个关于总结文本的请求,要求将一个较长的段落总结成少于20字的一句话。
  • 第二个prompt是一个角色扮演场景,要求模型以一致的风格回答一个关于“教我韧性”的问题,模仿对孩子的教导。
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()函数运行程序。

main()

总结

把时间花在设计prompt上,提供清晰、明确的提示,同时利用dotenv.config()方法存储api密码,注意将重复使用的代码进行封装,拒绝重复复制粘贴。养成良好的编程习惯并结合好prompt进行编程。

转载自:https://juejin.cn/post/7371311256630280218
评论
请登录