引言
在科技飞速发展的今天,AI产品已成为我们生活中的常客,其早已不再是那些科幻小说里的幻想,而是真真切切地融入了我们的日常生活。而对于程序员来说,合理高效的使用 AI 工具可以让我们的开发如虎添翼,工作效率直接翻倍,而这一能力也成为我们向大厂体现我们学习能力的一环。
尤其值得一提的是,随着越来越多的企业开始将目光投向海外, AI 翻译成为了沟通中外的一座重要桥梁。想象一下,在一个大厂国际化的团队中,如果你能够无障碍地与来自世界各地的同事交流,是不是能让开发更加高效呢?
吴恩达的Prompt Engineering课程
而提到AI学习,就不得不提吴恩达这个名字。他作为机器学习领域的领军人物之一,他不仅在学术界有着举足轻重的地位,更是通过制作许多线上课程等,将许多复杂的 AI 知识通俗易懂的传授给了许多学习者。而他的《Prompt Engineering》课程,则是针对如何更有效地与 AI 进行“沟通”,让我们实现说着说着项目就实现了,即设计出能够让 AI 理解并执行复杂任务的指令。而今天我们就来学习 Prompt 这一奇妙的课程。
初级Prompt设计原则:踏上 AI “出海”之路的第一步
那么,如何才能成为一名优秀的 Prompt 设计师呢?与 AI 沟通并不像与人类沟通一样,它听不懂那些含蓄的话题,比起拐弯抹角,它更希望我们能“打直球”,准确表达任务就成为了沟通的第一步,明确了解我们所需开发的项目需要哪些功能。而在明确了我们的需求后就可以给 AI 一个合适的角色了,例如我要开发 JS 类的项目就可以赋予 AI 一个JavaScript工程师的身份,这样就会更加契合我们的开发了。当你理解上述的原则后,你就已经完成了初级prompt 设计原则学习了。那么我们就要开始实战了!!
从初级到高级:打造属于你的LLM开发模板:
1.Node.js环境下创建LLM项目的代码工程:
当我们需要在我们的项目中使用 OpenAI 时,当然少不了环境的搭建。
- 第一步输入
npm init -y:快速初始化一个新的 Node.js 项目的命令。 - 第二步就有许多方法了:
npm i openai:在之前我们会直接安装,当然这也是费时费力的。npm i -g pnpm:通过pnpm来优化安装,可以提高性能和减少磁盘占用。
前两种方法在之前的文章都讲过,请自行查阅🚀 快速集成 OpenAI API,让 Node.js 项目瞬间升级!🌟本文详细介绍如何在 Node.js 中高效集 - 掘金
而我们今天讲一个新方法来进行安装 OpenAI。
- 打开之前安装过 OpenAI 的项目的
package.json,将其中的dependencies: {}部分(即项目运行时所依赖的npm包)拷贝到我们新项目的package.json中。例如:
"dependencies": {
"dotenv": "...",
"openai": "..."
}
- 再输入
npm i这样就可以搭建好了。
2.使用dotenv管理环境变量
使用dotenv是程序员安全意识的一个重要体现,因为我们的 key 等重要信息不能以明文出现,所以我们通过使用dotenv 在项目的根目录下创建一个名为.env的文件来存储配置信息(如API密钥等敏感数据),这些信息不会被提交到git等之中,这样就可以保证我们敏感信息的安全性。
接下来我们就来演示如何正确地使用dotenv:
import dotenv from "dotenv";:导入dotenv模板。- 创建
.env文件,并且将我们的 key 放入其中。 dotenv.config();:将.env读入process.env对象中。
这样我们就可以安全的调用key ,通过process.env来获取key。
3.实战“出海AI翻译”:
第一步,可想而知,导入dotenv和openai模板。
import OpenAI from "openai";
import dotenv from "dotenv";
// 别忘了读入.env哦~
dotenv.config();
第二步,初始化一个与 OpenAI API 交互的客户端对象,并通过 process.env 来配置其属性。
const client = new OpenAI({
apiKey: process.env.OPENAI_API_KEY,
baseURL: process.env.OPENAI_BASE_URL
})
第三步,就到了激动人心的创建函数,并且根据用户提供的提示(prompt)生成一个响应。
const getCompletion = async (prompt, model="gpt-3.5-turbo") => {
// 模拟用户提出的问题
const messages = [{
role: "user",
content: prompt
}];
// AIGC chat 接口
const response = await client.chat.completions.create({
model: model,
messages: messages,
// LLM 生成内容的文本的随机性和创造性,0-1 越大越随机(翻译可是一个很严谨的事哦)
temperature: 0.1,
});
// 返还回答
return response.choices[0].message.content;
}
第四步,我们就要处理一系列用户信息了,根据我们项目需要而灵活变通。
const main = async () => {
// 模拟用户输入
const user_messages = [
"La performance du système est plus lente que d'habitude.", //系统的性能比平时慢
"Mi monitor tiene píxeles que no se iluminan.", //我的显示器有些像素点不亮。
"Il mio mouse non funziona", // 我的鼠标坏了
"Mój klawisz Ctrl jest zepsuty", // 我的Ctrl键坏了
"我的屏幕在闪烁"
]
// for of es6的遍历
for(let issue of user_messages) {
// 简洁 + 代码可读性的提升
console.log(issue);
// 向AI提问,“请告诉我这句话是哪国语言”
const prompt = `
Tell me what language this is: "${issue}"
`
const countryLanguage = await getCompletion(prompt);
// 向AI提问,“翻译文字”
const resultPrompt = `
帮我翻译以下的文字到中文,"${issue}"
`
const result = await getCompletion(resultPrompt);
// 返还结果
console.log(`${countryLanguage},翻译结果是:${result}`)
}
}
最后的最后,别忘了main()哦~
这样我们就完成了AI翻译的创建了,是不是有了一点小小的成就感呢,赶紧自己运行一下看看结果吧。
总结:
通过今天的实践,我们不仅学会了如何在 Node.js 项目中高效集成 OpenAI API,还掌握了设计有效 Prompt 的初级原则。看来,你已经准备好踏上 AI “出海”的旅程,成为一名优秀的 Prompt 设计师了!
想象一下,在一个国际化的大厂团队中,你可以轻松地与来自世界各地的同事交流,无论是法国同事的系统性能问题、西班牙同事的显示器故障,还是意大利同事的鼠标失灵,都能通过 AI 翻译来快速沟通解决问题,那这工作效率不得蹭蹭往上翻。
---欢迎各位点赞、收藏、关注,如果觉得有收获或者需要改进的地方,希望评论在下方,不定期更新