大家好,我是老涂,在本文中,我们将介绍如何部署 chat2api 并使用 curl 调用你自己搭建的 API。通过这些步骤,你可以轻松地将 ChatGPT 集成到你的应用程序中。 对本文感兴趣的,请关注公众号  "挨踢见闻".

部署 chat2api
  1. 克隆 chat2api 仓库: 首先,你需要克隆 chat2api 的 GitHub 仓库。并找一个能访问OpenAI ChatGPT的主机来安装。
git clone https://github.com/openai/chat2api.git
cd chat2api
  1. 运行 Docker 容器: 该项目有很多部署方式,这边为了让OS层面更加干净,我们使用 Docker 运行容器,映射需要的端口。
docker run -d -p 5005:5005 --name chat2api chat2api
  1. 验证部署: 确保容器正在运行。
docker ps

你应该看到 chat2api 容器正在运行并监听端口 5005。

获取 ChatGPT 的accesstoken
  1. 用你的账号登录ChatGPT官网
  2. 访问网站https://chatgpt.com/api/auth/session 复制下AccessToken并将其保存到
使用 curl 调用自建的CHATGPT API
1. 设置 API 密钥为AccessToken

首先,获取存储在环境变量中的 OpenAI accesstoken 密钥,并将其存储在一个变量中。

$apiKey = $env:OPENAI_API_KEY
2. 定义请求头

创建一个哈希表(字典),包含 Content-TypeAuthorization 头。

$headers = @{
    "Content-Type" = "application/json"
    "Authorization" = "Bearer $apiKey"
}
3. 定义请求体

创建一个包含模型和消息的哈希表,并将其转换为 JSON 格式。此请求体将被发送到 API。

$body = @{
    model = "gpt-3.5-turbo"
    messages = @(
        @{
            role = "system"
            content = "You are a poetic assistant, skilled in explaining complex programming concepts with creative flair."
        },
        @{
            role = "user"
            content = "Compose a poem that explains the concept of recursion in programming."
        }
    )
} | ConvertTo-Json
4. 发送请求并获取响应

使用 Invoke-RestMethod 发送 POST 请求到自建的 chat2api API,并获取响应。

$response = Invoke-RestMethod -Uri "http://<yourapiserver>:5005/v1/chat/completions" -Method Post -Headers $headers -Body $body
5. 输出完整的响应内容

格式化并输出完整的响应内容,以便查看 API 返回的所有信息。

$response | Format-List -Property *
6. 输出生成的消息

从响应中提取生成的消息并格式化输出。

$response.choices | Format-List -Property *

自建ChatGPT API 并使用Access Token来调用OpenAI api_API

完整代码

# 设置 API 密钥
$apiKey = $env:OPENAI_API_KEY

# 定义请求头
$headers = @{
    "Content-Type" = "application/json"
    "Authorization" = "Bearer $apiKey"
}

# 定义请求体
$body = @{
    model = "gpt-3.5-turbo"
    messages = @(
        @{
            role = "system"
            content = "You are a poetic assistant, skilled in explaining complex programming concepts with creative flair."
        },
        @{
            role = "user"
            content = "Compose a poem that explains the concept of recursion in programming."
        }
    )
} | ConvertTo-Json

# 发送请求并获取响应
$response = Invoke-RestMethod -Uri "http://<yourapiserver>:5005/v1/chat/completions" -Method Post -Headers $headers -Body $body

# 输出完整的响应内容
$response | Format-List -Property *

# 输出生成的消息
$response.choices | Format-List -Property *

调用 API 的逻辑

  1. 设置 API 密钥:从环境变量中获取 OpenAI API 密钥,并存储在变量 $apiKey 中。
  2. 定义请求头:创建一个包含 Content-TypeAuthorization 头的哈希表 $headers
  3. 定义请求体:创建一个包含模型和消息的哈希表 $body,并将其转换为 JSON 格式。
  4. 发送请求并获取响应:使用 Invoke-RestMethod 发送 POST 请求到指定的 API URL,并将响应存储在 $response 变量中。
  5. 输出完整的响应内容:格式化并输出完整的响应内容,以查看 API 返回的所有信息。
  6. 输出生成的消息:从响应中提取生成的消息,并格式化输出。

通过这些步骤,你可以使用 PowerShell 调用自建的 chat2api API,并获取生成的消息。希望这些代码和步骤能够帮助你成功地集成和使用 ChatGPT。