基于OpenAI搭建自己的ChatGPT环境1

news2024/9/29 18:49:17

基于OpenAI搭建自己的ChatGPT环境1

  • 基于OpenAI搭建自己的ChatGPT环境
    • 注册账号
    • 生成访问密钥
    • 创建虚拟环境
    • 安装openai模块
    • 环境体验

笔者初次接触人工智能领域,文章中错误的地方还望各位大佬指正!

基于OpenAI搭建自己的ChatGPT环境

ChatGPT是OpenAI研发的人机交互程序,是人工智能技术驱动的自然语言处理模型,能够通过学习和理解人类的语言来进行对话。经过长时间的训练,ChatGPT已经成长得比较强大,可以聊天、写文章、写报告、生成图片等,并且通过GitHub上的代码的训练,ChatGPT还能基于特定场景编写代码。ChatGPT目前在有些地区是不能使用的,要体验它的功能,我们可以基于OpenAI搭建自己的ChatGPT环境。

注册账号

注册地址为:OpenAI API。

点击“SIGN UP”按钮进行账号注册。

image-20230214162631857

在注册账号时需要提供注册邮箱,输入自己能正常收邮件的邮箱,后面需要通过邮箱激活。

image-20230214162829011

填写好邮箱后,设置一个自己能够记住的密码,作为后面的登录密码。

image-20230214162905201

注册完成后,注册邮箱中会收到一封激活的邮件,点击激活链接激活账号。激活完成后就可以通过注册的邮箱地址进行登录了。

image-20230214162949042

登录的第二步,需要填写一下自己的信息。

image-20230214163132616

最后一步,需要提供一个手机号码接收验证码,这一步非常重要。

受当地法律因素影响,好多地区目前不支持使用ChatGPT,当然OpenAI的使用也有一些限制。

手机号码接收验证码的这步需要自己解决。

image-20230214222426979

处理完成后,可以进入到OpenAI的主页面。

image-20230214231651609

生成访问密钥

通过个人菜单下的“View API keys“菜单,转到API keys界面。

image-20230215171516914

在API keys界面上创建一个secret key,因为OpenAI是收费的,这个key将作为用户调用接口的凭证,也会作为计费凭证。下面的这个界面只会出现一次,所以这里一定要将key复制、保存好。

image-20230214232444465

创建好secret key后,可以在列表中看到,这个key需要在后续的代码中使用。

image-20230215171603100

OpenAI的服务是收费的,当然,作为体验,OpenAI提供了一个18美刀、大约3个半月的试用额度。

对于体验功能而言,需要节约API的调用次数及生成结果内容的大小。

对于资金充裕的用户,后续需要充值续费。

image-20230214233625451

创建虚拟环境

人工智能的首选语言还是Python,这里我们也创建一个Python的虚拟环境,用于开发人工智能相关的代码。首先通过Anaconda安装好Python。然后通过conda命令创建一个虚拟环境,命名为OpenAI,命令如下:

conda create -n OpenAI python=3.9

虚拟环境的创建过程:

(base) wux_labs@wux-labs-vm:~$ conda create -n OpenAI python=3.9
Collecting package metadata (current_repodata.json): done
Solving environment: done

==> WARNING: A newer version of conda exists. <==
  current version: 22.9.0
  latest version: 23.1.0

Please update conda by running

    $ conda update -n base -c defaults conda

## Package Plan ##

  environment location: /home/wux_labs/anaconda3/envs/OpenAI

  added / updated specs:
    - python=3.9

The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    openssl-1.1.1t             |       h7f8727e_0         3.7 MB
    ------------------------------------------------------------
                                           Total:         3.7 MB

