OpenAI API 调用 | Python 实战
唠唠闲话
OpenAI API 的简单封装,用于发送 prompt message 并返回 response。
安装方法
1 | pip install openai-api-call --upgrade |
使用方法
设置 API 密钥
1 | import openai_api_call as apicall |
或者直接在 ~/.bashrc
中设置 OPENAI_API_KEY
,每次启动终端可以自动设置:
1 | # 在 ~/.bashrc 中添加如下代码 |
当然,你也可以为每个 Chat
对象设置不同的 api_key
:
1 | from openai_api_call import Chat |
设置代理(可选)
1 | from openai_api_call import proxy_on, proxy_off, proxy_status |
或者,你也可以使用代理 URL 来发送请求,如下所示:
1 | from openai_api_call import request |
基本使用
示例一,发送 prompt 并返回信息:
1 | from openai_api_call import Chat, show_apikey, proxy_status |
示例二,自定义消息模板,并返回信息和消耗的 tokens 数量:
1 | import openai_api_call |
示例三,多轮对话:
1 | # 初次对话 |
此外,你可以使用 Chat
类的 show_usage_status
方法来查看 API 的使用情况:
1 | # 查看默认 API 的使用情况 |
附录
官方文档
官方给的 API 调用方式
1 | # 官方文档 https://platform.openai.com/docs/guides/chat/introduction |
输入的 messages
支持三种角色:
system
有助于设置 AI 助手的行为user
用于指导 AI,由用户或者开发者直接设置assisant
存储之前的回复内容,也可以由开发者编写,帮助指导 AI
会话通常以 system
开头,然后是交替的 user
和 assistant
消息。
编写脚本
-
APIKey 可以直接在终端使用
1
2
3
4
5
6
7
8
9
10OPENAI_API_KEY="" # 这里写入 API_KEY
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": "Hello!"}
]
}' -
快捷调用脚本
quickask [message] [API_token]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29# quickask
msg=$1
# 默认使用传入的 API
if test $2 ; then
OPENAI_API_KEY=$2
fi;
if ! test $msg ; then
# 没有指定消息时,使用默认消息
msg=hello
fi;
if ! test $OPENAI_API_KEY ; then
# 没有指定 API 且未设置环境变量
OPENAI_API_KEY=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
fi;
resp=$(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\": \"$msg\"}
]
}")
# 返回
echo "\n"$resp
更新日志
- 版本
0.2.0
改用Chat
类型作为中心交互对象 - 版本
0.3.0
开始不依赖模块openai.py
,而是直接使用requests
发送请求- 支持对每个
Chat
使用不同 API 密钥 - 支持使用代理链接
- 支持对每个
开发指南
代码通过 ChatGPT 对话 + copilot 代码辅助完成的,极大提高了开发效率和代码规范性。
细节待补充。
Access Token
https://github.com/linweiyuan/go-chatgpt-api/blob/main/example/vscode/chatgpt.http
文章采用 CC BY-NC-SA 4.0 许可协议,转载请注明来自 学习乐园!
评论