Pycharm中如何安装 OpenAI ——ChatGPT的python包?

news2024/11/13 10:03:44

本文由 大侠(AhcaoZhu)原创,转载请声明。
链接: https://blog.csdn.net/Ahcao2008

Alt

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、安装前提条件

  • 安装无需外网条件。
  • 开发使用需要有key
    • 虽然不需要外网条件,任何人可以安装 openai 模块,可是后续如果要直接基于 openai 开发的话,还是需要有 key
    • 除非第三方封装后共享的 key,目前国内很多个人或机构在做,或许已经有“免费”。
    • 顺带说一句,据OpenAI官网介绍,它的收费政策会有变化,8月份之前,是 5$ 不限流量和参数(主要是温度、TOKEN数、context上下文等,见下图),各参数都可以尝试,后面会根据 TOKEN 收费。当然版本(ChatGPT-3.5)、应用范围(Engine)还是要限制的。
      openai-paras
  • 每个机器的安装条件是不一样的。
    • 笔者专门找新机器(win11)测试,发现除了依赖库,还要安装 vc++运行库v11以上(安装过程可能会中断,它会有英文提示)。
    • 这个需要独立在微软官网找到并安装(自动跳转安装过程并不可用)。
      C++ V14

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 urllib3

import 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-xmlfileet_xmlfile
    • 大写转小写,例如:MarkupSafemarkupsafe
    • python 前导去掉,例如:python-dateutildateutil
    • 一个特殊: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 urllib3

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

pip install pycodestyle
    pip install tomli
pip install autopep8

    pip install importlib_metadata
    pip install zipp
pip install click

    pip install jinja2
    pip install itsdangerous
    pip install werkzeug
    pip install markupsafe
pip install flask

    pip install pytz
    pip install python-dateutil
pip install pandas
    pip install typing-extensions
pip install pandas-stubs

pip install openai

4、检查
至此,openai 以及它的全部依赖库、依赖库的依赖库,也都装好。
在PyCharm中打开 test01.py 可以查看到哪些模块还没有装好。

下一步

  • 可以开始附件2的官网例子了。
  • 关于 openai 的模块关系、主要类的关系,可以参考:
    一图看懂 openai 模块:ChatGPT的API python库, 资料整理+笔记(大全) 3

引用


  1. PyCharm中如何安装第三方库? ↩︎

  2. 快速开始——API接入的例子:给宠物起名字 ↩︎

  3. 一图看懂 openai 模块:ChatGPT的API python库, 资料整理+笔记(大全) ↩︎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/462916.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

js 打开资源管理器(经典范例:纯前端选择并预览图片)

效果预览 完整代码范例 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta http-equiv"X-UA-Compatible" content"IEedge" /><meta name"viewport" content"width…

C++STL详解(十) -- 使用哈希表封装unordered_set和unordered_map