The following NEW packages will be INSTALLED:

  _libgcc_mutex      pkgs/main/linux-64::_libgcc_mutex-0.1-main None
  _openmp_mutex      pkgs/main/linux-64::_openmp_mutex-5.1-1_gnu None
  ca-certificates    pkgs/main/linux-64::ca-certificates-2023.01.10-h06a4308_0 None
  certifi            pkgs/main/linux-64::certifi-2022.12.7-py39h06a4308_0 None
  ld_impl_linux-64   pkgs/main/linux-64::ld_impl_linux-64-2.38-h1181459_1 None
  libffi             pkgs/main/linux-64::libffi-3.4.2-h6a678d5_6 None
  libgcc-ng          pkgs/main/linux-64::libgcc-ng-11.2.0-h1234567_1 None
  libgomp            pkgs/main/linux-64::libgomp-11.2.0-h1234567_1 None
  libstdcxx-ng       pkgs/main/linux-64::libstdcxx-ng-11.2.0-h1234567_1 None
  ncurses            pkgs/main/linux-64::ncurses-6.4-h6a678d5_0 None
  openssl            pkgs/main/linux-64::openssl-1.1.1t-h7f8727e_0 None
  pip                pkgs/main/linux-64::pip-22.3.1-py39h06a4308_0 None
  python             pkgs/main/linux-64::python-3.9.16-h7a1cb2a_0 None
  readline           pkgs/main/linux-64::readline-8.2-h5eee18b_0 None
  setuptools         pkgs/main/linux-64::setuptools-65.6.3-py39h06a4308_0 None
  sqlite             pkgs/main/linux-64::sqlite-3.40.1-h5082296_0 None
  tk                 pkgs/main/linux-64::tk-8.6.12-h1ccaba5_0 None
  tzdata             pkgs/main/noarch::tzdata-2022g-h04d1e81_0 None
  wheel              pkgs/main/noarch::wheel-0.37.1-pyhd3eb1b0_0 None
  xz                 pkgs/main/linux-64::xz-5.2.10-h5eee18b_1 None
  zlib               pkgs/main/linux-64::zlib-1.2.13-h5eee18b_0 None

Proceed ([y]/n)? y

Downloading and Extracting Packages
openssl-1.1.1t       | 3.7 MB    | ########################################################################################################### | 100% 
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
#     $ conda activate OpenAI
#
# To deactivate an active environment, use
#
#     $ conda deactivate

Retrieving notices: ...working... done
(base) wux_labs@wux-labs-vm:~$ 

环境创建好以后,激活一下,切换到新的虚拟环境。

conda activate OpenAI

安装openai模块

可以通过openai模块调用API来实现相关的功能,首先就需要安装openai模块。通过pip install命令安装即可。

pip install openai

安装过程为:

