Prompt 做 NLP 任务开发|ES6 + 模块化

📌 前言

在 AI 快速普及的当下,前端开发者也能独立搭建文本智能处理系统。本文结合 ES6 标准语法 + ESM 模块化工程思想,讲解如何通过 Prompt 快速开发各类 NLP 文本任务,无需复杂机器学习算法,即可在短时间内实现专业级文本推理能力。

⚙️ 一、ES6 语法特性

��ES6 是 JavaScript 2015 年正式推出的重大版本更新,目的是补足 JS 早期的语法缺陷,让 JS 具备开发大型、复杂、企业级项目的能力。也是我们搭建 NLP 工程的基础语法支撑。

�� 1. let / const 块级变量声明

✅ 彻底解决 var 的变量提升、变量泄露、作用域混乱等历史问题,原生支持块级作用域

  • let、const 不允许重复声明变量
  • const 声明的简单数据类型 不允许重新赋值
  • const 声明的复杂数据类型(对象/数组)可以修改内部属性 ,但不允许变更内存指向地址
�� 2. 解构赋值(数组、对象)

💯 解构赋值是 ES6 极具优势的语法,可直接从对象、数组中提取数据生成独立变量,代码更简洁、层级更清晰、执行性能优于传统取值方式

js 复制代码
// ES6 对象快速解构赋值:直接提取对象属性生成变量
let { name, age } = {"name": "詹姆斯", "age": 20}
// 打印解构后的变量
console.log(name, age);
// 输出结果:詹姆斯 20

// 定义常规对象数据
let obj = { "name": "姚明", "city": "上海" };

// ES5 传统取值方式:代码冗余
let name = obj.name; 
let city = obj.city;

// ES6核心优势:适配大型企业级项目开发
// 解构赋值:直接从对象提取属性为变量,代码优雅简洁、性能更优
let { name, city } = obj;
console.log(name, city);
// 解构赋值取值性能优于传统 obj.xxx 取值方式
// 输出结果:姚明 上海
拓展运算符 ...(rest / spread)

💡 是 ES6 极简处理数组、集合数据的核心语法,分为两种能力:

  • rest 收集:接收剩余所有数据,聚合为数组
js 复制代码
// 数组解构 + rest收集运算符:按顺序解构,剩余元素统一收集
let [coach, ...players] = ['范甘迪', '姚明', '麦迪', '穆托姆博', '弗朗西斯'];
// 打印解构结果
console.log(coach, players);
// 输出:范甘迪 [ '姚明', '麦迪', '穆托姆博', '弗朗西斯' ]
  • spread 展开:将数组、对象结构展开拆分
js 复制代码
// 解构获取第二组球队教练与队员
let [hrCoach, ...hrPlayers] = ['杰克逊', '科比', '费舍尔', '加索尔'];
// spread展开运算符:快速合并两个数组,替代concat方法
let allPlayers = [...players, ...hrPlayers]; 
console.log(allPlayers);
// 输出合并后的完整队员数组
js 复制代码
// 对象解构:快速提取对象属性
let obj = { "name": "姚明", "city": "上海" };
let { name, city } = obj;

// 数组解构 + rest收集剩余元素
let [coach, ...players] = ['范甘迪', '姚明', '麦迪', '穆托姆博', '弗朗西斯'];
let [hrCoach, ...hrPlayers] = ['杰克逊', '科比', '费舍尔', '加索尔'];

// spread展开:极简语法快速合并多个数组,性能更优
let allPlayers = [...players, ...hrPlayers];
console.log(allPlayers);
�� 3. ESM 模块化语法

📦 ES6 原生支持模块化体系,是工程化、解耦开发的核心基础,主要包含三种写法:

  • import ... from 导入模块
js 复制代码
// 导入LLM客户端构造类,用于初始化AI请求实例
import { OpenAI } from "openai";  
// 导入环境变量配置工具,用于读取私密配置
import dotenv from 'dotenv';
  • export default 默认导出
js 复制代码
// 默认导出:一个模块仅允许唯一默认导出,用于导出核心实例
export default client;//默认导出 只能有一个
  • export 按需导出
