为了账号安全,请及时绑定邮箱和手机立即绑定

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

标签:
人工智能

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

部署 chat2api

  1. 克隆 chat2api 仓库
    首先,你需要克隆 chat2api 的 GitHub 仓库。并找一个能访问OpenAI ChatGPT的主机来安装。

    git clone https://github.com/openai/chat2api.git
    cd chat2api
    
  2. 运行 Docker 容器
    该项目有很多部署方式,这边为了让OS层面更加干净,我们使用 Docker 运行容器,映射需要的端口。

    docker run -d -p 5005:5005 --name chat2api chat2api
    
  3. 验证部署
    确保容器正在运行。

    docker ps
    

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

获取 ChatGPT 的accesstoken

  1. 用你的账号登录ChatGPT官网
  2. 访问网站https://chatgpt.com/api/auth/session
    复制下AccessToken并将其保存到
    file

使用 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 *

file

完整代码

# 设置 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

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消