AIGC详解:人工智能生成内容的先进技术与创新应用

释放双眼,带上耳机,听听看~!
了解AIGC(人工智能生成内容)的先进技术和创新应用,包括生成对抗网络、多模态技术等,探索AI系统生成内容的可能性和魅力。

前言

AIGC,全称Artificial Intelligence Generated Content,中文译为人工智能生成内容,是利用人工智能技术来自动生成文本、图像、音乐、视频、3D交互内容等多种形式内容的一种方法。它是继PGC(专业生成内容)和UGC(用户生成内容)之后的新型内容创作方式,代表了内容创作领域的一项重大变革。

AIGC涉及到一系列先进的人工智能技术,包括但不限于生成对抗网络(GANs)、CLIP、Transformer、Diffusion模型、预训练模型、多模态技术以及各种生成算法等。这些技术的融合与创新,使得AI系统能够基于大量的已有数据学习并识别模式,进而生成新的、创造性内容,并且能够在一定程度上理解和适应语言、图像、视频、音频等多种媒介形式,实现多模态内容的生成。

今天就让我们初识AIGC,一起领略它的魅力吧!

1.初始化

我们首先创建一个comment文件夹,在项目终端输入 npm init -y 指令

npm init -y 是一个在Node.js项目中常用的命令,用于快速初始化一个新的npm(Node包管理器)项目。这个命令会执行以下操作:

  1. 创建package.json文件:在当前目录下自动创建一个package.json文件,这个文件是Node.js项目的配置文件,用于存储项目的元数据(如名称、版本、描述、作者等)和项目依赖关系。
  2. 默认值:使用-y--yes选项,意味着你会接受所有npm初始化过程中的默认设置。没有这个选项时,npm会通过一系列提示让你手动填写项目信息,而加上-y后,npm会使用默认设置直接生成文件,跳过交互式提问环节,这对于快速创建原型或测试项目非常有用。

例如,默认设置可能包括:

  • name: 项目目录名
  • version: 默认为1.0.0
  • description: 空
  • mainindex.js
  • scripts: 只包含基本的脚本模板
  • keywords: 空数组
  • author: 用户的系统用户名
  • license: 默认为ISC

2.引入openai库

当你在命令行中输入 npm i openai 并执行这个命令时,npm(Node包管理器)会做以下几件事情来“引入”node_modules

  1. 搜索包: npm 首先会在npm注册中心搜索名为 openai 的包。如果找到了对应的包,它会获取该包的元数据,包括版本信息、依赖关系等。
  2. 下载包及依赖: 接着,npm 会下载 openai 包以及该包所依赖的所有其他包。这些下载的包都会被组织存放在项目的 node_modules 目录下。
  3. 解析依赖: 在下载过程中,npm 会解析包之间的依赖关系,确保所有必要的依赖都被安装,并处理版本兼容性问题,以避免版本冲突。
  4. 链接依赖: 安装完成后,npm 会在 node_modules 目录内创建一个或多个层级结构,将主包和其依赖项分别放置在相应的目录下。这样,Node.js在执行时能够根据require语句递归地查找依赖。
  5. 生成或更新 package-lock.json: npm 会生成或更新 package-lock.json 文件,记录确切安装的软件包版本和依赖树,以便将来能复现相同的安装环境。

简而言之,npm i openai 命令不仅下载并安装了名为 openai 的包(如果存在的话),还处理了它的所有依赖,并将它们全部组织在 node_modules 文件夹内,这是Node.js项目用来存储依赖的标准位置。这样做保证了项目的可移植性和依赖的隔离性,即不同项目可以依赖不同版本的相同包

接下来,我们的package.json将会是这个样子

AIGC详解:人工智能生成内容的先进技术与创新应用

这就显示我们安装成功啦!当然我们也会多以下文件/文件夹

AIGC详解:人工智能生成内容的先进技术与创新应用

3.引入一个名为openai的模块

const OpenAi = require('openai')

在Node.js环境中,const OpenAi = require('openai') 这行代码的作用是从openai模块导入一个对象,并将其赋值给常量OpenAi。这里假设openai是一个已经安装在你的项目中的npm包,它通常用于与OpenAI的API进行交互,比如访问GPT系列的语言模型、图像生成服务等。

