〖ChatGPT实践指南 - 零基础扫盲篇⑦〗- 基于 Python 实现的 OpenAI-Library 的简单使用

news2025/1/20 1:37:53

文章目录

  • ⭐ python 安装 OpenAI library
  • ⭐ 创建 openai.py 进行测试
  • ⭐ openai.Completion.create() 方法的小拓展

该章节我们呢来学习一下 OpenAI-Library 的使用,OpenAI-Library 是 OpenAI 官方给我们提供的各种开发语言的库,供我们使用。在前面的章节中,我们演示的 “Demo-宠物名字生成器” 这个案例就是 nodejs 来调用的OpenAI 的 API。接下来,我们再看一下 Python 语言的 Library。


⭐ python 安装 OpenAI library

如果电脑里没有 Python环境,需要去官网下载安装 Python,网址:https://www.python.org/ ,具体可参考 〖Python零基础入门篇①〗- Python编程环境搭建-Python3解释器安装。

Python 安装完成之后,记得验证一下 Python 和 pip 是否安装成功。


使用 pip 安装 openai library:执行命令 pip install openai



⭐ 创建 openai.py 进行测试

接下来我们创建一个 Python 文件,编写测试代码,用于测试 openai。

代码示例如下:

#!/usr/bin/python3
# coding:utf-8            
#
# Copyright (C) 2023 - 2023 Husky, Inc. All Rights Reserved 


import openai       # 导入 openai


OpenAI_Key = "sk-m2EP13QY26zdaPyXlN4RT3BlbkFJfGxp5G6fg23e7f6xF**k"      # 将 OpenAI API_Key 赋值给变量

openai.api_key = OpenAI_Key

response = openai.Completion.create(  # 调用 openai.Completion.create() 函数,传入相关的参数,创建一个 OpenAI Completion 实例。
    model="text-davinci-003",         # 调用 "text-davinci-003" 模型
    prompt="Say this is a test",      # 传入提示为 "Say this is a test"
    temperature=0,                    # 控制生成文本的多样性,值越高生成的文本越多样,默认值为 0.5。
    max_tokens=7                      # 生成文本的最大长度,以 token 数量为单位,默认值为 60。
)

print(response)     # 输出生成的文本

运行该脚本,查看 OpenAI 给我们返回的结果:

{
  "choices": [
    {
      "finish_reason": "length",
      "index": 0,
      "logprobs": null,
      "text": "\n\nThis is indeed a test"
    }
  ],
  "created": 1682588117,
  "id": "cmpl-79sJxEVuBv4Weh4YQboxDQYXnTImw",
  "model": "text-davinci-003",
  "object": "text_completion",
  "usage": {
    "completion_tokens": 7,
    "prompt_tokens": 5,
    "total_tokens": 12
  }
}

在返回的 “choices” 中最重要的就是 “text” ,因为这个字段返回的是我们想要的返回结果。

上面的 "choices" 我们可以看到返回的是 "\n\nThis is indeed a test" ,因为我们设置的 max_tokens=7 ,也就说最大的返回 tokens 长度为 7,"This is indeed a test" 的长度是 5 ,所以这里有两个 "\n" 进行补位。

“usage” 是对我们使用用量的一个统计:“completion_tokens” - 完成的tokens长度是7;“prompt_tokens” - 提示的tokens长度是5;“total_tokens” - 总计的tokens长度是12。

以上就是基于 Python 实现的一个 OpenAI library 的简单实例。


⭐ openai.Completion.create() 方法的小拓展

openai.Completion.create() 方法用于生成对话文本、语言翻译、摘要、问题回答等自然语言处理任务的结果。

