基于 Node.js 与 OpenAI SDK 的 LLM 编程入门指南
大型语言模型(LLM)的基本概念及其在自然语言处理中的应用。通过 Node.js 环境搭建,演示了如何使用 OpenAI SDK 调用 GPT 模型进行文本生成与解析。文章对比了传统面向对象编程与 LLM 辅助编程的差异,并提供了系统化的学习路径建议,涵盖提示词工程、应用开发及微调技术,旨在帮助开发者掌握 AIGC 时代的编程技能。

大型语言模型(LLM)的基本概念及其在自然语言处理中的应用。通过 Node.js 环境搭建,演示了如何使用 OpenAI SDK 调用 GPT 模型进行文本生成与解析。文章对比了传统面向对象编程与 LLM 辅助编程的差异,并提供了系统化的学习路径建议,涵盖提示词工程、应用开发及微调技术,旨在帮助开发者掌握 AIGC 时代的编程技能。

LLM(Large Language Model,大型语言模型)是一种非常强大的人工智能模型,特别擅长处理和生成自然语言文本。之所以被称为 LLM,是因为它通过深度学习技术,经过海量文本数据训练而成。它拥有庞大的数据库和优越的自然语言处理能力(NLP),能够理解并生成像人类一样连贯、复杂的语言表达。
今天我们将一起面向 LLM 编程,揭秘 AIGC(人工智能生成内容)在开发中的应用。
近年来,OpenAI 推出的 GPT 系列受到广泛关注。它是目前最知名的大型语言模型之一,在诸多 NLP(自然语言处理)任务上展现出了前所未有的性能。GPT 系列的大模型由 OpenAI 人工智能研究实验室开发。

OpenAI 在语言模型、机器学习技术、机器人技术等多个领域取得了显著成果。其中最著名的就是其开发的 GPT 系列,这些模型在生成文本、代码、甚至创意内容方面展现了强大的能力。
随着 GPT 的出现,AI 时代正式到来。国内也相继推出了自己的大模型,例如百度的文心一言、阿里的通义千问等,它们都提供了丰富的 API 接口,为开发者带来了极大的便利。
在 Node.js 中,我们可以通过命令 npm init -y 去初始化一个后端项目。npm 是 Node.js 的包管理器(Package Management),init 表示初始化,而 -y 是对初始化操作确认自动回答 Yes。
初始化完成后,会生成以下文件结构:

初始化后端项目会导入 node_modules(Node 模块文件)、package-lock.json 和 package.json(项目描述文件)。在编写后端服务时,通常都需要先进行此初始化操作。
执行 npm i openai 命令的目的是在 Node.js 项目中安装 OpenAI 的官方 npm 包。该命令会从 npm registry 查找名为 openai 的包,并将其下载到项目的 node_modules 目录中,同时在 package.json 文件的 dependencies 中添加相应的条目。
在 JavaScript 中,我们可以使用 require 将本地文件导入 index.js。
// console.log('后端服务启动了');
const OpenAI = require('openai');
// 实例化 OpenAI 配置
const client = new OpenAI({
// 凭证密钥,注意保护隐私,建议从环境变量读取
apiKey: 'sk-*******',
// 基础 URL,可根据实际服务商调整
baseURL: 'https://api.chatanywhere.tech/v1'
});
// 入口主函数
// main 函数内部会有异步任务 async + await
async function main() {
// 与 AI LLM chat 交互,从编程思维 -> AI 编程思维 -> AIGC -> AGI
// client 是 openai 对象,chat 聊天完成
// LLM 是在远程运行,需要 await
// `` 字符串模板用于构建提示词
const prompt = `
<tr class="item">
<td width="100" valign="top">
<a class="nbg" href="https://movie.douban.com/subject/35503073/" title="对你的想象">
<img src="https://img1.doubanio.com/view/photo/s_ratio_poster/public/p2905327559.webp" width="75" alt="对你的想象" class="">
</a>
</td>
<td valign="top">
<div class="pl2">
<a href="https://movie.douban.com/subject/35503073/" class="">
对你的想象
/ <span style="font-size:13px;">关于你的想法 / 概念中的你</span>
</a>
<p class="pl">2024-03-16(西南偏南电影节) / 2024-05-02(美国网络) / 安妮·海瑟薇 / 尼古拉斯·加利齐纳...</p>
<div class="star clearfix">
<span class="allstar30"></span>
<span class="rating_nums">5.9</span>
<span class="pl">(21308 人评价)</span>
</div>
</div>
</td>
</tr>
这是一段电影 HTML,请获取电影名(name),封面链接(picture),简介(info),评分(score),评论人数(commentsNumber)。请使用括号的单词作为属性名,以 JSON 的格式返回。
`;
const chatCompletion = await client.chat.completions.create({
model: 'gpt-3.5-turbo', // 适合聊天的模型,支持多种大模型
messages: [
{
role: 'user',
content: prompt
}
]
});
console.log(chatCompletion.choices);
}
main().catch(err => {
console.error('请求失败:', err);
});
通过以上代码,我们导入了 AI 模型 gpt-3.5-turbo 来协助工作。它会将我们传入的一段电影 HTML 解析,并以爬虫的方式返回结构化数据。面向 LLM 编程让我们省去了很多繁琐的解析步骤,能够快速高效地完成工作。

OOP(Object-Oriented Programming,面向对象编程)是很传统且经典的编程思想,它能帮助我们解决很多问题。借助大模型的力量,我们能够更快地结合这种编程思想去解决棘手的问题,比如爬虫这种问题,大模型能够帮助我们省去很多不必要的代码,快速地生成我们想要的结果。
传统的编程思想再加上大模型的编程方式是非常重要的。面向 LLM 编程的时代正在慢慢降临,我们要掌握好 AIGC 的力量。

为了帮助开发者更好地掌握大模型技术,以下整理了一份通用的学习路线图,涵盖从系统设计到应用开发的全过程:
从大模型系统设计入手,讲解大模型的主要方法和技术架构。
通过 Prompts 角度入手,学习如何更好地发挥模型的作用,优化输入输出质量。
借助云平台(如阿里云 PAI 等)构建电商领域虚拟试衣系统或其他行业应用案例。
以 LangChain 框架为例,构建物流行业咨询智能问答系统,实现 RAG(检索增强生成)。
借助大健康、新零售、新媒体等领域的数据,构建适合当前领域的大模型微调方案。
以 SD(Stable Diffusion)等多模态大模型为主,搭建文生图小程序案例,探索图像生成能力。
以大模型平台应用与开发为主,通过星火大模型、文心大模型等成熟模型构建大模型行业应用。
本文介绍了大型语言模型的基本概念及其在自然语言处理中的应用,并通过 Node.js 环境演示了如何使用 OpenAI SDK 调用 GPT 模型进行文本生成与解析。文章对比了传统面向对象编程与 LLM 辅助编程的差异,并提供了系统化的学习路径建议,旨在帮助开发者掌握 AIGC 时代的编程技能,提升开发效率。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online
JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online
使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online
Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online