Collecting openai
  Downloading openai-0.26.5.tar.gz (55 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 55.5/55.5 kB 1.3 MB/s eta 0:00:00
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Installing backend dependencies ... done
  Preparing metadata (pyproject.toml) ... done
Collecting requests>=2.20
  Downloading requests-2.28.2-py3-none-any.whl (62 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 62.8/62.8 kB 4.2 MB/s eta 0:00:00
Collecting aiohttp
  Downloading aiohttp-3.8.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.0 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.0/1.0 MB 9.8 MB/s eta 0:00:00
Collecting tqdm
  Downloading tqdm-4.64.1-py2.py3-none-any.whl (78 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 78.5/78.5 kB 10.0 MB/s eta 0:00:00
Requirement already satisfied: certifi>=2017.4.17 in ./anaconda3/envs/PythonBasic/lib/python3.9/site-packages (from requests>=2.20->openai) (2022.12.7)
Collecting idna<4,>=2.5
  Downloading idna-3.4-py3-none-any.whl (61 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 61.5/61.5 kB 7.5 MB/s eta 0:00:00
Collecting urllib3<1.27,>=1.21.1
  Downloading urllib3-1.26.14-py2.py3-none-any.whl (140 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 140.6/140.6 kB 18.6 MB/s eta 0:00:00
Collecting charset-normalizer<4,>=2
  Downloading charset_normalizer-3.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (198 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 198.8/198.8 kB 21.1 MB/s eta 0:00:00
Collecting frozenlist>=1.1.1
  Downloading frozenlist-1.3.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (158 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 158.8/158.8 kB 20.4 MB/s eta 0:00:00
Collecting yarl<2.0,>=1.0
  Downloading yarl-1.8.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (264 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 264.6/264.6 kB 30.7 MB/s eta 0:00:00
Collecting aiosignal>=1.1.2
  Downloading aiosignal-1.3.1-py3-none-any.whl (7.6 kB)
Collecting async-timeout<5.0,>=4.0.0a3
  Downloading async_timeout-4.0.2-py3-none-any.whl (5.8 kB)
Collecting attrs>=17.3.0
  Downloading attrs-22.2.0-py3-none-any.whl (60 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 60.0/60.0 kB 8.5 MB/s eta 0:00:00
Collecting multidict<7.0,>=4.5
  Downloading multidict-6.0.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (114 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 114.2/114.2 kB 15.2 MB/s eta 0:00:00
Building wheels for collected packages: openai
  Building wheel for openai (pyproject.toml) ... done
  Created wheel for openai: filename=openai-0.26.5-py3-none-any.whl size=67596 sha256=08874abb0de60e7439d4dad217b14da9381c774e64067448ac4fb3a2d76ecc24
  Stored in directory: /home/wux_labs/.cache/pip/wheels/8f/72/d6/0a48b79d1e0c8aaade412dca96449f3eef8b0baf5a4a05ffc4
Successfully built openai
Installing collected packages: charset-normalizer, urllib3, tqdm, multidict, idna, frozenlist, attrs, async-timeout, yarl, requests, aiosignal, aiohttp, openai
Successfully installed aiohttp-3.8.4 aiosignal-1.3.1 async-timeout-4.0.2 attrs-22.2.0 charset-normalizer-3.0.1 frozenlist-1.3.3 idna-3.4 multidict-6.0.4 openai-0.26.5 requests-2.28.2 tqdm-4.64.1 urllib3-1.26.14 yarl-1.8.2

模块安装完成后,当前的虚拟环境中就可以看到相关的模块了。

image-20230215165637099

环境体验

编写一段代码,导入openai,设置好之前生成的secret key,然后就可以调用openai的API了。调用API的好处之一就是可以自己指定参数,设置好接口参数:

  • model,使用的模型
  • prompt,代表您的输入内容
  • temperature,使用什么采样温度,介于 0 和 2 之间。较高的值(如 0.8)将使输出更加随机,而较低的值(如 0.2)将使输出更加集中和确定。
  • max_tokens,完成时要生成的最大令牌数。
  • frequency_penalty,介于 -2.0 和 2.0 之间的数字。正值会根据新标记到目前为止在文本中的现有频率来惩罚新标记,从而降低模型逐字重复同一行的可能性。
  • presence_penalty,介于 -2.0 和 2.0 之间的数字。正值会根据新标记到目前为止是否出现在文本中来惩罚它们,从而增加模型讨论新主题的可能性。
import openai

openai.api_key = "sk-*****DTau"
 
response = openai.Completion.create(
    model="text-davinci-003", # 最强大的GPT-3模型,This model's maximum context length is 4097 tokens
    prompt="介绍一下机器学习算法",
    temperature=0.8,
    max_tokens=3000,
    top_p=1.0,
    frequency_penalty=0.5,
    presence_penalty=0.0
)

print(response.choices[0].text)

最终得到的答案是:

机器学习算法是一种指导计算机从数据中发现特征和模式的算法。它以特定的方法搜集、分析数据,运用方法自动地学习并在新数据上做出预测。这些方法包含有监督学习(如决策树、逻辑回归和支持向量机)、无监督学习(如聚类分析)、集成学习和强化学习。它们可以用于预测和分析样本数据中可能隐藏的信息,甚至可以帮助我们识别客户行为习惯。

image-20230215171734961

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

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

相关文章

Java基础之网络编程介绍详尽笔记

目录初识网络编程网络传输模型网络传输协议UDPUDP通信程序UDP的三种通信方式TCPTCP通信协议TCP的三次握手TCP的四次挥手初识网络编程 网络编程三要素 IP 设备在网络中的地址&#xff0c;是唯一的标识。 端口号 应用程序在设备中唯一的标识。 协议 数据在网络中传输的规则&…

童年回忆--扫雷(包括标记功能和递归展开)--万字讲解让你学会扫雷制作

魔王的介绍&#xff1a;&#x1f636;‍&#x1f32b;️一名双非本科大一小白。魔王的目标&#xff1a;&#x1f92f;努力赶上周围卷王的脚步。魔王的主页&#xff1a;&#x1f525;&#x1f525;&#x1f525;大魔王.&#x1f525;&#x1f525;&#x1f525; ❤️‍&#x1…

第九章:创建用户和用户权限

Windows&#xff1a;创建用户&#xff1a;第一种方法创建用户&#xff1a;先点右上角的工具&#xff0c;然后点击AD用户和计算机双击skills.com打开目录&#xff0c;再双击Users&#xff0c;进入文件夹中在右框中右击空白处&#xff0c;新建用户填充好用户信息后点击下一步然后…

Sophos防火墙日志管理

每天&#xff0c;Sophos防火墙都会生成大量的syslog数据&#xff0c;很难独自监控它们。借助EventLog Analyzer&#xff0c;您可以存档系统日志以满足合规性要求&#xff0c;并进行彻底的取证调查&#xff0c;以在发生任何问题&#xff08;例如网络入侵&#xff09;时获得宝贵的…

MySQL用户管理

文章目录MySQL用户管理用户用户信息创建用户修改用户密码删除用户数据库的权限MySQL中的权限给用户授权回收权限MySQL用户管理 与Linux操作系统类似&#xff0c;MySQL中也有超级用户和普通用户之分。如果一个用户只需要访问MySQL中的某一个数据库&#xff0c;甚至数据库中的某…

Unity 资源插件 Agents Navigation 3.1.1.unitypackage

Unity 插件 Agents Navigation 3.1.1.unitypackage 描述 这个软件包包括高性能、模块化和可扩展的代理导航。它是以 DOTS 为核心开发的&#xff0c;因此充分利用了 Unity 的最新技术栈&#xff0c;如 SIMD 数学、Jobs、Burst 编译器和 EntityComponentSystem。此外&#xff0c;…

【ASP.NET】原生JavaScript加Asp.net实现多图片上传

记录一下&#xff0c;Javascript加asp.net实现多文件上传的方法。首先看一下要实现的功能&#xff0c;图片比文字描述更直观。 一、前台代码 前台代码代码分为三个部分&#xff0c;一是HTML代码&#xff0c;二是Style样式代码&#xff0c;三是Javascript代码。 1.html代码 …

亿级高并发电商项目-- 实战篇 --万达商城项目 八(安装FastDFS、安装Nginx、文件服务模块、文件上传功能、商品功能与秒杀商品等功能)

专栏&#xff1a;高并发---分布式项目 &#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是小童&#xff0c;Java开发工程师&#xff0c;CSDN博客博主&#xff0c;Java领域新星创作者 &#x1f4d5;系列专栏&#xff1a;前端、Java、Java中间件大全、微信小程序、微信支…

C语言进阶——自定义类型:枚举、联合

&#x1f307;个人主页&#xff1a;_麦麦_ &#x1f4da;今日名言&#xff1a;如果不去遍历世界&#xff0c;我们就不知道什么是我们精神和情感的寄托&#xff0c;但我们一旦遍历了世界&#xff0c;却发现我们再也无法回到那美好的地方去了。当我们开始寻求&#xff0c;我们就已…

2023春招java面试题及答案

2023春招java面试题及答案总结1.以下Dubbo服务负载均衡策略中&#xff0c;哪一个策略的功能是相同参数的请求总是发到同一个提供者&#xff08;&#xff09;2.如下代码&#xff1a;请问编译运行的结果是什么&#xff1f;3.给出如下代码&#xff1a;请问编译运行的结果是什么&am…

英国访问学者邀请函范例

下面是知识人网访问学者老师分享的一个英国访问学者邀请函范例&#xff0c;邀请函不要复杂&#xff0c;提供签证官想看到的东西即可。Chen xxxDate of Birth: September 1th , 19xxSchool of Computer and InformationXXXX UniversityNo.X South RoadXXX city, XXX Province, 1…

1.Unity之Shader新手入门

Unity Shader着色器的基本概念如何使用Unity Shader着色器示例&#xff1a;如何使用Unity Shader着色器创建复杂的效果总结 什么是Unity中的Shader着色器&#xff1f; Shader着色器是用来控制物体外观的编程代码&#xff0c;它可以改变物体的颜色、纹理、光照、凹凸等&#xf…

智慧校园综合解决方案

在网络和信息技术的普及和国家教育信息化建设的推动下&#xff0c;以计算机网络为基础&#xff0c;以信息和知识资源的共享为手段&#xff0c;强调合作、分享、传承精神的网络化、数字化、智能化有机结合的新型教育、学习和研究的教育环境建设显得尤为重要。 智慧校园是利用信息…

leaflet 纯CSS的marker标记,不用图片来表示(072)

第072个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+leaflet中使用纯CSS来打造marker的标记。这里用到的是L.divIcon来引用CSS来构造新icon,然后在marker的属性中引用。 这里必须要注意的是css需要是全局性质的,不能被scoped转义为其他随机的css。 直接复制下面的 v…

【SPSS】频数分析和基本描述统计量详细操作教程(附实战案例)

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

记录--『uni-app、小程序』蓝牙连接、读写数据全过程

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 本文简介 这是一次真实的 蓝牙收发数据 的全过程讲解。 本文使用 uni-app Vue3 的方式进行开发&#xff0c;以手机app的方式运行(微信小程序同样可行)。 uni-app 提供了 蓝牙 和 低功耗蓝牙 的 api &…

深圳硬件黑客松活动,开放报名!

开源社KAIYUANSHE近期微信公众号订阅功能做调整啦&#xff01;没有被星标的账号在信息流里可能不显示大图了&#xff01;快星标⭐我们&#xff0c;就可以及时看到发布的文章啦&#xff01;STEP01 点击右上角标志STEP02 点击【设为星标】近年来&#xff0c;创客文化越来越受到人…

figma通过什么方式可以转换为sketch

Figma 如何转为 Sketch 文件&#xff1f;巧了&#xff0c;刚好我对这个问题很熟悉&#xff0c;作为一个使用过 Figma 也使用过 Sketch 的人来说&#xff0c;我还蛮希望两个软件能够互相打通的&#xff0c;不过不管是 Figma 也好还是 Sketch 也好&#xff0c;两个设计软件&#…

含泪吐槽学C++的血与泪

含泪吐槽学C的血与泪 C在各位程序猿眼里并不陌生&#xff0c;但凡学习过C的人&#xff0c;都极有可能被它曾经蹂躏得不要不要的&#xff0c;而我就是其中一个。 文章目录1 我和C的那段血泪史2 再次与C重逢3 我想和你再来一次4 柳暗花明友情推荐5 福利赠书活动6 一个彩蛋大家好&…

FLUXNET数据下载具体步骤

一、FLUXNET数据介绍 全球长期通量观测网络概念最早起源于1993年&#xff0c;由国际地圈-生物圈计划首次提出&#xff0c;国际科学委员会在1995年的La Thuile研讨会上对此概念进行正式讨论&#xff0c;在这次会议上&#xff0c;通量观测委员会讨论了进行长期通量观测的可能性以…