通过这种方式导入后,你可以通过OpenAi这个对象来调用OpenAI API提供的各种方法和功能。例如,初始化客户端、发送文本到模型请求生成文本响应、管理引擎、处理文件等操作。使用这个模块,开发者可以构建集成OpenAI服务的应用程序,实现自然语言处理、内容创建、智能建议等多种功能。

4.实例化

const client = new OpenAi({
  // proxy 代理
  api_key: process.env.OPENAI_API_KEY,
  baseURL: 'https://api.chatanywhere.tech/v1'
})

因为这段代码稍微难理解,所以我们用通俗的语言讲解一下:

  1. api_key(API密钥) :想象一下,api_key就像是你家的门禁密码。当你住在一栋大楼里,想要进入楼内的时候,你需要输入正确的密码,门才会为你打开。同样地,在互联网的世界里,很多服务(比如云服务、API接口等)也需要验证你的身份,确保只有获得授权的人才能使用它们的功能。api_key就是这样的一个验证工具,它是一个特殊的、通常是随机生成的字符串,用来告诉服务器:“嘿,我是已经得到允许来使用你服务的那个用户。”这样,服务器就能识别并验证你的请求,而不会错把别人当成是你。
  2. baseURL(基础URL) :baseURL可以类比为一个大厦的地址。假设你想去朋友家玩,首先你需要知道他们家的大楼在哪里,这个地址就相当于baseURL。在编程中,当你想和某个API(比如天气预报API、地图服务API等)交流时,你需要知道这个API的“家”在哪里,也就是它的网络地址。baseURL就是这个初始的、最基本的地址部分,后面可能会加上具体的房间号(也就是API的端点endpoint),这样才能准确找到你想访问的具体服务。

5.关于需要隐藏于外界的密钥和node_modules

我们的密钥和node_modules一个由于机密性,还有一个由于内容太多并且可以让用户重新下载,因此都不必上传。

5.1 密钥

 api_key: process.env.OPENAI_API_KEY

这里我们本来是要输入一个具体获得的密钥(从github上),但是涉及机密性所以我们不予提交,因此我们新建一个.env文件,输入OPENAI_API_KEY=你拿到的openai密钥,然后 api_key: process.env.OPENAI_API_KEY在对象中,最后在

AIGC详解:人工智能生成内容的先进技术与创新应用
文件中输入.env即可。

那么为什么我们可以这样子操作呢?

我们同样要先引入一个库 npm i dotenv

这个时候的依赖

AIGC详解:人工智能生成内容的先进技术与创新应用

然后在项目首行输入

require('dotenv').config()

require('dotenv').config() 是一个Node.js中用来加载环境变量的函数,它来自于dotenv这个npm包。这个函数的主要用途是从一个名为.env的文件中读取键值对,并将它们设置为Node.js进程的环境变量。

.env 文件通常包含敏感信息和配置变量,如API密钥、数据库URLs、密码等,这些信息不适合直接写在源代码中。这样做可以保持代码库的清洁和安全,同时允许不同的环境(例如开发、测试、生产)使用不同的配置。

当你的应用启动时,通过调用require('dotenv').config(),它会查找当前目录下的.env文件,读取其中的内容,然后设置对应的环境变量。

只有这样我们的

 api_key: process.env.OPENAI_API_KEY

代码才能发挥作用,就是查找隐藏目录下的密钥。

5.2node_modules

为什么node_modules可以让看不见的用户自行恢复呢?

因为我们在项目描述文件里已经有了依赖。

AIGC详解:人工智能生成内容的先进技术与创新应用

不信我们可以删除node_modules,然后终端窗口输入
npm i就可以恢复了。

6.开始使用AI

6.1准备工作

