你知道如何使用 OpenAI API 向大模型发送请求并生成内容吗?今天带你一起快速入门,来看看怎么让 AI 为你生成文本、图像,甚至做语义搜索!
🔥 第一步:获取 API 密钥
在 OpenAI 官方平台创建 API 密钥,关于具体的创建步骤,大家可以在网上搜教程,这里我们就不多赘述了。
💻 第二步:准备开发环境 首先,确保你有一个 Node.js 环境。如果你还没安装,去 Node.js 官网下载并安装最新的版本。
然后,安装 OpenAI SDK。SDK 是 OpenAI 提供的一套工具包,方便我们与 OpenAI 的 API 进行交互:
npm install openai
🌐 第三步:创建 Node.js 文件 现在,创建一个 demo.mjs
文件,我们会在这个文件里写代码,来测试如何发送 API 请求并获取响应。
生成文本的代码解析
假设我们要让 OpenAI 仿照李白的风格写一首唐诗。首先,我们需要用 OpenAI
类来初始化 API 客户端。然后,调用 chat.completions.create()
方法来生成文本。
import 'dotenv/config';
import OpenAI from "openai";
const openai = new OpenAI({
apiKey: process.env.OPENAI_API_KEY
});
const completion = await openai.chat.completions.create({
model: "gpt-4o-mini",
messages: [
{ role: "system", content: "你是一个助手。" }, // 系统消息,给出AI的角色或背景信息
{ role: "user", content: "仿照李白的风格写一首唐诗" } // 用户的输入
]
});
console.log(completion.choices[0].message);
👉 关键点:
OpenAI
类:这是 SDK 提供的核心类,我们通过它与 API 进行交互。初始化时,它会根据环境变量中的 API 密钥进行认证。chat.completions.create()
方法:这个方法是最常用的一个 API 接口,用来生成对话或文本内容。我们在messages
数组中传递了系统信息和用户输入,系统信息告诉 AI 它应该扮演什么角色,用户输入则是我们的请求内容。model
参数:这里我们使用的是"gpt-4o-mini"
模型。OpenAI 提供了不同的模型,每个模型的能力和资源消耗不同,你可以根据需求选择合适的模型。
我们再来看另外一个例子:
🖼️ 生成图像 如果你希望生成图像,OpenAI 也提供了相应的接口。假设我们要生成一只可爱的布偶猫,只需要提供一段文字描述,API 就会返回图像。
const image = await openai.images.generate({ prompt: "一只可爱的布偶猫" });
console.log(image.data[0].url);
👉 关键点:
images.generate()
方法:这个方法允许我们从文字描述生成图像。你只需要提供一个prompt
,API 就会根据描述生成对应的图像。- 返回值:生成的图像会包含在返回的数据中,我们可以通过
image.data[0].url
获取到图像的 URL,然后将它展示给用户。
🔍 生成向量嵌入 向量嵌入(Embeddings)是一种将文本转换为数字表示的方法,用于语义搜索或其他 NLP 任务。以下代码展示了如何生成一个简单的文本向量:
const embedding = await openai.embeddings.create({
model: "text-embedding-3-large",
input: "The quick brown fox jumped over the lazy dog"
});
console.log(embedding);
👉 关键点:
embeddings.create()
方法:这个方法将文本转化为向量。你可以用它来进行文本的相似性对比、语义搜索等。- 返回值:生成的嵌入向量可以用于各种机器学习和搜索任务。
🚀 执行代码
-
完成以上代码后,保存为
demo.mjs
文件。 -
在终端执行:
node demo.mjs
-
不久后,你就可以看到 OpenAI API 返回的文本、图像或向量数据了!
📈 技术高深,操作简单! 无论你是前端开发新手还是资深工程师,使用 OpenAI API 都能让你在几分钟内体验到 AI 的强大能力。你可以轻松集成 AI 功能到自己的项目中,甚至通过简单的几行代码实现文本生成、图像生成和语义搜索。
🎉 别忘了点赞、关注、收藏! 如果你有任何问题或想学习更多技术内容,欢迎在评论区留言,咱们下期再见!🚀