它的参数包括:这些参数可以根据具体任务的需求进行调整。

  • engine:指定要使用的模型引擎,例如 davincicurie 等。
  • prompt:包含输入文本的字符串,用于指定任务的输入。
  • temperature:控制生成文本的多样性,值越高生成的文本越多样,值越低生成的文本越保守,默认值为 0.5
  • max_tokens:生成文本的最大长度,以 token 数量为单位,默认值为 60
  • top_p:控制生成文本的多样性,通过筛选概率大于给定阈值的 token 来控制,值越高生成的文本越多样,值越低生成的文本越保守,默认值为 1.0
  • frequency_penalty:控制生成文本中重复 token 的惩罚程度,值越高表示越不允许生成重复 token,默认值为 0.0
  • presence_penalty:控制生成文本中与输入文本相似的 token 的惩罚程度,值越高表示越不允许生成与输入文本相似的 token,默认值为 0.0
  • stop:指定生成文本的终止字符,可以是字符串或字符串列表,生成文本中出现这些字符时停止生成。
  • n:指定要生成的文本数量,默认值为 1
  • stream:是否启用流式 API,默认为 False

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

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

相关文章

【无标题】基于matlab的长短期神经网络lstm的股票预测

目录 背影 摘要 LSTM的基本定义 LSTM实现的步骤 基于长短期神经网络LSTM的股票预测 MATALB编程实现,附有代码 效果图 结果分析 展望 参考论文 背影 股票市场的波动十分巨大,由于一些不确定因素的影响,导致很难对股票进行投资盈利。因此&…

数据库 SQL Server 检测到基于一致性的逻辑 I/O 错误 校验和不正确 解决方法

目录 一、错误提示信息: 二、原因分析: 三、解决方法: 四、执行完成结果: 五、重要说明 一、错误提示信息: 本文验证是数据库中的baiduAi_0258表无法通过select语句ID条件查询, 如执行 select * fro…

远程桌面,openGL

x11、xserver看另一篇博客 openGL是一种规范,用于绘制图像 OpenGL是Khronos Group开发维护的一个规范(也就是提供了一种接口),它主要为我们定义了用来操作图形和图片的一系列函数的API,需要注意的是OpenGL本身并非API。…

vscode 配置有误导致的一次Linux 崩溃

一、问题描述 1. 要实现的功能 编写一个Linux 按键驱动,按下按键时,产生中断,在中断中启动定时器进行防抖处理。 2. 出现的问题 在中断处理函数中,调用 add_timer 函数设置定时器超时函数,并启动定时器。编写完驱动…

【消息队列】Apache Pulsar存储计算分离

前言 对于一个互联网项目来说,一般除了在语言层面的技术选型外,也会引入各种中间件,比如缓存、消息队列、搜索、NoSQL等,但是跳出语言层面来看的话,其实我们庖丁解牛之后,每个中间件都解决了特定的问题。 …

计组 作业九

作业9 题量: 36 满分: 100 作答时间:04-27 10:56至05-10 23:59 89.5分 一. 单选题(共18题,39分) 1. (单选题, 2分)Intel80486是32位微处理器,Core是______位微处理器。 A. 16B. 32C. 48D. 64 我的答案…

20.网络爬虫—Scrapy-Redis分布式爬虫

网络爬虫—Scrapy-redis详讲 Redis的安装与使用分布式概念和作用分布式爬虫分布式爬虫特点redis的使用Redis 操作/启动 Redis Desktop Manager下载特点和架构安装和使用Scrapy-redis 代码部署spider文件 settings文件 前言: 🏘️🏘️个人简介…

wsl2使用open3d等进行图像绘制

在~/.bashrc文件中添加两个环境变量 export DISPLAY"grep nameserver /etc/resolv.conf | sed s/nameserver //:0" export LIBGL_ALWAYS_INDIRECT0 第一行是让wsl将openGL命令(图形绘制命令)输出到哪里,也就是x-server的位置&…

【Linux】指令(上)

⭐博客主页:️CS semi主页 ⭐欢迎关注:点赞收藏留言 ⭐系列专栏:Linux ⭐代码仓库:Linux 家人们更新不易,你们的点赞和关注对我而言十分重要,友友们麻烦多多点赞+关注,你们的支持是我…

