从零上手!Node.js 快速搭建生成式 AI 后端项目|密钥安全 + 完整可运行代码

在 AI 技术飞速发展的当下,基于 Generative AI(生成式人工智能)的应用开发成为开发者的重要方向。本文将结合英伟达证书相关技术栈,详细讲解如何基于 Node.js 搭建规范、安全的 Generative AI 后端项目,涵盖环境配置、依赖管理、异步编程等核心环节,并提供完整的代码示例。

一、项目初始化与依赖管理

1. 初始化 Node.js 项目

首先需要将项目初始化为标准的 Node.js 后端项目,执行以下命令生成package.json文件:

bash

运行

csharp 复制代码
npm init -y

2. 高效的包管理工具:pnpm

传统npm安装依赖时会在每个项目重复下载,占用大量磁盘空间。pnpm通过软链接复用依赖,仅需安装一次即可在多个项目中使用,安装方式如下:

bash

运行

复制代码
npm install -g pnpm

3. 核心依赖安装

开发 Generative AI 项目需安装openai(行业事实标准的 AI 交互模块)和dotenv(环境变量读取模块),使用pnpm安装:

bash

运行

css 复制代码
pnpm i openai dotenv

二、安全管理 API 密钥

API Key 是访问 AI 服务的核心凭证,绝对不能提交到代码仓库,需通过环境变量安全管理。

1. 创建.gitignore 文件

在项目根目录创建.gitignore文件,声明忽略.env文件(环境变量配置文件),避免敏感信息泄露:

plaintext

bash 复制代码
# .gitignore
.env
node_modules/

2. 配置.env 文件

在项目根目录创建.env文件,按KEY=VALUE(键大写)的格式配置 API 密钥和服务地址,示例如下:

env

ini 复制代码
# .env
DEEPSEEK_API_KEY="sk-7d77d7f6d20f4798b49a0891bfeb9774"
DEEPSEEK_BASE_URL=https://api.deepseek.com/v1

3. 读取环境变量

dotenv库默认读取根目录的.env文件,并将变量注入process(Node.js 全局进程对象)。在代码中只需引入dotenv即可自动加载:

javascript

运行

arduino 复制代码
// 加载环境变量
import dotenv from 'dotenv';
dotenv.config();

// 验证环境变量是否加载成功
console.log('API Key加载状态:', !!process.env.DEEPSEEK_API_KEY);
console.log('API地址:', process.env.DEEPSEEK_BASE_URL);

三、模块化配置与开发效率优化

1. 启用 ES6 模块化

Node.js 默认使用 CommonJS 模块化方案,若想使用 ES6 的import/export语法,有两种方式:

  • 将文件后缀改为.mjs
  • package.json中添加"type": "module"(推荐,可保留.js后缀):

json

json 复制代码
// package.json
{
  "type": "module",
  "name": "generative-ai-demo",
  "version": "1.0.0",
  "main": "index.js"
}

2. 自动重启工具:nodemon

开发过程中修改代码后需手动重启进程,nodemon可监听文件变化并自动重启,提升开发效率。安装与使用方式:

bash

运行

bash 复制代码
# 全局安装nodemon
npm install -g nodemon

# 启动项目(以index.js为例)
nodemon index.js

四、核心业务代码实现(Chat Completion API 调用)

Generative AI 项目核心是调用 AI 的对话补全接口,由于 API 请求是异步操作,需使用 ES8 新增的async/await语法控制执行流程,保证代码可读性和执行顺序。

完整代码示例(index.js)

javascript

运行

javascript 复制代码
// 1. 加载环境变量
import dotenv from 'dotenv';
import OpenAI from 'openai';
dotenv.config();

// 2. 实例化OpenAI客户端(适配DeepSeek服务)
const client = new OpenAI({
  apiKey: process.env.DEEPSEEK_API_KEY,
  baseURL: process.env.DEEPSEEK_BASE_URL
});

// 3. 核心对话函数(异步函数)
async function chatWithAI(prompt) {
  try {
    // 调用Chat Completion API(异步操作,await卡住流程等待结果)
    const completion = await client.chat.completions.create({
      model: "deepseek-chat", // DeepSeek对话模型
      messages: [{ role: "user", content: prompt }],
      temperature: 0.7, // 生成内容的随机性
    });

    // 返回AI回复内容
    return completion.choices[0].message.content;
  } catch (error) {
    console.error('API调用失败:', error.message);
    throw error;
  }
}

// 4. 入口函数(单点入口,规范项目执行流程)
async function main() {
  try {
    const userPrompt = "请解释Generative AI的核心原理";
    const aiResponse = await chatWithAI(userPrompt);
    console.log('用户提问:', userPrompt);
    console.log('AI回复:', aiResponse);
  } catch (error) {
    console.error('程序执行失败:', error);
  }
}

// 执行入口函数
main();

五、AIGC 工程化开发核心总结

  1. 项目类型:AI/Agent 项目几乎都是后端项目,需按 Node.js 后端规范初始化;
  2. 依赖管理:优先使用 pnpm 提升安装效率、节省磁盘空间;
  3. 安全规范:API Key 必须通过.env 文件管理,且.gitignore 忽略.env;
  4. 异步控制:利用 async/await 规范异步代码执行顺序,提升可读性;
  5. 开发效率:使用 nodemon 自动重启进程,ES6 模块化简化代码结构;
  6. 入口规范 :采用main单点入口函数 / 文件,统一项目执行入口。

通过以上工程化实践,可搭建出规范、安全、高效的 Generative AI 后端项目,既保证了敏感信息的安全,又提升了开发和维护效率。

相关推荐
陈_杨1 小时前
鸿蒙APP开发-带你开发锻艺册APP的材料清单功能
前端·javascript
xixixin_1 小时前
Promise.all 和 Promise.allSettled 详解
前端·javascript·vue.js
暗冰ཏོ1 小时前
前端数据大屏开发完整指南:Vue3 + ECharts 自适应可视化实战
前端·javascript·echarts·数据大屏·大屏端
砍材农夫1 小时前
物联网实战:Spring Boot MQTT | 模拟器Paho客户端sdk入门
后端
只一1 小时前
零基础搭建你的专属AI后端:从环境配置到异步魔法
后端
陈_杨1 小时前
鸿蒙APP开发-带你了解单块酷APP参数管理的功能
前端·javascript
moMo1 小时前
# 从重置样式到 BEM 命名:写一个微信的按钮
前端·css
2301_815645381 小时前
saas 一面
前端·面经
无风听海1 小时前
OAuth 2.0 Scope 的使用与设计规划
前端