OpenAI API调用

上次简单写了一篇对ChatGPT的一些看法,最近想深入研究一下。

极客时间上有个课程《AI大模型之美》,看了一下还可以。当做入门是不错的,但还是有很多细节可以打磨,不过毕竟是在风口上的课,也能接受。

本次演示如何调用OpenAPI的函数。

人工智能分类

要了解GPT,大体总得知道一下GPT在人工智能分类里属于哪部分吧!

GPT模型是一种基于深度学习的神经网络模型,是一种自然语言处理技术。GPT模型使用了一个称为“自回归语言模型”的方法来训练。在训练过程中,模型会接收到一个输入序列,并预测下一个单词或句子。这个预测过程会不断重复,直到生成完整的文本。在预测过程中,GPT模型会根据已经生成的文本和上下文信息来预测下一个单词或句子。这种无监督学习方法可以让模型从大量的文本数据中学习语言的模式和规律,从而生成高质量的自然语言文本。

GPT4回答的分类:

机器学习
│
├── 监督学习
│   ├── 线性回归
│   ├── 逻辑回归
│   ├── 支持向量机 (SVM)
│   ├── 决策树
│   │   └── 随机森林
│   ├── K-近邻
│   └── 神经网络
│       ├── 深度学习
│       │   ├── 卷积神经网络 (CNN)
│       │   ├── 循环神经网络 (RNN)
│       │   │   └── 长短时记忆网络 (LSTM)
│       │   └── 生成对抗网络 (GAN)
│       ├── TensorFlow
│       │   └── Keras
│       ├── PyTorch
│       └── MXNet
│
├── 无监督学习
│   ├── 聚类
│   │   ├── K-均值
│   │   ├── 层次聚类
│   │   └── DBSCAN
│   ├── 降维
│   │   ├── 主成分分析 (PCA)
│   │   ├── t-分布邻域嵌入算法 (t-SNE)
│   │   └── 自编码器
│   └── 关联规则学习
│       └── Apriori算法
│
├── 半监督学习
│   └── 标签传播算法
│
└── 强化学习├── Q-learning├── SARSA├── 深度Q网络 (DQN)├── 策略梯度 (PG)├── 代理者演员-评论家 (DDPG)└── 深度确定性策略梯度 (PPO)

Sage回答的分类:

