首页
Preview

不再使用ChatGPT:使用OpenAI构建你自己的AI

FlipsnackUnsplash 上的照片

说实话。

人工智能 (AI) 正在革新企业运营和向客户提供服务的方式。

它是商业领域中最受追捧的技术之一,因为它能够快速正确地分析海量数据,为自动化、个性化和预测性分析开辟新的可能性。

但对于新手来说,由于有太多的选项和复杂的术语,可能很难知道从哪里开始。可能很难知道如何将 AI 应用到你的组织中。

这就是这篇指南可以帮助的地方。

本指南将使用 OpenAI API 为你提供关于 AI 的深入知识,无论你是小型企业所有者、开发人员还是大型企业的决策者,它都将教你如何将其应用到你的业务需求中。

所以,如果你准备好了,让我们开始吧。

创建 OpenAI 帐户:访问高级 AI 功能的关键

如果你已经使用 ChatGPT,你可能已经有了 OpenAI 帐户。如果没有,请单击 此处 创建一个。访问此链接后,你将在页面右上角看到一个“注册”按钮。

成功创建帐户后,你可以通过单击位于右上角的个人资料图像来访问你的帐户管理页面。

在这里,你将看到 OpenAI 已经向你的帐户存入了 18 美元,让你有机会在不产生任何重大费用的情况下尝试他们的 API。

来源: OpenAI

虽然 OpenAI API 是一个高级服务,但初始免费试用足以让你开始并使用该平台。

通过这个免费试用,你可以免费尝试一些由 AI 驱动的功能,这是了解这项技术的绝佳方式。

最后,为了创建一个 Node.js 应用程序,你必须生成一个秘密密钥。所以,导航到“API Keys”选项卡,然后单击“创建新的秘密密钥”按钮。

你将收到自己的秘密密钥。请复制此密钥,因为它将在我们的 Node.js 应用程序中使用。

现在你已经有了一个帐户,是时候动手使用 OpenAI API 了。

构建 Node.js 应用程序

我将从基础知识开始,逐步向更高级的主题发展。

具体而言,我将创建一个 Node.js 应用程序,用于生成代码、图像和基于文本的响应。

由于 JavaScript 广泛用于 Web 开发,因此我将使用 Node.js 来构建一个 AI 专注的应用程序。虽然代码很简单,但它将是完全功能和全面的。

让我们开始吧。

  • 创建一个 Node.js 应用程序 首先,请确保你已经安装了 Node.js(以及 VS Code),并对其有一定的了解。一旦你掌握了这些先决条件,请在你选择的目录中创建一个名为“openai”的文件夹。
mkdir openai

现在,在你喜欢的代码编辑器(例如 VS Code)中打开“openai”文件夹。

cd openai && code .

打开 VS Code 中内置的终端,并使用下面的命令在文件夹中生成一个新的 package.json 文件。

npm init -y

这个文件将允许我们安装必要的依赖项。

生成文件后,使用以下命令安装所需的依赖项。

npm i dotenv openai

最后,在 package.json 文件的“scripts”对象中添加以下行:“start”:“node index.js"。这将允许你使用“npm start”命令运行程序。

以下是更新后的 package.json 文件的示例:

{
  "name": "openai",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "start": "node index.js"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "dotenv": "^16.0.3",
    "openai": "^3.2.1"
  }
}

2. 利用 OpenAI 的力量

之前,我们在 Node.js 应用程序中安装了 openai 作为依赖项。 npm 包简化了使用 OpenAI API 的过程。

我们还安装了 dotenv,它允许我们将秘密密钥存储在单独的 .env 文件中。

要创建此文件,请导航到应用程序的根目录并创建一个名为 .env 的新文件。打开该文件并将你的秘密密钥粘贴到其中。

OPENAI_API_KEY=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

注意: 请不要使用本文中提供的密钥,因为它已被删除。请改用你自己的秘密密钥。如果你尚未创建秘密密钥,则可以重新跟随该过程并生成一个新密钥。

有了这个想法,让我们开始这个过程。

首先,我们将从 OpenAI npm 包提供的一个简单示例开始。

const dotenv = require('dotenv');
dotenv.config();
const { Configuration, OpenAIApi } = require("openai");
const configuration = new Configuration({
    apiKey: process.env.OPENAI_API_KEY,
});
const openai = new OpenAIApi(configuration);
(async () => {
    const response = await (await openai.listModels()).data.data;
    console.log(response);
})();

在这里,我们只是列出了 OpenAI API 提供的所有模型。

执行“npm start”命令后,应用程序将显示可用的 ChatGPT 模型列表。

输出将类似于以下内容:

