Node.js AI项目榜单:大模型API工程化实战

2026-06-08阅读 0热度 0
大模型

从零搭建 Node.js AI 项目:调用大模型 API 的工程化实践

先说一个核心判断:现在市面上几乎所有的 AI 项目和 Agent 项目,本质上都是后端项目。不管你是调用 DeepSeek、ChatGPT 还是 Claude,技术路径其实高度一致——项目初始化、安装依赖、配置密钥、调用 API,这几个步骤一个都不能少。

从零搭建 Node.js AI 项目:调用大模型 API 的工程化实践

这篇文章就用 DeepSeek 的 API 来做个完整示范,带你走一遍规范的 Node.js AI 项目搭建全流程。


一、项目初始化

1.1 创建项目

mkdir ai-demo && cd ai-demo
npm init -y

npm init -y 这一步会生成 package.json,它是 Node.js 项目的核心配置文件,所有项目信息和依赖关系都记录在这里。

1.2 启用 ESM 模块

需要在 package.json 中添加 "type": "module"

{
  "name": "ai-demo",
  "version": "1.0.0",
  "type": "module",
  "dependencies": {
    "openai": "^6.41.0",
    "dotenv": "^17.4.2"
  }
}

为什么要多这一步?

Ja vaScript 的模块化方案走了很长一段路:

CommonJS (CJS)  →  ES Modules (ESM)
require/module     import/export

ESM 是 ES6 时代推出的现代化模块方案,用的是 import/export 语法。不过 Node.js 默认还是 CommonJS,所以得靠 "type": "module" 来显式声明一下——让 Node 知道,这个项目要用 ESM。


二、安装依赖

2.1 为什么推荐 pnpm?

npm install -g pnpm
对比项npmpnpm
安装速度较慢快(软链接机制)
磁盘占用每个项目各存一份全局存储,项目间共享
适合场景小型项目多项目/monorepo

pnpm 真正的杀手锏是软链接:同一个包只安装一次,不同项目之间通过软链接引用。如果平时维护的项目比较多,或者在做 monorepo 架构,这能省下不少磁盘空间。

2.2 安装具体的依赖

pnpm i openai dotenv
  • openai:OpenAI 官方 SDK,现在基本成了大模型 API 调用的事实标准,DeepSeek、Claude 这些模型都兼容这套接口。
  • dotenv:负责从 .env 文件读取环境变量,后面会详细说。

三、API Key 安全管理

3.1 为什么不能把 API Key 写死在代码里?

API Key 属于敏感信息,如果直接硬编码在代码中并提交到 Git 仓库,密钥泄露只是时间问题。英伟达这类公司在证书和密钥管理方面有着非常严格的规范,应该照着那个标准来。

3.2 正确的做法:.env 文件

在项目根目录创建 .env 文件:

DEEPSEEK_API_KEY=your-api-key-here
DEEPSEEK_API_URL=

.env 文件的格式要求

  • 每行定义一个环境变量
  • 格式:KEY=VALUE(KEY 通常大写)
  • 不要加多余的空格

3.3 .gitignore 必须忽略 .env

.gitignore 中添加:

node_modules/
.env

这样一来,.env 文件就只存在于本地开发环境,不会出现在远程仓库中。

3.4 dotenv 如何读取环境变量

import dotenv from 'dotenv'dotenv.config()console.log(process.env.DEEPSEEK_API_KEY)

整个流程其实很简洁

.env 文件 → dotenv.config() → process.env 对象 → 代码中使用

四、理解 process 全局对象

4.1 process 到底是什么?

process 是 Node.js 的全局对象,简单说,它代表当前正在运行的 Node.js 进程。

node index.mjs  →  启动一个进程  →  process 就是这个进程的对象

顺便提一句,进程是操作系统的核心概念——它是分配内存、CPU、IO 等资源的最小单位。

4.2 process.env 有什么用?

process.env 是一个对象,包含了当前进程的所有环境变量:

console.log(process.env)              // 所有环境变量
console.log(process.env.DEEPSEEK_API_KEY)  // 特定变量

无论是系统自带的全局环境变量,还是 .env 文件中定义的变量,最终都会出现在 process.env 里。


五、调用大模型 API

5.1 实例化 OpenAI 客户端