机器学习
├── 监督学习
│   ├── 线性回归(Linear Regression)
│   ├── 逻辑回归(Logistic Regression)
│   ├── 决策树(Decision Tree)
│   ├── 随机森林(Random Forest)
│   ├── 支持向量机(Support Vector Machines)
│   ├── 朴素贝叶斯(Naive Bayes)
│   ├── K最近邻(K-Nearest Neighbors)
│   └── 神经网络(Neural Networks)
│       ├── 前馈神经网络(Feedforward Neural Networks)
│       ├── 卷积神经网络(Convolutional Neural Networks)
│       ├── 循环神经网络(Recurrent Neural Networks)
│       ├── 长短时记忆网络(Long Short-Term Memory Networks)
│       ├── 生成对抗网络(Generative Adversarial Networks)
│       └── 转移学习(Transfer Learning)
├── 无监督学习
│   ├── 聚类(Clustering)
│   │   ├── K均值聚类(K-Means Clustering)
│   │   ├── 层次聚类(Hierarchical Clustering)
│   │   ├── 密度聚类(Density-Based Clustering)
│   │   └── 高斯混合模型(Gaussian Mixture Model)
│   ├── 关联规则学习(Association Rule Learning)
│   │   ├── Apriori算法
│   │   └── FP-growth算法
│   ├── 异常检测(Anomaly Detection)
│   ├── 主成分分析(Principal Component Analysis)
│   ├── 特征选择(Feature Selection)
│   └── 降维(Dimensionality Reduction)
│       ├── 主成分分析(Principal Component Analysis)
│       ├── 独立成分分析(Independent Component Analysis)
│       ├── t-SNE
│       └── UMAP
├── 强化学习
│   ├── Q-learning
│   ├── Sarsa
│   ├── 深度Q网络(Deep Q-Network)
│   ├── 策略梯度(Policy Gradient)
│   ├── Actor-Critic
│   └── 强化学习应用
├── 半监督学习(Semi-Supervised Learning)
├── 迁移学习(Transfer Learning)
├── 元学习(Meta Learning)
├── 神经架构搜索(Neural Architecture Search)
├── 自然语言处理(Natural Language Processing)
│   ├── 词袋模型(Bag of Words)
│   ├── 词嵌入(Word Embedding)
│   ├── 递归神经网络(Recursive Neural Networks)
│   ├── 长短时记忆网络(Long Short-Term Memory Networks)
│   ├── 注意力机制(Attention Mechanism)
│   ├── 预训练模型(Pretrained Models)
│   │   ├── BERT
│   │   ├── GPT
│   │   ├── GPT-2
│   │   ├── GPT-3
│   │   ├── RoBERTa
│   │   ├── T5
│   │   └── XLNet
│   └── 序列到序列模型(Sequence-to-Sequence Models)
│       ├── 编码器-解码器(Encoder-Decoder)模型
│       ├── 注意力机制(Attention Mechanism)模型
│       ├── 递归神经网络(Recursive Neural Networks)模型
│       ├── 门控循环单元(Gated Recurrent Unit)模型
│       ├── 长短时记忆网络(Long Short-Term Memory Networks)模型
│       └── 转移学习(Transfer Learning)模型
├── 计算机视觉(Computer Vision)
│   ├── 卷积神经网络(Convolutional Neural Networks)
│   ├── 残差网络(Residual Networks)
│   ├──目标检测(Object Detection)
│   │   ├── R-CNN
│   │   ├── Fast R-CNN
│   │   ├── Faster R-CNN
│   │   ├── YOLO
│   │   ├── SSD
│   │   └── RetinaNet
│   ├── 语义分割(Semantic Segmentation)
│   ├── 实例分割(Instance Segmentation)
│   ├── 图像分类(Image Classification)
│   ├── 图像生成(Image Generation)
│   │   ├── 生成对抗网络(Generative Adversarial Networks)
│   │   ├── 变分自编码器(Variational Autoencoders)
│   │   └── 流模型(Flow Models)
│   ├── 姿态估计(Pose Estimation)
│   ├── 光流估计(Optical Flow Estimation)
│   ├── 图像超分辨(Image Super-Resolution)
│   └── 图像风格转换(Image Style Transfer)
├── 常用框架和产品
│   ├── TensorFlow
│   ├── PyTorch
│   ├── Keras
│   ├── Scikit-Learn
│   ├── XGBoost
│   ├── LightGBM
│   ├── CatBoost
│   ├── Caffe
│   ├── MXNet
│   ├── Theano
│   ├── Microsoft Cognitive Toolkit
│   ├── Amazon SageMaker
│   ├── Google Cloud AI Platform
│   ├── IBM Watson Studio
│   ├── Hugging Face Transformers
│   └── OpenAI GPT
└── 其他应用领域├── 推荐系统(Recommendation Systems)├── 时间序列分析(Time Series Analysis)├── 异常检测(Anomaly Detection)├── 信用风险评估(Credit Risk Assessment)├── 医学诊断(Medical Diagnosis)├── 股票市场预测(Stock Market Prediction)├── 自动驾驶(Autonomous Driving)├── 语音识别(Speech Recognition)├── 人脸识别(Face Recognition)├── 自然语言生成(Natural Language Generation)├── 机器翻译(Machine Translation)├── 游戏AI(Game AI)└── 机器人控制(Robot Control)

名词解释

这里列出一些常用的名次,方便大家理解