文章目录 哈希表模板参数改造针对模板参数V改造增加仿函数获取具体数据类型. 哈希表的正向迭代器正向迭代器中的内置成员:正向迭代器的成员函数 哈希表插入函数的修改(适用于unordered_map)一个类型K去做set和unordered_set他的模板参数的必备条件.unordered_set的模拟实现(完整…

不得不的创建型模式-原型模式

原型模式是一种创建型模式&#xff0c;它通过复制一个已有对象来创建新的对象&#xff0c;而无需知道新对象的具体类型。 原型模型的结构&#xff1a; 下面是一个简单的C实现原型模式的代码示例&#xff1a; #include <iostream> #include <string> #include <…

React markdown 编辑器

react-markdown 是一款 github 上开源的适用于 react 的 markdown 组件&#xff0c;可以基本实现 markdown 的功能&#xff0c;且可以根据自己实际应用定制的 remark 组件。 安装 安装 markdown 预览插件 react-markdown npm install react-markdown或者&#xff1a; yarn …

Flask+mysql简单问答网站(实现公网可访问)

先到github下载仓库文件 https://github.com/QHCV/flask_mysql_blog python版本3.8&#xff0c;提前安装好Mysql数据库 1.安装python包 pip install -r requirements.txt2.修改配置文件config.py Mysql数据库用户名和密码用于发送验证码的邮箱配置 ​ 在设置->账户下开…

数仓建设规划核心问题!

小A进入一家网约车出现服务公司&#xff0c;负责公司数仓建设&#xff0c;试用期主要一项 OKR是制定数据仓库建设规划&#xff1b;因此小 A 本着从问题出发为原点&#xff0c;先对公司数仓现状进行一轮深入了解&#xff0c;理清存在问题&#xff0c;然后在以不忘初心原则提出解…

提取文本的摘要snownlp模块

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 提取文本的摘要 snownlp模块 [太阳]选择题 关于以下python代码说法错误的一项是&#xff1f; from snownlp import SnowNLP myText """ChatGPT的出现标志着人类科技发…

CSS3 grid网格布局

文章目录 CSS3 grid网格布局概述grid属性说明使用grid-template-rows & grid-template-columns 定义行高和列宽grid-auto-flow 定义项目的排列顺序grid-auto-rows & grid-auto-columns 定义多余网格的行高和列宽row-gap & column-gap 设置行间距和列间距gap 简写形…

Java版spring cloud 本工程项目管理系统源码-全面的工程项目管理

​ ​工程项目管理系统是指从事工程项目管理的企业&#xff08;以下简称工程项目管理企业&#xff09;受业主委托&#xff0c;按照合同约定&#xff0c;代表业主对工程项目的组织实施进行全过程或若干阶段的管理和服务。 如今建筑行业竞争激烈&#xff0c;内卷严重&#xff0c…

Leetcode605. 种花问题

Every day a leetcode 题目来源&#xff1a;605. 种花问题 解法1&#xff1a;贪心 贪心思想&#xff1a;在不打破种植规则的情况下种入尽可能多的花&#xff0c;然后用“最大种植数量”和“所需要种植数量”进行大小比较即可。 设地块长度为n&#xff0c;种花的情况可分为4…

分享一个菜单标签页动画,切换丝滑无比

先上效果图: 代码如下,复制粘贴大法拿走即可使用: <!DOCTYPE html> <html lang="en"> <head>

win系统使用frp端口映射实现内网穿透,配置“任务计划程序”提高稳定性

Github下载最新版frp: https://github.com/fatedier/frp/releases/download/v0.48.0/frp_0.48.0_windows_amd64.zip 解压把frpc.exe和frpc.ini放到D:\program\frp目录下&#xff0c;修改frpc.ini内容如下&#xff1a; [common] server_addr 服务器域名或IP&#xff0c;假设…

Dockerfile镜像LNMP的实战

Dockerfile镜像LNMP的实战 环境准备关闭防火墙拉取centos:7镜像自定义网络 部署nginx&#xff08;容器IP 为 172.18.0.10&#xff09;部署mysql&#xff08;容器IP 为 172.18.0.20&#xff09;部署php&#xff08;容器IP 为 172.18.0.30&#xff09; 环境准备 关闭防火墙 [ro…

taro之项目初始化模板

项目初始化模板 一直以来&#xff0c;在使用 Taro CLI 的 taro init 命令创建项目时&#xff0c;CLI 会提供若干内置模板给开发者选择。但是很多团队都有自己独特的业务场景&#xff0c;需要使用和维护的模板也不尽一致&#xff0c;因此 Taro 支持把项目模板打包成一个能力赋予…

JavaScript奇技淫巧:debugger拦截

debugger指令&#xff0c;一般用于调试&#xff0c;在如浏览器调试执行环境中&#xff0c;可以在JavaScript代码中产生中断。 如果想要拦截debugger&#xff0c;是不容易的&#xff0c;常用的函数替代、proxy方法均对它无效&#xff0c;如&#xff1a; window.debugger (fun…

电脑音乐相册软件推荐 电脑音乐相册制作方法

音乐相册就是把照片剪辑成视频&#xff0c;并配上动听的音乐。音乐相册很适合保存照片&#xff0c;记录生活&#xff0c;传达出拍摄者当时的心情。下面为大家带来电脑音乐相册软件推荐&#xff0c;电脑音乐相册制作方法。 一、电脑音乐相册软件推荐 很多小伙伴在制作音乐相册…

大数据Doris(三):Apache Doris分布式部署准备工作

文章目录 Apache Doris分布式部署准备工作 一、Apache Doris下载 二、节点划分 三、节点配置 1、设置文件句柄数 2、时间同步 3、关闭 Swap 分区 4、调大单个进程的虚拟内存区域数量 Apache Doris分布式部署准备工作 部署Apache Doris时需要分别部署FE、BE、Broker。然…

iOS - RunLoop 基本原理介绍

一、Runloop 简介 Runloop 是通过内部维护事件循环来对事件/消息进行管理的一个对象。 事件循环&#xff08;状态切换&#xff09; 没有消息需要处理时&#xff0c;休眠以避免资源占用&#xff08;用户态 -> 内核态&#xff09;有消息需要处理时&#xff0c;立刻被唤醒&a…

电视盒子什么牌子好?数码博主盘点2022电视盒子排行榜

网络电视盒子是电视机的标配&#xff0c;开放性的安卓系统能观看海量视频资源&#xff0c;我每年也会进行电视盒子的测评&#xff0c;今天要来分享五款最热门的网络电视盒子推荐&#xff0c;跟着我一起看看网络电视盒子哪个好。 一&#xff1a;泰捷WEBOX60Pro电视盒子 年度…

【华为HCIP | 高级网络工程师】刷题日记(1)

个人名片&#xff1a; &#x1f43c;作者简介&#xff1a;一名大二在校生&#xff0c;讨厌编程&#x1f38b; &#x1f43b;‍❄️个人主页&#x1f947;&#xff1a;落798. &#x1f43c;个人WeChat&#xff1a;落. &#x1f54a;️系列专栏&#xff1a;&#x1f5bc;️ 零基础…