二、OpenAI开发者快速入门

news2024/11/20 22:41:43

启动并运行OpenAI API

        OpenAI API 为开发者提供一个简单的接口,使其能够在他们的应用中创建一个智能层,由OpenAI最先进的模型提供支持。聊天补全端点为ChatGPT提示支持,一种简单的方法是:输入文本,使用GPT-4模型输出。 本入门教程将帮助你安装本地的开发环境,并发送第一个API请求。如果你是一个经验丰富的开发者或想深入的使用OpenAI API,GPT指南的API参考手册对你将有很大帮助。通过这个快速入门教程,你将学习到:
  • 如何安装开发环境
  • 安装最新的SDKs
  • OpenAI Api 的一些基本概念
  • 发送你的第一个API请求

1. 帐号设置

注册一个OpenAI账号,已有请登录,并创建密钥,自定义密钥的名称,妥善保存密钥,不要与他人共享。

2. 开发语言选择

Python是一门非常流行的编程语言,由于它的易用性,广泛应用在数据应用开发、web开发和其它一些编程任务。OpenAI提供了一个定制的Python开发库,使开发者能够高效、简捷的进行调用。

3. 安装Python

为了能够使用OpenAI Python 开发库,确保你已经安装了Python。一些电脑系统已经预装了Python,而有的则需要你自己进行安装。测试你的电脑是否安装了Python,打开终端或命令行工具:

  • 苹果系统:打开终端:可以在应用程序里查找或通过Spotlight进行搜索
  • windows系统:打开命令行:可以在开始菜单输入"cmd"进行搜索

在终端或命令行输入python,并回车,如果可以进入Python解释器,证明已经安装了Python,跳过此步,直接进入下一步。如果显示错误信息:“错误:Python命令没找到”,则需要安装Python,直到Python在终端或命令行可用。
可以到官方站点安装最新的Python版本,OpenAI API Python库需要Python版本至少为3.7.1或更高,如果你是首次安装Python,可参考Python官方的新手安装指南。

3.1 安装虚拟环境(可选)

一旦你成功安装了Python环境,通过虚拟环境安装OpenAI是一个很好的选择。虚拟环境提供一个干净工作空间,并可避免和其它项目环境产生冲突。如果你不想安装虚拟环境,可跳过此步。
如果安装虚拟环境,Python提供了一个内置的venv模块,为虚拟环境的安装提供了基本的支持。运行下面的命令在当前目录创建一个命名为“openai-env”的虚拟环境:

python -m venv openai-env

创建虚拟环境之后,你需要激活它:

# windows
openai-env\Scripts\activate
# Unix or MacOS
source openai-env/bin/activate

执行成功后,你会发现终端或命令行最左侧显示“openai-evn”。

3.2 安装OpenAI Python库

如果你已经安装了Python3.7.1或更高的版本的虚拟环境,执行下面命令安装OpenAI Python库:

pip install --upgrade openai

安装成功之后,可以通过pip list查看OpenAI 是否安装成功

4. 安装API key

4.1 为所有项目安装API key(推荐)

这种安装方法的好处是使你的所有项目能够自动检测访问API key,不用写任何代码。

苹果系统

  1. 打开终端:可通过应用文件夹或Spotlight查找(Command + Space)
  2. 编辑Bash Profile: 使用命令nano ~/.bash_profile 或 nano ~/.zshrc(新的MacOS版本) 打开配置文件
  3. 添加环境变量:在编辑器中加入下面的配置,替换your-api-key-here为你的API key:
    export OPENAI_API_KEY='your-api-key-here'
    
  4. 保存并退出:按Ctrl + O 保存更改,Ctrl + X 关闭编辑器
  5. 加载配置文件:使用命令:source ~/.bash_profile 或 source ~/.zshrc 加载配置
  6. 验证:在终端输入: echo $OPENAI_API_KEY,如果显示你的API key则配置成功

windows

  1. 打开命令提示行:可从开始菜单搜索"cmd"
  2. 在当前的会话临时设置环境变量:执行下面的命令设置环境变量,并把your-api-key-here替换成你自己的key
setx OPENAI_API_KEY "your-api-key-here"
  1. 永久设置环境变量:通过系统属性设置永久环境变量
    • 右击“我的电脑”选择属性
    • 选择系统高级设置
    • 点击环境变量按钮
    • 在系统变量窗口点击新建,并输入OPENAI_API_KEY 作为变量名,API key作为变量值
  2. 验证:在终端输入: echo $OPENAI_API_KEY,如果显示你的API key则配置成功

