admin 管理员组

文章数量: 887007

您可以通过来自任何语言的HTTP请求,通过我们的官方Python绑定、官方Node.js库或社区维护库与API进行交互。

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

pip install openai

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

npm install openai

身份验证

OpenAI API使用API密钥进行身份验证。访问您的API密钥页面,检索您将在请求中使用的API密钥。

记住,您的API密钥是一个秘密!不要与他人共享或在任何客户端代码(浏览器、应用程序)中公开它。生产请求必须通过您自己的后端服务器路由,您的API密钥可以从环境变量或密钥管理服务中安全加载。

所有API请求都应在Authorization HTTP header头中包含API密钥,如下所示:

Authorization: Bearer OPENAI_API_KEY

请求header头

对于属于多个header头的用户,可以传递一个header标头来指定用于API的请求头。这些API请求的使用量将计入指定组织的订阅配额。

此种方式可以适用于其他语言接口,如php、java等,这里只介绍php

curl命令示例:

curl https://api.openai.com/v1/models \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "OpenAI-Organization: org-66vU1OAAARBPaXSAJGzT"

PHP示例:

<?php
$OPENAI_API_KEY = '您的API秘钥';
$Organization_id = 'org-66vU1OAAARBPaXSAJGzT';
$model = 'gpt-3.5-turbo';
$messages = [{"role": "user", "content": "Say this is a test!"}];
$message = '{"model":'.$model'
		    ,"messages":'.$messages.'
	        ,"temperature":0.7
		    }';
$curl = 'https://api.openai/v1/models';
$headers = [
			'Authorization: '.$OPENAI_API_KEY
		   ,'OpenAI-Organization: '.$Organization_id
		   ];
		   
$chat = curl_init();
curl_setopt($chat, CURLOPT_URL, $curl);
curl_setopt($chat, CURLOPT_HTTPHEADER, $headers);
curl_setopt($chat, CURLOPT_SSL_VERIFYHOST, true);
$content = curl_exec($chat);
curl_close($chat);
return $content;

Python包的示例:

import os
import openai
openai.organization = "org-66vU1OAAARBPaXSAJGzT"
openai.api_key = os.getenv("OPENAI_API_KEY")
openai.Model.list()

Node.js包的示例:

import { Configuration, OpenAIApi } from "openai";
const configuration = new Configuration({
    organization: "org-66vU1OAAARBPaXSAJGzT",
    apiKey: process.env.OPENAI_API_KEY,
});
const openai = new OpenAIApi(configuration);
const response = await openai.listEngines();

可以在“组织设置”页面上找到组织ID。

发出请求

您可以将下面的命令粘贴到终端中,以运行第一个API请求。确保将$OPENAI_API_KEY替换为机密API密钥。

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模型以完成以提示“Say This is a test”开头的文本。您应该会得到类似于以下内容的响应:

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

现在您已经生成了第一个聊天完成。我们可以看到finish_reason是stop,这意味着API返回了模型生成的完整完成。在上面的请求中,我们只生成了一条消息,但您可以设置n参数来生成多条消息选择。

模型

列出并描述API中可用的各种模型。您可以参考Models文档来了解哪些模型可用以及它们之间的差异。

列出模型

GET https://api.openai/v1/models

列出当前可用的模型,并提供每个模型的基本信息,如所有者和可用性。

curl请求示例

curl https://api.openai.com/v1/models \
  -H "Authorization: Bearer $OPENAI_API_KEY"

python请求示例

import os
import openai
openai.api_key = os.getenv("OPENAI_API_KEY")
openai.Model.list()

node.js请求示例

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

返回结果:

{
  "data": [
    {
      "id": "model-id-0",
      "object": "model",
      "owned_by": "organization-owner",
      "permission": [...]
    },
    {
      "id": "model-id-1",
      "object": "model",
      "owned_by": "organization-owner",
      "permission": [...]
    },
    {
      "id": "model-id-2",
      "object": "model",
      "owned_by": "openai",
      "permission": [...]
    },
  ],
  "object": "list"
}

持续更新中,将官方API接口公布的所有功能全部挖掘出来。。。

本文标签: 详细介绍 中文翻译 接口 ChatGpt php