js 复制代码
// 按需导出:可导出多个变量/函数,支持模块按需引入
// export const a = 2;// 直接导出
// export const b = 3;

🧩 🔹 二、前端工程化模块化思想

🚀 大型项目开发不能把所有代码写在同一个文件中,会导致代码臃肿、难以维护、无法复用。通过 ES6 模块化,可以实现代码解耦、功能拆分、按需引入、统一管理

🌟 1. 模块化带来的优势
  • 结构分层清晰,极大提升代码可读性
  • 功能独立拆分,便于后期迭代维护、问题排查
  • 通用逻辑封装成模块,支持多处复用
�� 2. NLP 项目标准文件结构

🎯 针对 Prompt NLP 文本任务,我们采用标准化工程分层:

  • main.mjs:全局唯一入口文件,统一处理路由分发、接口鉴权、任务调度
  • client.mjs:封装 AI 请求客户端对象,统一管理请求配置
  • completion.mjs:封装所有 NLP 文本处理逻辑与任务函数
⚡ 3. 模块引入方式

🔧 支持默认导出与按需导出混合导入,适配复杂项目开发场景:

js 复制代码
// main.mjs 项目统一入口文件
// 导入client默认实例、自定义变量a/b
import client, { a, b } from './client.mjs'
// 按需导入NLP核心推理函数,用于执行文本AI任务
import { getCompletion } from "./completions.mjs";
// 打印客户端实例,验证模块导入成功
console.log(client);

如:

completions.mjs------ 通用的调用函数
js 复制代码
// 导入封装好的AI客户端实例
import client  from "./client.mjs";

/**
 * @description 通用文本推理函数,接收Prompt指令,返回AI处理结果
 * @param {String} Prompt - 自定义AI提示词指令
 * @returns {String} AI文本推理结果
 */
export async function getCompletion(Prompt){
    // 调用大模型接口,发起文本对话请求
    const response =await client.chat.completions.create({
        // 读取环境变量配置的模型名称
        model:process.env.DEEPSEEK_MODEL,
        // 组装用户对话消息
        messages:[
            {role:'user',content:Prompt}
        ]
    });
    // 返回大模型处理后的文本内容
    return response.choices[0].message.content;
}

// 预留AI图片生成函数接口
export async function  getImage(Prompt) {
    
}
client.mjs------ 封装 LLM 客户端
js 复制代码
// 导入大模型客户端构造方法
import { OpenAI } from "openai";  
// 导入环境变量配置工具
import dotenv from 'dotenv';
// 加载.env文件中的私密配置
dotenv.config();

// 初始化LLM客户端实例,统一管理请求配置
const client = new OpenAI({
    // 读取密钥
    apiKey :process.env.DEEPSEEK_API_KEY,
    // 读取模型接口地址
    baseURL:process.env.DEEPSEEK_API_BASE_URL,
});

// 默认导出客户端实例,供全局项目调用
export default client;
main.mjs
js 复制代码
// 导入NLP核心推理函数
import { getCompletion } from "./completions.mjs";

// 主执行函数
async function main() {
  // 业务场景:前端接入LLM大模型,实现NLP文本智能处理
  // 测试文本:电商产品用户评论
  const lamp_review_zh = '我需要一盏漂亮的卧室灯,这款灯具有额外的储物功能,价格也不算太高。\
  我很快就收到了它。在运输过程中,我们的灯绳断了,但是公司很乐意寄送了一个新的。\
  几天后就收到了。这款灯很容易组装。我发现少了一个零件,于是联系了他们的客服,他们很快就给我寄来了缺失的零件!\
  在我看来,Lumina 是一家非常关心顾客和产品的优秀公司!';

  // 自定义Prompt指令:实现文本情感分类NLP任务
   const prompt = `
   以下用三个反引号分隔的产品评论的情感是什么?
   评论文本:```${lamp_review_zh}```
   `;
  // 调用AI函数,执行文本推理
  const response = await getCompletion(prompt);
  // 打印最终NLP处理结果
  console.log(response);
}
// 启动执行主函数
main();

