大家好,我是老涂,在本文中,我们将介绍如何部署 chat2api 并使用 curl 调用你自己搭建的 API。通过这些步骤,你可以轻松地将 ChatGPT 集成到你的应用程序中。
对本文感兴趣的,请关注wei_xin gzh “挨踢见闻”.
部署 chat2api
-
克隆
chat2api
仓库:
首先,你需要克隆chat2api
的 GitHub 仓库。并找一个能访问OpenAI ChatGPT的主机来安装。git clone https://github.com/openai/chat2api.git cd chat2api
-
运行 Docker 容器:
该项目有很多部署方式,这边为了让OS层面更加干净,我们使用 Docker 运行容器,映射需要的端口。docker run -d -p 5005:5005 --name chat2api chat2api
-
验证部署:
确保容器正在运行。docker ps
你应该看到
chat2api
容器正在运行并监听端口 5005。
获取 ChatGPT 的accesstoken
- 用你的账号登录ChatGPT官网
- 访问网站https://chatgpt.com/api/auth/session
复制下AccessToken并将其保存到
使用 curl
调用自建的CHATGPT API
1. 设置 API 密钥为AccessToken
首先,获取存储在环境变量中的 OpenAI accesstoken 密钥,并将其存储在一个变量中。
$apiKey = $env:OPENAI_API_KEY
2. 定义请求头
创建一个哈希表(字典),包含 Content-Type
和 Authorization
头。
$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 *
完整代码
# 设置 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 的逻辑
- 设置 API 密钥:从环境变量中获取 OpenAI API 密钥,并存储在变量
$apiKey
中。 - 定义请求头:创建一个包含
Content-Type
和Authorization
头的哈希表$headers
。 - 定义请求体:创建一个包含模型和消息的哈希表
$body
,并将其转换为 JSON 格式。 - 发送请求并获取响应:使用
Invoke-RestMethod
发送 POST 请求到指定的 API URL,并将响应存储在$response
变量中。 - 输出完整的响应内容:格式化并输出完整的响应内容,以查看 API 返回的所有信息。
- 输出生成的消息:从响应中提取生成的消息,并格式化输出。
通过这些步骤,你可以使用 PowerShell 调用自建的 chat2api
API,并获取生成的消息。希望这些代码和步骤能够帮助你成功地集成和使用 ChatGPT。