import dotenv from 'dotenv'
import { OpenAI } from 'openai'dotenv.config()const client = new OpenAI({
    apiKey: process.env.DEEPSEEK_API_KEY,
    baseURL: process.env.DEEPSEEK_API_URL
})

5.2 用 async/await 控制异步流程

这部分是整篇文章的核心重点。API 请求是典型的异步操作,必须借助 async/await 来保证执行顺序符合预期。

const main = async () => {
    console.log('程序开始运行')    // await 会"卡住"这里,等 API 返回结果
    const result = await client.chat.completions.create({
        model: 'deepseek-chat',
        messages: [{ role: 'user', content: 'hello' }]
    })    console.log(result.choices[0].message.content)
    console.log('程序运行结束')
}main()

5.3 为什么必须用 async/await?

Ja vaScript 是单线程语言,这意味着代码的编写顺序和执行顺序有时候并不一致:

// 没有 async/await 的情况
console.log('1')
const result = client.chat.completions.create({...})  // 异步,不等待
console.log('3')  // 立即执行,不会等 API 返回
// 有 async/await 的情况
console.log('1')
const result = await client.chat.completions.create({...})  // 等待完成
console.log('3')  // API 返回后才执行

async/await 是 ES8 新增的异步编程语法,它让异步代码写起来跟同步代码一样直观,可读性提升非常明显。

概念说明
async修饰函数,表示该函数是异步的
await只能在 async 函数中使用,等待异步操作完成
返回值async 函数返回 Promise

5.4 完整的项目入口文件

// main.mjs - 单点入口文件
import dotenv from 'dotenv'
import { OpenAI } from 'openai'dotenv.config()const client = new OpenAI({
    apiKey: process.env.DEEPSEEK_API_KEY,
    baseURL: process.env.DEEPSEEK_API_URL
})const main = async () => {
    console.log('程序开始运行')    const result = await client.chat.completions.create({
        model: 'deepseek-chat',
        messages: [{ role: 'user', content: 'hello' }]
    })    console.log(result.choices[0].message.content)
    console.log('程序运行结束')
}main()

六、使用 nodemon 提升开发效率

开发时每次修改代码都要手动重启,体验确实不好。nodemon 可以监听文件变化,自动重启程序:

npm install -g nodemon
nodemon index.mjs

改完代码保存后,nodemon 会自动检测变化并重启,开发体验直接上个台阶。


七、项目结构总结

ai-demo/
├── node_modules/       # 依赖包(pnpm 软链接)
├── .env                # 环境变量(API Key)️ 不提交到 Git
├── .gitignore          # Git 忽略配置
├── package.json        # 项目配置
├── pnpm-lock.yaml      # 依赖锁定文件
└── main.mjs            # 单点入口文件

八、AIGC 项目开发流程总结

搭建一个 AI 项目的标准路径:

1. npm init -y          → 初始化项目
2. 添加 type: "module"  → 启用 ESM
3. pnpm i openai dotenv → 安装依赖
4. 创建 .env 文件       → 配置 API Key
5. 配置 .gitignore      → 忽略敏感文件
6. 编写 main.mjs        → 单点入口
7. async/await 调用 API → 控制异步流程
8. nodemon 监听重启     → 提升开发效率

这套流程跑通之后,无论换成 DeepSeek、ChatGPT 还是 Claude,都能快速上手。


九、核心知识点速查

知识点说明
ESMES6 模块化,import/export,需 "type":"module"
pnpm软链接机制,节省磁盘,比 npm 更快
dotenv.env 文件读取环境变量到 process.env
processNode.js 全局对象,代表当前进程
async/awaitES8 异步语法,让异步代码像同步一样可读
OpenAI SDK大模型 API 调用的事实标准,兼容多家模型
nodemon监听文件变化,自动重启 Node.js 程序

标签Node.js AI 大模型 OpenAI DeepSeek AIGC 工程化

免责声明

本网站新闻资讯均来自公开渠道,力求准确但不保证绝对无误,内容观点仅代表作者本人,与本站无关。若涉及侵权,请联系我们处理。本站保留对声明的修改权,最终解释权归本站所有。

相关阅读

更多
欢迎回来 登录或注册后,可保存提示词和历史记录
登录后可同步收藏、历史记录和常用模板
注册即表示同意服务条款与隐私政策