🤖 🔹 三、Prompt 实现主流 NLP 文本任务

�� 传统 NLP 系统搭建,需要机器学习基础、模型训练、数据调优,周期长达数天甚至数周。而基于 Prompt 工程化,仅需简单指令配置,即可快速搭建完整文本推理能力,开发门槛极低、效率极高。

❤️ 1. 情感分类(sentiment analysis)

📊 对文本情绪进行自动判断,输出三类结果:正面、负面、中性。广泛应用于电商评论分析、用户舆情监控、客服情绪预警、产品质量后台分析等场景。

Prompt

js 复制代码
// 基础情感识别:判断评论整体情感倾向
const prompt = `
   以下用三个反引号分隔的产品评论的情感是什么?
   评论文本:```${lamp_review_zh}```
   `
js 复制代码
// 限定输出格式:仅返回正面/负面,结果更规整
const prompt = `
   以下用三个反引号分隔的产品评论的情感是什么?
   用一个单词回答: 正面 或 负面
   评论文本: ```${lamp_review_zh} ```
   `
js 复制代码
// 精细化情感提取:多维度情感标签输出
const prompt = `
   识别以下用三个反引号分隔的产品评论的作者表达的情感。
   包含不超过5个项目。
   将答案格式化为以逗号分隔的单词列表。
   评论文本: ```${lamp_review_zh} ```
   `

// 精准情绪判断:识别用户是否存在愤怒情绪
const prompt = `
   以下用三个反引号分隔的产品评论是否表达了愤怒?
   给出是或否的答案。
   `
�� 2. 信息提取(information extraction)

📋 从无序、冗长的自然文本中,自动抓取关键实体、关键字段、核心业务信息,替代人工筛选,提升数据整理效率。

js 复制代码
// 基础信息提取:提取商品、品牌信息,固定JSON格式输出
 const prompt = `
   从评论文本中识别以下项目:
   - 评论者购买的商品
   - 制造该商品的公司
   评论文本用三个反引号分隔。将你的响应格式以"物品(product)"和
  "品牌(brand)"为键的JSON 对象。
   如果信息不存在, 请使用**未知**作为值。
   评论文本: ```${lamp_review_zh} ```
  `
js 复制代码
// 多维度信息提取:同时提取情感、情绪、商品、品牌
const prompt =`
    从评论文本中识别以下项目:
    - 情绪(正面或负面)
    - 是否表达了愤怒(是或否)
    - 评论者购买的商品
    - 制造该商品的公司
    评论文本用三个反引号分隔。将你的响应格式化为JSON对象,以"sentiment"、"anger"、"product"、
    "brand"为键。
    如果信息不存在, 请使用**未知**作为值。
    让你的回应尽可能简短。
    将anger 值格式化为布尔值
    评论文本: ```${lamp_review_zh} ```
    `
🏷️ 3. 主题推断

📌 自动识别整篇文本的核心主旨,归纳内容主题,生成分类标签,用于内容归档、文章归类、舆情主题统计。

js 复制代码
// 文本主题归纳:自动提取文本核心主题标签
const prompt =`
  确定一下给定文本中讨论的五个主题
  每个主题用1-2单词概括。
  输出时用逗号分隔。
  给定文本:${story_zh}
  `
✍️ 4. 文本总结(summarization)

�� 对长段落、长文章进行智能精简,保留核心关键信息、剔除冗余内容,非常适合管理层、行政岗位、内容编辑日常处理大量文本资料。

同一文本,对prompt进行适当修改,可以聚焦不同地方

js 复制代码
// 通用文本总结:全局精简概括
const prompt =`
 你的任务是从电商网站上生成一个产品评论的简单摘要。
 请对三个反引号之间的评论文本进行概括,最多30个词汇。
 评论文本:```${prod_review_zh}```
 `

// 定向总结:聚焦产品运输维度
 const prompt =`
 你的任务是从电商网站上生成一个产品评论的简单摘要。
 请对三个反引号之间的评论文本进行概括,最多30个词汇,并且聚焦在产品运输上。
 评论文本:```${prod_review_zh}```
 `