4.2 为单独项目安装API key

如果你只想让单独的项目访问API key,你可以创建一个本地的文件.env,并写入你的API key,使用Python代码显示的调用,步骤如下:
在你的项目根目录创建.env文件,并写入如下内容:

# 替换为你的key
OPENAI_API_KEY=abc123

下面的代码可引入key

from openai import OpenAI

client = OpenAI()
# 默认会通过 os.environ.get("OPENAI_API_KEY")获得key
# 如果你设置的变量名不同,可通过下面代码获得
# client = OpenAI(
#   api_key=os.environ.get("CUSTOM_ENV_NAME"),
# )

5. 发送第一个API请求

当Python安装和API key配置成功后,现在就可调用OpenAI API,创建一个openai-test.py文件,写入下面代码:

from openai import OpenAI
client = OpenAI()

completion = client.chat.completions.create(
  model="gpt-3.5-turbo",
  messages=[
    {"role": "system", "content": "你是一个诗人,你能创作很多的诗"},
    {"role": "user", "content": "请创作一首关于2024年春节的七言诗."}
  ]
)

print(completion.choices[0].message)

在这里插入图片描述

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

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

相关文章

在JSP中实现JAVABEAN

在JSP中实现JAVABEAN 问题陈述 创建Web应用程序以连接数据库并检索作者名、地址、城市、州及邮政编码等与作者的详细信息。JavaBean组件应接受作者ID、驱动程序名及URL作为参数。信息要从authors表中检索。 解决方案 要解决上述问题,需要执行以下任务: 创建Web应用程序。创…

macbookair怎么清理内存 ?如何利用 CleanMyMac X 进行系统清理

macbookair怎么清理内存 清理MacBook Air的内存可以通过以下几种方法: 优化储存空间。在MacBook Air上,可以通过“优化储存空间”来释放空间。这包括将文件储存在iCloud中,如桌面、文稿和iCloud信息,以及自动移除在iCloud中观看…

Lombok 高级说明

优质博文:IT-BLOG-CN 一、痛点 【1】代码臃肿:POJO中的getter/setter/equals/hashcode/toString等; 【2】样板式代码:I/O流的关闭操作等; Lombok是一个可以通过注解简化Java代码开发的工具,能够在我们编…

2.8日学习打卡----初学RabbitMQ(三)

2.8日学习打卡 一.springboot整合RabbitMQ 之前我们使用原生JAVA操作RabbitMQ较为繁琐&#xff0c;接下来我们使用 SpringBoot整合RabbitMQ&#xff0c;简化代码编写 创建SpringBoot项目&#xff0c;引入RabbitMQ起步依赖 <!-- RabbitMQ起步依赖 --> <dependency&g…

关节点检测

https://www.bilibili.com/video/BV19g4y1777q/?p2&spm_id_frompageDriver 关节点检测全流程 YOLO:单阶段&#xff0c;快&#xff1b; MMPose&#xff1a;双阶段&#xff0c;准&#xff1b; 标注工具Labelme 用Labelme标注样本数据集

利用Pybind11封装Python版的WiringPi!

原版的WiringPi是一个用于树莓派的GPIO库&#xff0c;用C语言开发&#xff0c;仓库地址&#xff1a;https://github.com/WiringPi/WiringPi。该库允许用户以编程方式访问和控制树莓派的GPIO引脚。而随着Python在嵌入式设备上的快速发展&#xff0c;其对底层引脚的操作也变得越来…

OpenAI给DALL-E 3来了个新动作,加入了全新水印技术

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

老胡的周刊(第128期)

老胡的信息周刊[1]&#xff0c;记录这周我看到的有价值的信息&#xff0c;主要针对计算机领域&#xff0c;内容主题极大程度被我个人喜好主导。这个项目核心目的在于记录让自己有印象的信息做一个留存以及共享。 &#x1f3af; 项目 coze-discord-proxy[2] 代理 Discord-Bot 对…

018 Linux

文章目录 操作系统定义分类Linux系统构成 Linux文件系统Linux常用命令基础操作命令文件操作压缩解压权限管理显示展示命令其他命令 vi编译器操作使用 添加用户基本概念用户管理命令 ubuntu软件安装ssh服务终端启动Python服务 操作系统 定义 操作系统是管理计算机硬件与软件资…

