本文将为你介绍如何结合 OpenAI API,生成图像的文本描述,并展示完整的实现步骤。#### 1. 环境准备
在开始编写代码之前,你需要准备好以下环境:
1. 初始化 Node.js 项目与环境配置
在开始编写代码之前,首先需要初始化一个后端项目,并安装必要的依赖。以下是项目初始化和依赖安装的步骤:
1.1 初始化项目
首先,通过 npm init -y 创建一个新的 Node.js 项目:
npm init -y
这条命令会在项目目录下生成一个 package.json 文件,用于管理项目的依赖和配置。
1.2 安装 OpenAI SDK
OpenAI 提供了一个官方的 Node.js SDK,帮助开发者轻松与 API 进行交互。你可以通过以下命令安装该 SDK:
npm install openai
这个命令会将 OpenAI SDK 安装到当前项目中,并把依赖添加到 package.json 中。
1.3 使用 pnpm 管理依赖(可选)
pnpm 是一种高效的包管理器,相比于传统的 npm,pnpm 通过软链接避免重复安装,节省空间并提高安装速度。他可以避免全局安装导致的变量污染。你可以全局安装 pnpm,然后在项目中使用它:
npm install -g pnpm
pnpm install
pnpm 会通过软链接的方式管理依赖,避免重复安装,同时提高效率并减少磁盘占用。
2. 编写主程序 main.mjs
在编写代码时,我们建议创建一个 main.mjs 文件作为主程序的入口点。.mjs 是支持 ES6 模块的文件扩展名,在这个文件中,你将使用 import 语法导入 OpenAI SDK 和dotenv等其他必要的模块。
2.1 设置 OpenAI API 密钥
首先,确保你已经在 OpenAI 官网申请了一个 API 密钥。为了保证 API 密钥的安全,避免直接将其提交到 GitHub,推荐使用 .env 文件或环境变量来存储 API 密钥。
# .env
OPENAI_API_KEY=your_openai_api_key
然后在代码中通过 dotenv 包来读取这个密钥:
npm install dotenv
3. 编写生成图像描述的代码
接下来,我们将编写一个简单的 Node.js 应用程序,调用 OpenAI API 来生成图像描述。以下是一个基础代码示例:
import OpenAI from 'openai';
import dotenv from 'dotenv';
dotenv.config();
// 实例化 openai 客户端
const client = new OpenAI({
apiKey: process.env.OPENAI_API_KEY, // 从 .env 文件中加载 API 密钥
baseURL: 'https://api.openai.com/v1', // 使用 OpenAI 的实际 API 地址
});
// 主函数 执行入口
const main = async () => {
console.log('AI 全栈开始了');
try {
// 调用 OpenAI API 生成图像描述
const response = await client.chat.completions.create({
model: 'gpt-4', // 使用 GPT-4 模型
messages: [
{
role: 'user', // 用户角色
content: '请描述一下图片的内容', // 用户输入内容
},
{
role: 'system', // 系统角色,告诉模型它将接收到一个图片 URL
content: '用户将提供一张图片 URL,要求对其进行描述',
},
{
role: 'user', // 再次作为用户角色,提供图片 URL
content: '', // 在这里填入图片的 URL
},
],
max_tokens: 300, // 最大的返回 token 数量
});
// 输出 AI 的图像描述
console.log(response.choices[0].message.content); // 输出 AI 的回答
} catch (e) {
console.error('错误发生:', e); // 捕捉错误并输出
}
};
// 调用主函数
main();
4.1 初始化 OpenAI 客户端
const client = new OpenAI({
apiKey: process.env.OPENAI_API_KEY,
baseURL: 'https://api.openai.com/v1',
});
在这里,我们通过 dotenv 库从 .env 文件中读取 OpenAI API 密钥,然后初始化 OpenAI 客户端。你可以设置不同的 API 端点和模型选项,例如使用 gpt-4 模型来进行文本生成。