名词全称解释
GPT生成式预训练 Transformer(Generative Pre-trained Transformer)GPT模型的训练是一种无监督学习方法,它不需要人工标注的标签或答案来指导模型的学习。相反,它使用大量的文本数据来预测下一个单词或句子,从而让模型学习语言的模式和规律。GPT模型不属于聚类或者降维等传统机器学习算法,它是一种基于深度学习的神经网络模型。具体来说,GPT模型是基于Transformer架构的神经网络模型,它使用了多层的自注意力机制来对输入序列进行编码,并通过解码器生成新的自然语言文本。
NLPNatural Language ProcessingNLP代表自然语言处理(Natural Language Processing),是一种计算机科学和人工智能领域的交叉学科,旨在使计算机能够理解、解释和操作人类语言。自然语言处理涉及使用计算机算法和统计模型来分析、处理、理解和生成人类语言,包括文本和语音。自然语言处理技术已经广泛应用于许多领域,例如语音识别、机器翻译、情感分析、文本分类、信息检索、自然语言生成、问答系统等等。这些应用领域涵盖了许多实际场景,例如智能客服、语音助手、社交媒体分析、金融分析、医疗诊断等等。
LLMlarge language model大语言模型
召回率(Recall)在人工智能领域中,召回率(Recall)是指模型正确识别出的正样本数占总正样本数的比例,通常用以下公式表示:Recall = TP / (TP + FN) 其中,TP表示真正例(True Positive),即模型正确识别出的正样本数;FN表示假反例(False Negative),即模型未能识别出的正样本数。召回率衡量了模型识别正样本的能力,即模型能够正确地找到多少个正样本。召回率越高,表示模型能够正确地识别出更多的正样本,但同时可能会导致误识别负样本的数量增加。召回率,代表模型判定属于这个分类的标题占实际这个分类下所有标题的比例,也就是没有漏掉的比例。比如,模型判断 100 个都是农业新闻,这 100 个的确都是农业新闻。准确率已经 100% 了。但是,实际我们一共有 200 条农业新闻。那么有 100 条其实被放到别的类目里面去了。那么在农业新闻这个类目,我们的召回率,就只有 100/200 = 50%。所以模型效果的好坏,既要考虑准确率,又要考虑召回率,综合考虑这两项得出的结果,就是 F1 分数(F1 Score)。
准确率(Precision)准确率是指模型正确识别出的正样本数占总样本数的比例,通常用以下公式表示:Precision = TP / (TP + FP) 其中,FP表示假正例(False Positive),即模型错误地识别出的正样本数。准确率衡量的是模型识别出的正样本占总样本数的比例,即模型能够正确地找到多少个被识别为正样本的样本。准确率越高,表示模型能够更准确地识别正样本,但同时可能会导致未能识别出的正样本数量增加。准确率,代表模型判定属于这个分类的标题里面判断正确的有多少,有多少真的是属于这个分类的。比如,模型判断里面有 100 个都是农业新闻,但是这 100 个里面其实只有 83 个是农业新闻,那么准确率就是 0.83。准确率自然是越高越好,但是并不是准确率达到 100% 就代表模型全对了。因为模型可能会漏,所以我们还要考虑召回率。
F1 分数F1 分数,是准确率和召回率的调和平均数,也就是 F1 Score = 2/ (1/Precision + 1/Recall)。当准确率和召回率都是 100% 的时候,F1 分数也是 1。如果准确率是 100%,召回率是 80%,那么算下来 F1 分数就是 0.88。F1 分数也是越高越好。
支持的样本量是指数据里面,实际是这个分类的数据条数有多少。一般来说,数据条数越多,这个分类的训练就会越准确。
预训练模型(Pre-trained Model)

创建API Key

OpenAI 还没有向中国大陆和香港地区开放,所以要注册的话,至少需要VPN和短信接收平台。这里默认大家已经有办法注册账号了。

我们首先需要获取API Key,需要用这个值作为请求API的token。这个Key一定要自己记录下来,否则再也查不到了。另外千万不要泄露出去。

地址:https://platform.openai.com/overview

在这里插入图片描述
在这里插入图片描述
我的账号注册的比较早,所以有18美元的试用额度

在这里插入图片描述

搭建Jupyter Labs开发环境

大家可以参考我的Jupyterhub安装教程,我是用npm方式安装

mkdir jupyter
cd jupyter
sudo npm install -g configurable-http-proxy
sudo apt install python3-pip
sudo pip3 install jupyterhub
sudo pip3 install notebook
sudo pip3 install jupyterlab
# 生成配置文件
jupyterhub --generate-config
# 启动
nohup jupyterhub -f jupyterhub_config.py  &
# 默认8000端口,访问链接,查看安装情况#http://127.0.0.1:8000/hub/login?next=%2Fhub%2F

在这里插入图片描述

测试

操作

简单找个例子测试一下

代码

import openai
import osopenai.api_key = os.environ.get("OPENAI_API_KEY")
COMPLETION_MODEL = "text-davinci-003"prompt = """
Consideration product : 工厂现货PVC充气青蛙夜市地摊热卖充气玩具发光蛙儿童水上玩具1. Compose human readable product title used on Amazon in english within 20 words.
2. Write 5 selling points for the products in Amazon.
3. Evaluate a price range for this product in U.S.Output the result in json format with three properties called title, selling_points and price_range
"""def get_response(prompt):completions = openai.Completion.create (engine=COMPLETION_MODEL,prompt=prompt,max_tokens=512,n=1,stop=None,temperature=0.0,        )message = completions.choices[0].textreturn messageprint(get_response(prompt)) 

返回