【超高效!保护隐私的新方法】针对图像到图像(l2l)生成模型遗忘学习:超高效且不需要重新训练就能从生成模型中移除特定数据

针对图像到图像生成模型遗忘学习&#xff1a;超高效且不需要重新训练就能从生成模型中移除特定数据 提出背景如何在不重训练模型的情况下从I2I生成模型中移除特定数据&#xff1f; 超高效的机器遗忘方法子问题1: 如何在图像到图像&#xff08;I2I&#xff09;生成模型中进行高效…

archlinux 使用 electron-ssr 代理 socks5

提前下载好 pacman 包 https://github.com/shadowsocksrr/electron-ssr/releases/download/v0.2.7/electron-ssr-0.2.7.pacman 首先要有 yay 和 aur 源&#xff0c;这个可以参考我之前的博客 虚拟机内使用 archinstall 安装 arch linux 2024.01.01 安装依赖 yay 安装的&#…

堆排序----C语言数据结构

目录 引言 堆排序的实现**堆的向下调整算法** 对排序的时间复杂度建堆的时间复杂度&#xff1a;排序过程的时间复杂度&#xff1a;总体时间复杂度&#xff1a; 引言 堆排序&#xff08;Heap Sort&#xff09;是一种基于比较的排序算法&#xff0c;利用堆的数据结构来实现。它的…

数据湖的整体思路

湖本质上是一个集中化&#xff0c;中心化的&#xff0c;一体化的存储技术&#xff0c;并且在其之上追求技术架构的统一化&#xff0c;如流批一体&#xff0c;服务分析一体化。 当数据湖成为中心&#xff0c;那么就可以围湖而建“数据服务环”&#xff0c;环上的服务包括了数仓、…

基于tomcat运行jenkins常见的报错处理

目录 1.jenkins.util.SystemProperties$Listener错误 升级jdk11可能遇到的坑 2.java.lang.RuntimeException: Fontconfig head is null, check your fonts or fonts configuration 3.There were errors checking the update sites: UnknownHostException:updates.jenkins.i…

JAVA Web 学习(五)Nginx、RPC、JWT

十二、反向代理服务器——Nginx 支持热部署&#xff0c;几乎可以做到 7 * 24 小时不间断运行&#xff0c;即使运行几个月也不需要重新启动&#xff0c;还能在不间断服务的情况下对软件版本进行热更新。性能是 Nginx 最重要的考量&#xff0c;其占用内存少、并发能力强、能支持…

初识Solidworks:我的第一份作业的感想

从来没用CAD软件画过机械设计图。但我脑子里有一种概念&#xff0c;无非就是把尺规作图软件化&#xff0c;更方便画图、更方便修改、更方便打印一些。但第一份 Solidworks 作业就颠覆了我的认知&#xff0c;考虑到这个软件的上市时间&#xff0c;让我意识到自己对 CAD 软件的认…

【大厂AI课学习笔记】【1.5 AI技术领域】(8)文本分类

8,9,10&#xff0c;将分别讨论自然语言处理领域的3个重要场景。 自然语言处理&#xff0c;Natual Language Processing&#xff0c;NLP&#xff0c;包括自然语言识别和自然语言生成。 用途是从非结构化的文本数据中&#xff0c;发掘洞见&#xff0c;并访问这些信息&#xff0…

C++——二叉树

引入 map和set特性需要先铺垫二叉搜索树&#xff0c;而二叉搜索树也是一种树形结构 二叉搜索树的特性了解&#xff0c;有助于更好的理解map和set的特性 1.二叉搜索树的概念及优缺点 1.1二叉搜索树的概念 二叉搜索树又称二叉排序树&#xff0c;它或者是一棵空树&#xff0c;或…

CSP-202109-1-数组推导

CSP-202109-1-数组推导 解题思路 如果 currentValue 与 previousValue 相同&#xff0c;说明这个值不是一个独特的新值&#xff0c;因此只将它加到 sumTotal 上。如果 currentValue 与 previousValue 不相同&#xff0c;说明这是一个新的独特值&#xff0c;因此既将它加到 su…

逐行拆解Guava限流器RateLimiter

逐行拆解Guava限流器RateLimiter 常见限流算法 计数器法 设置一个时间窗口内允许的最大请求量&#xff0c;如果当前窗口请求数超过这个设定数量&#xff0c;则拒绝该窗口内之后的请求。 关键词&#xff1a;时间窗口&#xff0c;计数器。 举个例子&#xff0c;我们设置1秒钟…