ChatGPT API教程在线对接OpenAI APIKey技术教程

闪电发卡1年前ChatGPT1070

闪电发卡ChatGPT产品推荐:

ChatGPT独享账号:https://www.chatgptzh.com/post/86.html

ChatGPT Plus独享共享账号购买代充:https://www.chatgptzh.com/post/329.html

ChatGPT APIKey购买充值(直连+转发):https://www.chatgptzh.com/post/348.html

ChatGPT Plus国内镜像(逆向版):https://www.chatgptgm.com/buy/23

ChatGPT国内版(AIChat):https://aichat.shandianfk.com

客服微信:1、chatgptpf 2、chatgptgm 3、businesstalent


一、OpenAI基本库介绍

您可以通过 HTTP 请求与 API 进行交互,这可以通过任何编程语言实现。我们提供官方的 Python 绑定、官方的 Node.js 库,以及由社区维护的库。

要安装官方的 Python 绑定,请运行以下命令:

pip install openai

要在您的 Node.js 项目目录中安装官方的 Node.js 库,请运行以下命令:

npm install openai@^4.0.0


二、APIKey认证授权

API密钥(API Keys)
OpenAI API 使用 API 密钥进行认证。您可以在用户或服务账户级别创建 API 密钥。服务账户与“机器人”个体相关联,应用于为生产系统提供访问权限。每个 API 密钥可以限定以下之一的范围:

项目密钥 - 提供对单个项目的访问(推荐选项);通过选择您希望生成密钥的特定项目来访问项目 API 密钥。
用户密钥 - 我们的旧密钥。提供对用户已添加到的所有组织和所有项目的访问;访问 API 密钥以查看您可用的密钥。我们强烈建议过渡到项目密钥以获得最佳安全实践,尽管目前仍支持通过这种方法进行访问。
记住您的 API 密钥是一个秘密!不要与他人共享或在客户端代码(浏览器、应用程序)中公开它。生产请求必须通过您自己的后端服务器进行路由,您可以从环境变量或密钥管理服务中安全加载您的 API 密钥。

所有 API 请求应在 HTTP 头中包含您的 API 密钥,如下所示:

Authorization: Bearer OPENAI_API_KEY


组织和项目(可选)
对于属于多个组织的用户或通过其旧的用户 API 密钥访问其项目的用户,您可以传递一个头来指定用于 API 请求的组织和项目。这些 API 请求的使用将计入指定的组织和项目的使用量。

要访问组织中的默认项目,请省略 OpenAI-Project 头

示例 curl 命令:

curl https://api.openai.com/v1/models \
  -H "Authorization: Bearer $OPENAI_API_KEY" \  -H "OpenAI-Organization: YOUR_ORG_ID" \  -H "OpenAI-Project: $PROJECT_ID"

使用 openai Python 包的示例:

from openai import OpenAI

client = OpenAI(
  organization='YOUR_ORG_ID',
  project='$PROJECT_ID',
)

使用 openai Node.js 包的示例:

import OpenAI from "openai";const openai = new OpenAI({
    organization: "YOUR_ORG_ID",
    project: "$PROJECT_ID",
});

Organization IDs可以在您的组织设置页面找到。 Project IDs可以通过选择特定项目在您的常规设置页面找到。

三、发起请求示例

您可以将下面的命令粘贴到您的终端中来运行您的第一个 API 请求。请确保将 $OPENAI_API_KEY 替换为您的秘密 API 密钥。如果您使用的是旧版用户密钥并且有多个项目,您还需要指定Project ID。为了提高安全性,我们建议转向基于项目的keys。

curl https://api.openai.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
     "model": "gpt-3.5-turbo",
     "messages": [{"role": "user", "content": "Say this is a test!"}],
     "temperature": 0.7
   }'

此请求查询的是 gpt-3.5-turbo 模型(实际上是指向 gpt-3.5-turbo 模型变体),以完成以 "Say this is a test" 为提示的文本。您应该会收到一个类似以下内容的响应:

{
    "id": "chatcmpl-abc123",
    "object": "chat.completion",
    "created": 1677858242,
    "model": "gpt-3.5-turbo-0613",
    "usage": {
        "prompt_tokens": 13,
        "completion_tokens": 7,
        "total_tokens": 20
    },
    "choices": [
        {
            "message": {
                "role": "assistant",
                "content": "\n\nThis is a test!"
            },
            "logprobs": null,
            "finish_reason": "stop",
            "index": 0
        }
    ]}

现在您已经生成了第一次chat completion  ,让我们分解一下响应对象。我们可以看到 finish_reason 是 stop,这意味着 API 返回了模型生成的完整chat completion 内容,没有遇到任何限制。在 choices 列表中,我们只生成了一条消息,但您可以设置 n 参数来生成多个消息选项。

四、流式输出

OpenAI API 提供了将响应流回客户端的能力,以允许某些请求返回部分结果。为实现此目的,我们遵循 Server-sent events 标准。我们的官方 Node 和 Python 库包括一些帮助工具,可以简化这些事件的解析。

流式传输支持 Chat Completions API 和 Assistants API。本节重点介绍流式传输在 Chat Completions 中的工作方式。

在 Python 中,流式请求看起来像这样:

from openai import OpenAI

client = OpenAI()

stream = client.chat.completions.create(
    model="gpt-3.5-turbo",
    messages=[{"role": "user", "content": "Say this is a test"}],
    stream=True,
)for chunk in stream:    if chunk.choices[0].delta.content is not None:
        print(chunk.choices[0].delta.content, end="")

在 Node / Typescript 中,流式请求看起来像这样:

import OpenAI from "openai";const openai = new OpenAI();async function main() {    const stream = await openai.chat.completions.create({
        model: "gpt-3.5-turbo",
        messages: [{ role: "user", content: "Say this is a test" }],
        stream: true,
    });    for await (const chunk of stream) {
        process.stdout.write(chunk.choices[0]?.delta?.content || "");
    }
}

main();

解析 Server-sent events 并不简单,需要谨慎处理。简单的策略比如按新行分割可能会导致解析错误。我们建议尽可能使用现有的客户端库。

原文链接:介绍 | ChatGPT API教程 | ChatGPT API技术开发教程 (chatgptzh.com)

相关文章

ChatGPT APIKey余额在线查询和使用Python代码查询的方法教程

ChatGPT APIKey余额在线查询和使用Python代码查询的方法教程

一、官方APIKey余额在线查询原查询ChatGPT API余额地址:https://api.openai.com/v1/dashboard/billing/subscriptionPython代码查...

OpenAI API KEY 3.5购买方式分析,如何优雅的购买ChatGPT APIKey

一、什么是Openai APIKey ?OpenAI APIKey 是用于访问 OpenAI API 的凭证,它允许开发者通过编程方式与 OpenAI 的模型进行交互和使用。通过这个 API,开发者可...

任何地方无障碍快速访问!ChatGPT Next Web——一键免费部署你的私人ChatGPT网页应用

任何地方无障碍快速访问!ChatGPT Next Web——一键免费部署你的私人ChatGPT网页应用

今天来分享一个私人 ChatGPT 网页应用——ChatGPT Next Web,让你随时随地方便使用ChatGPT!主界面ChatGPT Next Web 简单介绍(来自GitHub)1.1 主要功...

免费 GPT-4 神器来了,这下我彻底不用写代码了!

免费 GPT-4 神器来了,这下我彻底不用写代码了!

前两天在网上看到了一款基于 GPT-4 的新一代辅助编程神器:Cursor,官网介绍说是与 OpenAI 合作的并且基于 GPT-4 模型(存疑)。简单概况一下:代码真的不用我们自己写了,一行指令,它...

闪电发卡关于2024年五一劳动节商品打折活动的通知(仅此5天)

正逢五一佳节,闪电发卡为了回馈广大顾客的支持与厚爱,我们诚挚地推出五一节商品打折特惠活动,为您带来无与伦比的购物体验,让您真正体验到闪电发卡网的快速,安全,低价的购物方式,以下是我们的优惠详情(到点自...

ChatGPT API技术教程OpenAI APIKey在线对接-创建Chat Completions

闪电发卡ChatGPT产品推荐:ChatGPT独享账号:https://www.chatgptzh.com/post/86.htmlChatGPT Plus独享共享账号购买代充:https://www...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。