// 定向总结:聚焦产品价格与质量维度
 const prompt =`
 你的任务是从电商网站上生成一个产品评论的简单摘要。
 请对三个反引号之间的评论文本进行概括,最多30个词汇。
 并且聚焦在产品价格和质量上。
 评论文本:```${prod_review_zh}```
`

处理多条评论文本

循环批量处理

js 复制代码
// 定义多条评论数组,实现批量AI总结
const reviews =[review_1,review_2,review_3,review_4];
// 循环遍历所有评论,批量执行NLP总结任务
for(let review of reviews)
{
    // 单条文本总结Prompt
    const prompt=`
    你的任务是从电子商务网站上的产品评论中提取相关信息。
    请对三个反引号之间的评论文本进行概括,最多20个字符。
    评论文本:```${review}```
    `
    // 调用AI接口执行总结
    const response =await getCompletion(prompt);
    // 打印单条总结结果
    console.log(response,'\n');
}

💎 🔹 四、开发价值总结

🌟 借助 ES6 模块化规范搭建工程结构,结合 Prompt 快速调用 AI 能力,几分钟即可完成一套专业级 NLP 文本推理系统。彻底打破传统 AI 开发的技术壁垒,让普通前端开发者也能低成本、高效率实现智能文本处理业务。

📝 全文核心总结

  • ✅ 核心语法基础:详细讲解 ES6 企业级开发核心特性,包含 let/const 块级变量声明、rest/spread 拓展运算符、数组与对象解构赋值、ESM 原生模块化语法,搭配实操代码,简洁易懂、实用性强。
  • ✅ 工程化模块化思想:依托 ESM 规范实现代码解耦与复用,标准化 NLP 项目目录,划分 main.mjs、client.mjs、completion.mjs 三大核心文件,各司其职,解决传统代码臃肿、难维护、难复用的问题。
  • ✅ 四大主流 NLP 能力:基于 Prompt 可快速落地各类文本智能任务,包含情感分类、信息提取、主题推断、文本总结,覆盖办公、电商、舆情监控等多类业务场景。
  • ✅ 开发模式核心优势:颠覆传统机器学习繁琐的训练、调优流程,无需专业 AI 功底,仅靠 Prompt 工程化配置,数分钟即可搭建完整文本推理系统,大幅降低 AI 开发门槛,高效轻量化。

🏷️ 掘金标签

JavaScriptES6模块化PromptNLPAI开发

相关推荐
龙侠九重天1 小时前
C# 构建 AI Agent 系统 — 我的实践笔记
开发语言·人工智能·语言模型·自然语言处理·大模型·agent·智能体
sugar__salt2 小时前
基于Prompt的NLP项目实战:ES6模块化落地开发指南
javascript·自然语言处理·prompt·es6
meilindehuzi_a2 小时前
掌握 ES6 核心语法与大模型(NLP)项目工程化搭建指南
前端·自然语言处理·es6
晚笙coding2 小时前
从零讲透 LangChain 提示词模板:不只是 Prompt,而是“可复用的 AI 指令工厂”
人工智能·langchain·prompt
张哈大2 小时前
MCP:重塑AI工具调用的统一标准,告别重复造轮子的时代
人工智能·python·ai·prompt
大模型最新论文速读3 小时前
StreamMA:把流式输出应用到多智能体系统
论文阅读·人工智能·深度学习·机器学习·自然语言处理
Hello_WOAIAI13 小时前
还在手打Prompt?这份2025最新AI绘画关键词+教程+报告资料包直接拿走
人工智能·ai作画·prompt
大模型最新论文速读18 小时前
06-05 · LLM 最新论文速览
论文阅读·人工智能·深度学习·机器学习·自然语言处理
AI人工智能+20 小时前
一种基于深度学习的端到端户口本识别技术,通过多阶段神经网络架构实现高精度信息提取
人工智能·深度学习·计算机视觉·自然语言处理·ocr