{"title": "PVC Inflatable Glow-in-the-Dark Frog Water Toy for Kids Night Market Stall","selling_points": ["Made of durable PVC material","Inflatable design for easy storage and transport","Glow-in-the-dark feature for night time fun","Perfect for water play and pool parties","Great for kids of all ages"],"price_range": "$10 - $20"
}

参数

第一个参数是 engine,也就是我们使用的是 Open AI 的哪一个引擎,这里我们使用的是 text-davinci-003,也就是现在可以使用到的最擅长根据你的指令输出内容的模型。当然,也是调用成本最高的模型。

第二个参数是 prompt,自然就是我们输入的提示语。

第三个参数是 max_tokens,也就是调用生成的内容允许的最大 token 数量。你可以简单地把 token 理解成一个单词。实际上,token 是分词之后的一个字符序列里的一个单元。有时候,一个单词会被分解成两个 token。比如,icecream 是一个单词,但是实际在大语言模型里,会被拆分成 ice 和 cream 两个 token。这样分解可以帮助模型更好地捕捉到单词的含义和语法结构。一般来说,750 个英语单词就需要 1000 个 token。我们这里用的 text-davinci-003 模型,允许最多有 4096 个 token。需要注意,这个数量既包括你输入的提示语,也包括 AI 产出的回答,两个加起来不能超过 4096 个 token。比如,你的输入有 1000 个 token,那么你这里设置的 max_tokens 就不能超过 3096。不然调用就会报错。

第四个参数 n,代表你希望 AI 给你生成几条内容供你选择。在这样自动生成客服内容的场景里,我们当然设置成 1。但是如果在一些辅助写作的场景里,你可以设置成 3 或者更多,供用户在多个结果里面自己选择自己想要的。

第五个参数 stop,代表你希望模型输出的内容在遇到什么内容的时候就停下来。这个参数我们常常会选用 "\n\n"这样的连续换行,因为这通常意味着文章已经要另起一个新的段落了,既会消耗大量的 token 数量,又可能没有必要。

第六个参数temperature,参数的输入范围是 0-2 之间的浮点数,代表输出结果的随机性或者说多样性。可以把这个参数设置为 0,这样,每次输出的结果的随机性就会比较小。

总结

https://platform.openai.com/docs/api-reference/introduction

函数不是很多,大家有兴趣可以自己看一下,使用起来也是很方便的。

链接:http://gk.link/a/121Tn

资料

  1. 官方文档
  2. monica

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

B+G双轮驱动,税友股份迎来数字化东风

配图来自Canva可画 不知不觉之间,国内的数字经济已经蔚然成潮。据相关部门的统计数据显示,去年国内数字经济规模已经达到了50万亿,占到了国内GDP总量的40%以上,增速更是持续领先于GDP增速。与此同时,随着数字中国战略…

Controller 层如何写才能简洁又优雅!

更多内容关注微信公众号:fullstack888 一个优秀的 Controller 层逻辑 说到 Controller,相信大家都不陌生,它可以很方便地对外提供数据接口。它的定位,我认为是不可或缺的配角。 说它不可或缺是因为无论是传统的三层架构还是现在的…

AI对话交互场景使用WebSocket建立H5客户端和服务端的信息实时双向通信

WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就可以创建持久性的连接,并进行双向数据传输。 一、为什么需要 WebSock…

WorkPlus AI助理 | 将企业业务场景与ChatGPT结合

近年来,人工智能成为了企业数字化转型的热门话题,作为被训练的语言模型,ChatGPT具备模拟对话、回答问题、写代码、写小说、进行线上内容创作的能力,还能根据聊天的上下文进行互动。作为一款新兴的人工智能应用程序,对于…

用Python比较图片的不同

准备两张不同的图片 原图 修改后(在左下角增加了文字) 比较不同 使用PIL(Pillow library)库 安装 pip install pillow,然后直接用其中的ImageChops函数 from PIL import Image from PIL import ImageChops def comp…

对比两张图片的相似度

👨‍💻个人简介: 深度学习图像领域工作者 🎉总结链接: 链接中主要是个人工作的总结,每个链接都是一些常用demo,代码直接复制运行即可。包括: &am…

[274]用python对比两张图片的不同