{
    id: 'code-davinci-edit-001',
    object: 'model',
    created: 1649880484,
    owned_by: 'openai',
    permission: [ [Object] ],
    root: 'code-davinci-edit-001',
    parent: null
  },
  {
    id: 'text-davinci-001',
    object: 'model',
    created: 1649364042,
    owned_by: 'openai',
    permission: [ [Object] ],
    root: 'text-davinci-001',
    parent: null
  },
....
 {
    id: 'code-search-ada-text-001',
    object: 'model',
    created: 1651172507,
    owned_by: 'openai-dev',
    permission: [ [Object] ],
    root: 'code-search-ada-text-001',
    parent: null
  },
 ....

当然,你可以进行实验并探索其他信息。

3. 文本完成和代码完成

现在,让我们使用“text-davinci-003”模型编写一个简单的代码,该模型基于给定的提示生成文本完成,利用 OpenAI API。

const dotenv = require('dotenv');
dotenv.config();
const { Configuration, OpenAIApi } = require("openai");

const configuration = new Configuration({
    apiKey: process.env.OPENAI_API_KEY,
});
const openai = new OpenAIApi(configuration);

(async () => {
    const completion = await openai.createCompletion({
        model: "text-davinci-003",
        prompt: "Hello, how are you?",
    });
    console.log(completion.data.choices[0].text);
})();

在这里,我们正在传递我们正在使用的模型以及提示。当你执行这段代码时,它将生成以下响应:

I’m doing well, thank you. How about you?

同样,你可以根据需要更改提示。

以下代码使用了提示“你能写一个简单的hello world python代码吗?” 作为示例:

const dotenv = require('dotenv');
dotenv.config();
const { Configuration, OpenAIApi } = require("openai");

const configuration = new Configuration({
    apiKey: process.env.OPENAI_API_KEY,
});
const openai = new OpenAIApi(configuration);

(async () => {
    const completion = await openai.createCompletion({
        model: "text-davinci-003",
        prompt: "Can you write a simple hello world python code?",
    });
    console.log(completion.data.choices[0].text);
})();
```。该代码将输出预期的结果。

然而,它目前需要用户将内容作为提示传递,这可能不太方便。为了解决这个问题,让我们修改代码,允许用户通过终端输入提示:``` 
const dotenv = require('dotenv');
dotenv.config();

const { Configuration, OpenAIApi } = require('openai');
const readline = require('readline');

const openAi = new OpenAIApi(
    new Configuration({
        apiKey: process.env.OPENAI_API_KEY,
    })
);

const userInterface = readline.createInterface({
    input: process.stdin,
    output: process.stdout,
});

userInterface.prompt();
userInterface.on('line', async (input) => {
    const response = await openAi.createChatCompletion({
        model: 'gpt-3.5-turbo',
        messages: [{ role: 'user', content: input }],
    });
    console.log(response.data.choices[0].message.content);
    userInterface.prompt();
});

执行此代码时,终端会出现一个输入提示,你可以输入所需的输入,程序将根据指定的模型生成相应的输出。

值得注意的是,我们使用了一个名为“gpt-3.5-turbo”的不同模型,它具有生成几乎任何你想要的内容的能力。这意味着通过输入提示作为输入,程序可以相应地生成各种输出。

4. 图像生成

在前面的例子中,我们学习了如何使用模型基于用户输入生成文本完成。然而,OpenAI API也可以帮助生成图像。以下代码演示了如何实现这一点:

const dotenv = require('dotenv');
dotenv.config();

const { Configuration, OpenAIApi } = require("openai");
const configuration = new Configuration({
    apiKey: process.env.OPENAI_API_KEY,
});

const openai = new OpenAIApi(configuration);

async function createImage() {
    try {
        const response = await openai.createImage({
            prompt: "A cute baby sea otter",
            n: 2,
            size: "1024x1024",
        });
        console.log(response.data);
    } catch (error) {
        console.log(error);
    }
}

createImage();

当n的值设置为2时,这里有两个图像:

{
  created: 1680000483,
  data: [
    {
      url: 'https://oaidalleapiprodscus.blob.core.windows.net/123456789'
    },
    {
      url: 'https://oaidalleapiprodscus.blob.core.windows.net/987654321'
    }
  ]
}

请注意,上述输出中提供的URL对你来说将无法工作,因为它未经身份验证。但是,当你使用自己的提示运行代码时,它将生成两个图像。随意根据需要修改提示。

译自:https://levelup.gitconnected.com/no-more-chatgpt-build-your-own-ai-with-openai-73a5c087b660

版权声明:本文内容由TeHub注册用户自发贡献,版权归原作者所有,TeHub社区不拥有其著作权,亦不承担相应法律责任。 如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

点赞(0)
收藏(0)
alivne
复杂的问题简单化

评论(0)

添加评论