机器学习在生态、环境经济学中的应用及论文写作

近年来,人工智能领域已经取得突破性进展,对经济社会各个领域都产生了重大影响,结合了统计学、数据科学和计算机科学的机器学习是人工智能的主流方向之一,目前也在飞快的融入计量经济学研究。表面上机器学习通常使用大数据&#xf…

08_ThreadPool线程池

1. 架构说明 Java中的线程池是通过Executor框架实现的,该框架中用到了Executor,ExecutorService,ThreadPoolExecutor这几个类。 Executor接口是顶层接口,只有一个execute方法,过于简单。通常不使用它,而是…

什么是shell脚本和简单shell脚本练习

文章目录 什么是shell脚本和简单shell脚本练习什么是shell脚本为什么要学习shell脚本第一个脚本编写与执行编写第一个脚本 简单的shell脚本练习简单案例交互式脚本:变量内容由用户决定随日期变化:利用date建立文件数值运算:简单的加减乘除数值…

java内存占用过大分析,mat内存快照分析

背景 最近功能模块上线后,生产内存占用显著提升,查看gc日志发现年轻代频繁从2G回收到60M左右,猜测是在方法中频繁创建大对象导致,由于一时间无法通过review代码找出问题所在,只好将生产jvm内存快照dump后通过java mem…

Zotero+坚果云打造多设备同步的文献管理工具(保姆级教程)

Zotero坚果云打造多设备同步的文献管理工具(保姆级教程) 文章目录 Zotero坚果云打造多设备同步的文献管理工具(保姆级教程)Zotero介绍所需软件或插件实现方式步骤1:坚果云配置步骤2:Zotero配置步骤3&#x…

细讲shell中的循环语句--for语句

目录 一:何为循环 1.循环概述 2.使用循环的好处 二:for循环语句 1.for语句的用法 ​2. 语法结构 (1)一般格式 (2)类C语言格式 (3)死循环 3.事例 ​4.常用转义符 5.制作九九乘法表 三&…

旧照片修复-模糊图片变清晰-2023年度最强神器 codeformer

CodeFormer是一种基于AI技术深度学习的人脸复原模型,由南洋理工大学和商汤科技联合研究中心联合开发。该模型通过结合了VQGAN和Transformer等技术,可以通过提供模糊或马赛克图像来生成清晰的原始图像。 功能: 1、老照片修复 2、黑白照片彩色…

LeetCode 2641 二叉树的堂兄弟节点 II

LeetCode 2641 二叉树的堂兄弟节点 II 给你一棵二叉树的根 root ,请你将每个节点的值替换成该节点的所有 堂兄弟节点值的和 。 如果两个节点在树中有相同的深度且它们的父节点不同,那么它们互为 堂兄弟 。 请你返回修改值之后,树的根 root …

【Auto-GPT云部署】

部署自己的Auto-Gpt 先说说什么是Chat-Gpt Chat-GPT (Generative Pretrained Transformer)是由OpenAI提出的一种自然语言处理技术,是基于Transformers和预训练机制的大规模语言模型。与传统的基于规则或基于统计的自然语言处理方法不同,Chat-GPT使用深…

【网络抓包工具】tcpdump 最新版本移植到开发板(海思平台)

目录 一、概述 二、libpcap、tcpdump源码下载 三、libpcap、tcpdump交叉编译  👉3.1 交叉编译 libpcap  👉3.2 交叉编译 tcpdump 一、概述 tcpdump是一个功能强大的,用于抓取网络数据包的命令行工具,与带界面的Wireshark一样&am…

CLion开发工具 | 02 - 常用功能配置介绍

专栏介绍 配置项概览 CLion有非常多的配置项,本文将列举一些常用的配置项。 一、外观配置 1. 主题 2. 新UI 新的UI有点VScode化,个人不太喜欢,还是老的这套UI香,所以未开启: 3. 环境变量 IDE除了导入系统/用户的…