from PIL import Image from PIL import ImageChops def compare_images(path_one, path_two, diff_save_location):"""比较图片,如果有不同则生成展示不同的图片参数一: path_one: 第一张图片的路径参数二: path_two: 第二张图片的路径参数三: diff…

怎么判断两张图片是否完全相同,通过读取图片内容进行对比

ep1: ep2: 实现原理: 通过读取图片,把图片转为base64后进行对比即可达到目的。 以下是图片转base64的方法: public string GetBase64StringByImage(Image img){string base64buffer string.Empty;try{if (img ! nul…

Python如何比较两张图片的相似度

前言 本文是该专栏的第21篇,后面会持续分享python的各种干货知识,值得关注。 工作上,可能会需要你对两张图片进行相似度比较。比如现在的图片验证码,需要你对两张图片进行比较,找出图中存在相似特征的地方或动作;再或是在做电商项目的时候,需要你对商品主图进行相似度比…

chatgpt赋能python:Python图片找不同的SEO文章

Python 图片找不同的SEO文章 在网上,图片找不同游戏是一种非常受欢迎的娱乐方式。但是,这些游戏经常需要手动比对两张图片,这是一项费时费力的任务。那么,有没有一种自动化的方法来找到这些不同之处呢? 答案是肯定的…

如何判断两张图片是否类似

如何判断两张图是否相似? 查到了很多算法,流程都是“特征提取”,“特征对比”。以下列出了三个常见算法的浅显的介绍, 平均哈希算法 平均哈希算法是三种Hash算法中最简单的一种,它通过下面几个步骤来获得图片的Hash值…

【图像】搜索相同,或者相似照片

目录 1. 查找完全相同的一对张照片 2. 查找相似照片, 1. 查找完全相同的一对张照片 利用MD5,变换找到两张一模一样的图片。 import cv2 import numpy as np import osimport json import os from hashlib import md5def getmd5(image_path, md5_path):…

go 图片相似 查找两张图片不同的部分 找出两幅图片中的不同处

golang Image similarity comparison 目前网上找了很多的 图片相似 查找两张图片不同的部分,实现图像比较和标记以显示不同 ,很多都是python写的,没有找到go语言写的,所以想自己写一个 图片A 为参照物,去寻找图片B 的…

元宇宙是个什么样的概念?

什么是元宇宙? 百度百科上提到: 元宇宙(Metaverse),是人类运用数字技术构建的,由现实世界映射或超越现实世界,可与现实世界交互的虚拟世界,具备新型社会体系的数字生活空间。 元宇…

最全元宇宙概念分析!元宇宙为何发展于区块链?

元宇宙,Web3 时代最新热词,和 NFT、DAO 等新晋热门概念一起在 2021 年横空出世。这一概念最早诞生于 1992 年的科幻小说《雪崩》,小说中描绘了一个庞大的虚拟现实世界,人们用数字化身来控制,并相互竞争以提高自己的地位…

chatgpt赋能python:Python期末考:如何顺利通过?

Python期末考:如何顺利通过? Python是一门广受欢迎的编程语言,无论是初学者还是有经验的工程师,都会在其职业生涯中使用Python。在学术领域,Python也被广泛应用于数据分析、人工智能和机器学习等方面。但是&#xff0…

【电商系列】shopee的数据获取

在Amazon,Aliexpress之后,又一个海外电商出现在我的视野里——shopee,在东南亚很火的电商平台。 这战略布局都到南美跟欧洲了 这网站有意思的是啊,每个国家的商品虽然大同小异,但是也能凸显各个国家的风格的&#xff0…

分享4点选品思路,电商大牛都在用

Tiktok选品数据分析是很多跨境电商商家都需要解决的首要问题。如何选品才能提高TikTok变现率?商家选品时需要结合实际数据进行分析,不能一概而论。本文将和大家谈论三个问题。 选品思路 选品方法 选品数据哪里找? 一、选品思路 选品是tiktok小…

电商平台OnBuy选品技巧分享一二

OnBuy是这两年发展较快的蓝海电商平台,是跨境电商人可以选择的一个优质电商平台。今天我们小编就给大家分享一下OnBuy选品技巧以及方法,希望对大家有用。 OnBuy热销类目 1、 健康(防护用品) 2、 美妆护肤 3、 多媒体 4、 玩具 5、 宠物 6、 婴儿用品 …

利用Tushare获取A股所有股票代码

Tusahre注册链接 https://tushare.pro/register?reg365850 import os import tushare as ts import pandas import datetimetoken 自己的 #可以登录文章首的链接注册获取 pro ts.pro_api(token) dateToday datetime.datetime.today().strftime(%Y%m%d)def GetList():try:d…