做视频开头的外国网站,标志设计公司有哪些,摹客 2023年设计师必备设计工具,网站商城建设费用一、OpenAI基本库介绍
您可以通过 HTTP 请求与 API 进行交互#xff0c;这可以通过任何编程语言实现。我们提供官方的 Python 绑定、官方的 Node.js 库#xff0c;以及由社区维护的库。
要安装官方的 Python 绑定#xff0c;请运行以下命令#xff1a;
pip install open…一、OpenAI基本库介绍
您可以通过 HTTP 请求与 API 进行交互这可以通过任何编程语言实现。我们提供官方的 Python 绑定、官方的 Node.js 库以及由社区维护的库。
要安装官方的 Python 绑定请运行以下命令
pip install openai
要在您的 Node.js 项目目录中安装官方的 Node.js 库请运行以下命令
pip install openai
二、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 OpenAIclient OpenAI(organizationYOUR_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 OpenAIclient OpenAI()stream client.chat.completions.create(modelgpt-3.5-turbo,messages[{role: user, content: Say this is a test}],streamTrue,
)
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)https://jc.chatgptzh.com/web-59-1.html