本文由 大侠(AhcaoZhu)原创,转载请声明。
链接: https://blog.csdn.net/Ahcao2008
Pycharm中如何安装 OpenAI ——ChatGPT的python包?
- 摘要
- 背景
- 安装
- 1、安装前准备
- 2、安装前提条件
- 3、依赖库
- 最佳安装过程
- 1、检查 VC++
- 2、看哪些依赖库未安装
- 3、将未装模块写成 test02.bat
- 下一步
- 引用
摘要
- 全文介绍当下非常火爆的
ChatGPT
的 API 开发包openai
的安装过程、心得。- 它可以帮你少走弯路。
- 是一篇实战经验心得。它是系列集的一部分。后续陆续发布、敬请关注。【原创:AhcaoZhu大侠】
背景
- 如果要基于 ChatGPT进行二次开发(python),就必须引入它的应用API,OpenAI公司发布的API的python包(package),就叫
openapi
。 - 语法如下:
import openai
- 大多数的模块安装,其实过程是相通的。请参见附录
PyCharm中如何安装第三方库?
。1 - openai 的安装没有特别之处,只是它比较复杂一些,依赖库也比较多。本文的经验介绍,让初学者少走一些弯路。
- OpenAI 的官网,介绍了一个例子(见附录):快速开始——API接入的例子:给宠物起名字。2
—— 对很多人来说,上面无法直接访问。笔者后面博文会专门介绍、剖析这个例子。
安装
1、安装前准备
- 安装开始之前,我们输入
import openai
,毫无意外地,会出现以下找不到模块的信息:
- 这时,你可以用文末附录1所介绍的多种方法中的任何
一种
方法来安装: - 直接点击黄色小灯安装
- 在PyCharm 底部工具栏
Python软件包
、或者Python控制台
- 或者
cmd
、或者python IDLE
等安装
pip install openai
- 甚至,还有更智能的一键安装:
- 当我们拷贝上述附录2中的
app.py
完整的示例包(requirements.txt
)到我们项目目录的时候,如果你的 PyCharm 连接 Github,IDE会直接弹出依赖包的一键安装。
- 当我们拷贝上述附录2中的
- 经笔者尝试,按照以上任何一种方法,均不能很好地一遍成功。会出现多次中断、反复查找问题。所以本文方法,可以尽最少失败次数达到安装成功。
2、安装前提条件
- 安装无需外网条件。
- 开发使用需要有
key
。- 虽然不需要外网条件,任何人可以安装
openai
模块,可是后续如果要直接基于 openai 开发的话,还是需要有key
。 - 除非第三方封装后共享的 key,目前国内很多个人或机构在做,或许已经有“免费”。
- 顺带说一句,据OpenAI官网介绍,它的收费政策会有变化,8月份之前,是 5$ 不限流量和参数(主要是温度、TOKEN数、context上下文等,见下图),各参数都可以尝试,后面会根据 TOKEN 收费。当然版本(ChatGPT-3.5)、应用范围(Engine)还是要限制的。
- 虽然不需要外网条件,任何人可以安装
- 每个机器的安装条件是不一样的。
- 笔者专门找新机器(win11)测试,发现除了依赖库,还要安装 vc++运行库v11以上(安装过程可能会中断,它会有英文提示)。
- 这个需要独立在微软官网找到并安装(自动跳转安装过程并不可用)。
3、依赖库
- requirements.txt
- 前面是模块名,后面是要求的最低版本号。
- 安装过程中,笔者发现,有时是限制版本号(最高版本号),它删除了某模块的高版本,反而安装了openai兼容的某一低版本。不过无需担心,这一过程不需要人工干预,会自动进行。
autopep8==1.6.0
certifi==2021.10.8
charset-normalizer==2.0.7
click==8.0.3
et-xmlfile==1.1.0
Flask==2.0.2
idna==3.3
itsdangerous==2.0.1
Jinja2==3.0.2
MarkupSafe==2.0.1
numpy==1.21.3
openai==0.19.0
openpyxl==3.0.9
pandas==1.3.4
pandas-stubs==1.2.0.35
pycodestyle==2.8.0
python-dateutil==2.8.2
python-dotenv==0.19.2
pytz==2021.3
requests==2.26.0
six==1.16.0
toml==0.10.2
tqdm==4.62.3
urllib3==1.26.7
Werkzeug==2.0.2
最佳安装过程
1、检查 VC++
检查VC++是否安装。如未安装,先行手动安装,反而省事。
2、看哪些依赖库未安装
将以上requirements.txt文件(可以复制粘贴),在Pycharm中打开,利用 RE 替换
、列编辑模式
,可以快速改成引入模块的方式,并重名或复制为test01.py。
import certifi
import idna
import numpy
import openpyxl
import requests
import six
import tqdm
import urllib3import autopep8
import charset_normalizer
import click
import et_xmlfile
import flask
import itsdangerous
import jinja2
import markupsafe
import openai
import pandas
from pandas import pandas_stubs
import pycodestyle
import dateutil
import dotenv
import pytz
import toml
import werkzeug
- 在我的机器上,前面8个是已装入的模块,所以不需要装入了。
- 你只要拷贝上述 test01.py 到你的pycharm里打开。
- 想自己亲自操作的,注意一下:
- 将
-
转_
,例如:et-xmlfile
→et_xmlfile
- 大写转小写,例如:
MarkupSafe
→markupsafe
- python 前导去掉,例如:
python-dateutil
→dateutil
- 一个特殊:
from pandas import pandas_stubs
因为 dateutil 是 pandas 的子模块
3、将未装模块写成 test02.bat
- 同样应用
RE 替换
、列编辑模式
,如果写成 .bat 文件,可以批执行。也可以手动一个一个执行。- 建议在
cmd
下运行。- 此外,依赖库中的模块安装过程中还有依赖模块,这里列出。假设命名为:
test03.bat
。它比 test02.bat 先装,有好处:快!
不运行test03.bat 而直接运行 test02.bat 也是可以的。
test03.bat
pip install charset-normalizer
pip install setuptools
pip install attrs
pip install multidict
pip install chardet
pip install aiohttp
pip install async-timeout
pip install yarl
pip install et-xmlfile
pip install python-dotenv
pip install toml
test02.bat
- 因为我的机器前8个装过了,你的机器可以参考。pip命令也会自动判断已装过的。
- 缩进不是必须的,只是表明依赖关系
pip install certifi
pip install idna
pip install numpy
pip install openpyxl
pip install requests
pip install six
pip install tqdm
pip install urllib3pip install charset-normalizer
pip install setuptools
pip install attrs
pip install multidict
pip install chardet
pip install aiohttp
pip install async-timeout
pip install yarl
pip install et-xmlfile
pip install python-dotenv
pip install tomlpip install pycodestylepip install tomli
pip install autopep8pip install importlib_metadatapip install zipp
pip install clickpip install jinja2pip install itsdangerouspip install werkzeugpip install markupsafe
pip install flaskpip install pytzpip install python-dateutil
pip install pandaspip install typing-extensions
pip install pandas-stubspip install openai
4、检查
至此,openai 以及它的全部依赖库、依赖库的依赖库,也都装好。
在PyCharm中打开 test01.py 可以查看到哪些模块还没有装好。
下一步
- 可以开始附件2的官网例子了。
- 关于 openai 的模块关系、主要类的关系,可以参考:
一图看懂 openai 模块:ChatGPT的API python库, 资料整理+笔记(大全) 3
引用
PyCharm中如何安装第三方库? ↩︎
快速开始——API接入的例子:给宠物起名字 ↩︎
一图看懂 openai 模块:ChatGPT的API python库, 资料整理+笔记(大全) ↩︎