let prompt = `
  判断一下用户的评论情感上是正面的还是负面的
  评论:买的银色版真的好看,一天就到了,晚上就开始拿起来玩系统很丝滑流畅,华为一如既往的好品质
  情感:正面
  评论:随意降价,不与保价,服务态度差
  情感:负面
  `
  • 首先定义了一个字符串prompt,里面包含了两个示例评论及其对应的情感标签(正面或负面),作为演示如何构造请求和期望的输出格式。
 let myPrompt = `
  ${prompt}
  评论:实话说,iphone越来越没有创新了,你买我不推荐,散了
  情感:
  `
  • 接着,定义了myPrompt字符串,这是实际要发送给AI模型处理的评论内容,其中情感标签留空,目的是让AI模型判断这条评论的情感倾向。
  const chatCompletion = await client.chat.completions.create({
    // 聊天的上下文 多轮
    messages: [{ role: 'user', content: myPrompt }],
    // 模型
    model: 'gpt-3.5-turbo',
    n: 1
  })
  • 通过一个名为client的对象(这里是之前初始化好的OpenAI API客户端实例)调用.chat.completions.create(...)方法。这个方法用于与OpenAI的聊天模型交互,获取模型对于提供的消息的响应。

  • 请求体中指定了几个关键参数:

    • messages: 是一个对象数组,每个对象代表一次消息交互。这里只有一个对象,表示用户(role: ‘user’)发送了一条内容为myPrompt的消息。
    • model: 指定使用的模型版本,这里是gpt-3.5-turbo,是OpenAI的一个较新且功能强大的聊天模型。
    • n: 表示需要生成的响应数量,这里设置为1,即只需要模型生成一个回答。

6.2执行

 console.log(chatCompletion.choices[0])

获取并打印结果: 使用await关键字等待API调用完成,然后从返回的chatCompletion对象中提取第一个(也是唯一一个,因为n: 1)选择(choices)的响应内容,并打印出来。这个响应理论上会包含AI模型对于myPrompt中评论的情感倾向判断。

我们再输入这句话,然后将全部内容封装于异步函数( 异步函数定义async function main() {...} 定义了一个名为main的异步函数。异步函数可以让JavaScript在等待某些操作(比如网络请求)完成时,不会阻塞其他任务的执行。)之中,最后调用函数,就可以看见这样子的结果。

AIGC详解:人工智能生成内容的先进技术与创新应用

当你可以拿到这个结果的时候,恭喜你,已经是一个初级的AIGC全栈工程师啦!

7.完整代码

// 引入本地(node_mdoues)openai 依赖node-fetch等
// package.json 项目描述文件 dependencies
// 前端 + 后端 + ai
// 类 require 关键字
//AI全栈开发
// prompt -> GPT-AI-FREE -> openai
// 进程的环境变量
// 系统环境变量
// 
require('dotenv').config()
const OpenAi = require('openai')
// 系统环境变量
// console.log(process.env)
// 实例化
const client = new OpenAi({
  // proxy 代理
  api_key: process.env.OPENAI_API_KEY,
  baseURL: 'https://api.chatanywhere.tech/v1'
})
async function main() {
  let prompt = `
  判断一下用户的评论情感上是正面的还是负面的
  评论:买的银色版真的好看,一天就到了,晚上就开始拿起来玩系统很丝滑流畅,华为一如既往的好品质
  情感:正面
  评论:随意降价,不与保价,服务态度差
  情感:负面
  `
  let myPrompt = `
  ${prompt}
  评论:实话说,iphone越来越没有创新了,你买我不推荐,散了
  情感:
  `
  // client openai实例 chat 聊天的方式
  // openai 生成正面或者负面 ,llm大模型来完成
  // ai 自然语言处理 gc 生成内容
  const chatCompletion = await client.chat.completions.create({
    // 聊天的上下文 多轮
    messages: [{ role: 'user', content: myPrompt }],
    // 模型
    model: 'gpt-3.5-turbo',
    n: 1
  })
  console.log(chatCompletion.choices[0]);
}

main()


本网站的内容主要来自互联网上的各种资源,仅供参考和信息分享之用,不代表本网站拥有相关版权或知识产权。如您认为内容侵犯您的权益,请联系我们,我们将尽快采取行动,包括删除或更正。
AI教程

如何在本地部署Coze工作流?一步步操作指南

2024-7-29 14:24:00

AI教程

302.AI:全球顶级AI超市,按需付费,零月费,零门槛使用各种类型AI

2024-7-30 7:17:00

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索