openai api使用
1OpenAI 的 API 介绍
1.1 api分类
常用的 OpenAI Api 接口总共分为 4 类:对话类、私有化模型训练类、通用类、图片 & 音频类,其中对话类与私有化模型训练类是最常用的。
a .对话类
这类是最常用也是最核心的接口,用于人机对话。对话类接口又细分为:Chat、Completions。Chat 是指多轮对话;Completions 是指单轮对话,主要用于一次性生成一篇文章等,不具备多次对话交互的能力。
b.私有化模型构建类
这类是用于构建私有化模型的相关接口。私有化模型构建分为两种方式:Embeddings、Fine-tunes。
c.通用类
获取模型列表、详情、上传文件等接口。
d.图片 & 音频类
文本转语音、文生图等接口。
官方文档 https://platform.openai.com/docs/api-reference/chat/create
1.2 role简绍
role 字段用来定义消息的发送者角色,具体包括三种选择:system、user、和 assistant。
system(系统):通常用于设置聊天的上下文或者提供系统级别的指示和配置信息。
user(用户):代表实际的用户输入,即用户向聊天系统提出的问题或者发起的对话内容。
assistant(助手):代表智能助手的回复或者动作,是模型根据用户输入给出的响应。
1.3 调用样例
from openai import OpenAI
client = OpenAI()completion = client.chat.completions.create(model="gpt-4o-mini-2024-07-18",messages=[{"role": "system", "content": "You are a helpful assistant."},{"role": "user", "content": "Hello!"}]
)print(completion.choices[0].message)
1.4 部分接口说明
https://api.openai.com/v1/audio/speech 将音频转换为文本或将文本转换为音频。
https://api.openai.com/v1/chat/completions 给定一个包含对话的消息列表,模型将返回一个响应。
https://api.openai.com/v1/embeddings 获取给定输入的向量表示形式,机器学习模型和算法可以轻松使用该向量表示。
https://api.openai.com/v1/fine_tuning/jobs 管理微调作业,以根据特定训练数据定制模型。
https://api.openai.com/v1/images/generations 给定提示和/或输入图像,模型将生成新图像。
2 OhMyGPT介绍
2.1 OhMyGPT的核心是利用了OpenAI的API接口,特别是其强大的自然语言处理模型ChatGPT。提供各种当下流行,功能强大的生成式AI服务。
项目网址: https://www.ohmygpt.com
镜像网址:
https://x.dogenet.win
https://aigptx.top
https://textai.buzz
2.2 项目优点
a.可以让你便捷地无限量访问GPT-3.5-turbo、GPT-3.5-turbo-16k、GPT-4、GPT-4-32k、DALL-E、whisper、MidJourney等先进的AI模型。
b.同时提供兼容API调用,目前已接入并可提供OpenAI的Completions、Chat、Images、Audio以及Embeddings接口,以及MidJourney的图像AI能力。
2.3 使用-支持三种登陆方式 github | goole | 邮箱
a.获取api密钥
![外链图片转存失败,源站
b.支持的Models/Services
c.关于OpenAI兼容API接口说明
提供了完全兼容OpenAI API格式的文档,只需登录到OhMyGPT后,打开设置界面,点击创建一个API密钥,然后将OpenAI的原始API域名或API URL替换为本站的,API密钥也替换成本站的就OK了。
API端点列表:
美国主站直连 稳定
、部分地区不可用
: https://api.ohmygpt.com
Cloudflare CDN 稳定
、全球加速
: https://cfcus02.opapi.win
Cloudflare Worker 稳定
、全球加速
: https://cfwus02.opapi.win
优质线路反代1 优质线路
、不保证可用性
: https://aigptx.top
优质线路反代2 优质线路
、不保证可用性
: https://cn2us02.opapi.win
本站已兼容OpenAI提供的以下接口能力:
Audio
Chat
Completions
Embeddings
Images
Moderations
2.4 api接入使用
OpenAI的Audio
、Chat
、Completions
、Embeddings
、Images
、Moderations
接口均已支持,路径、参数和OpenAI的保持一致,这里仅列出一些平台自定义且公开的API文档
在实际使用中您只需要从下方的API端点中选择一个作为基础URL,替换掉https://api.openai.com
,或者在后面拼接一下文档中的路径即可。
headers = {'Content-Type': 'application/json','Authorization': f'Bearer {api_key}'
}
def chat(messages):request_body = {"model": "gpt-3.5-turbo-1106","messages": messages,"temperature": 0}logger.info("gpt请求参数:{}".format(json.dumps(request_body, ensure_ascii=False, indent=4)))response = requests.post(url="https://cn2us02.opapi.win/v1/chat/completions", headers=headers, json=request_body)print(response)logger.info("gpt请求结果:{}".format(json.dumps(response.json(), ensure_ascii=False, indent=4)))return response
if __name__ == '__main__':response=chat([{"role": "user", "content": "你现在是一名优秀的大数据开发工程师,精通hive、spark等sql语法,请帮我分析一下这个sql语句,并给出优化建议,如果sql语句有错误,请给出错误提示。\n\nselect count(1) from dm_user_login_log where dt='2023-01-01' and user_id='100000000000000000' and login_type='1' andlogin_status='1' and login_time between '2023-0"}])reply_content = response.json()["choices"][0]["message"]["content"]logging.info("sql优化结果:{}".format(reply_content))
INFO - gpt请求参数:{"model": "gpt-3.5-turbo-1106","messages": [{"role": "user","content": "你现在是一名优秀的大数据开发工程师,精通hive、spark等sql语法,请帮我分析一下这个sql语句,并给出优化建议,如果sql语句有错误,请给出错误提示。\n\nselect count(1) from dm_user_login_log where dt='2023-01-01' and user_id='100000000000000000' and login_type='1' andlogin_status='1' and login_time between '2023-0"}],"temperature": 0
}
2024-06-30 16:08:22,154 - DEBUG - Starting new HTTPS connection (1): cn2us02.opapi.win:443
2024-06-30 16:08:25,557 - DEBUG - https://cn2us02.opapi.win:443 "POST /v1/chat/completions HTTP/1.1" 200 1228
2024-06-30 16:08:25,558 - INFO - gpt请求结果:{"id": "chatcmpl-9fjtemnKAy0aXVDVVh3Upa82aHuo3","object": "chat.completion","created": 1719734902,"model": "gpt-3.5-turbo-1106","choices": [{"index": 0,"message": {"role": "assistant","content": "1-01 00:00:00' and '2023-01-01 23:59:59';\n\n这个SQL语句的目的是统计在2023年1月1日用户ID为100000000000000000的用户登录类型为1且登录状态为1的登录次数。\n\n优化建议:\n1. 索引优化:确保dm_user_login_log表中dt、user_id、login_type、login_status、login_time字段都有合适的索引,以加快查询速度。\n2. 时间范围优化:可以考虑将login_time字段的时间范围查询改为大于等于'2023-01-01 00:00:00'且小于等于'2023-01-01 23:59:59',这样可以避免使用between语句,提高查询效率。\n3. 数据分区优化:如果dm_user_login_log表按照日期进行了分区,可以根据分区字段dt进行分区查询,以减少扫描的数据量。\n\n错误提示:\n在SQL语句中,'andlogin_status'应该为'and login_status',即在login_status字段和条件之间应该有一个空格。"},"logprobs": null,"finish_reason": "stop"}],"usage": {"prompt_tokens": 123,"completion_tokens": 297,"total_tokens": 420},"system_fingerprint": "fp_44132a4de3"
}
2024-06-30 16:08:25,558 - INFO - sql优化结果:1-01 00:00:00' and '2023-01-01 23:59:59';这个SQL语句的目的是统计在2023年1月1日用户ID为100000000000000000的用户登录类型为1且登录状态为1的登录次数。优化建议:
1. 索引优化:确保dm_user_login_log表中dt、user_id、login_type、login_status、login_time字段都有合适的索引,以加快查询速度。
2. 时间范围优化:可以考虑将login_time字段的时间范围查询改为大于等于'2023-01-01 00:00:00'且小于等于'2023-01-01 23:59:59',这样可以避免使用between语句,提高查询效率。
3. 数据分区优化:如果dm_user_login_log表按照日期进行了分区,可以根据分区字段dt进行分区查询,以减少扫描的数据量。错误提示:
在SQL语句中,'andlogin_status'应该为'and login_status',即在login_status字段和条件之间应该有一个空格。
def tts(messages):request_body = {"model": "tts-1","input": messages,"voice": "alloy","response_format": "mp3","speed": "1","temperature": 0}logging.info("tts请求参数:{}".format(json.dumps(request_body, ensure_ascii=False, indent=4)))response = requests.post(url="https://cn2us02.opapi.win/v1/audio/speech", headers=headers, json=request_body)return response.content
def images(prompt):request_body = {"model": "dall-e-2","prompt": prompt,"integer": 1,"size": "256x256"}logging.info("tts请求参数:{}".format(json.dumps(request_body, ensure_ascii=False, indent=4)))response = requests.post(url="https://cn2us02.opapi.win/v1/images/generations", headers=headers, json=request_body)return response.content
2.5 chatgpt部分参数解释
messages-输入给模型的对话上下文,数组中的每个对象为聊天的上下文信息
model-要使用的模型的 ID
frequency_penalty-介于 -2.0 和 2.0 之间的数字。到目前为止,正值会根据新标记在文本中的现有频率来惩罚新标记,从而降低模型逐字重复同一行的可能性。
logit_bias-修改指定标记在完成中出现的可能性。
logprobs-是否返回输出令牌的对数概率
top_logprobs-一个介于 0 和 20 之间的整数,指定在每个令牌位置最有可能返回的令牌数,每个令牌都有一个关联的对数概率。 logprobs
true
如果使用此参数,则必须设置为。
max_tokens-聊天完成时可以生成的最大令牌数。
presence_penalty-介于 -2.0 和 2.0 之间的数字。正值会根据新标记到目前为止是否出现在文本中来惩罚它们,从而增加了模型谈论新主题的可能性。
response_format-指定模型必须输出的格式
temperature-用于控制随机性和多样性的程度,介于 0 和 2 之间。较高的值(如 0.8)将使输出更加随机,而较低的值(如 0.2)将使其更具集中性和确定性。
相关文章:

openai api使用
1OpenAI 的 API 介绍 1.1 api分类 常用的 OpenAI Api 接口总共分为 4 类:对话类、私有化模型训练类、通用类、图片 & 音频类,其中对话类与私有化模型训练类是最常用的。 a .对话类 这类是最常用也是最核心的接口,用于人机对话。对话类…...

带你走进haproxy的世界
华子目录 前言什么是负载均衡为什么用haproxy负载均衡负载均衡公司负载均衡类型四层负载均衡七层负载均衡四层和七层的区别 haproxy介绍haproxy的安装与服务信息软件安装haproxy基本配置信息proxies配置socat工具 haproxy算法静态算法动态算法其他算法 高级功能及配置基于cooki…...
STM32--中断使用(超详细!)
STM32中断机制是嵌入式系统设计中一个非常重要的组成部分,它允许单片机在执行程序的过程中,对外部或内部发生的事件做出快速响应。以下是一篇关于STM32中断机制的详细介绍和示例代码,希望能够帮助你更好地理解和应用中断。 一、中断的基本概…...

【深度学习实践】基于深度学习的图像去雾算法-ChaIR-实践
本文介绍一个去雾算法ChaIR的使用方法,可以完成图像去雾,也可以用于图像去雨、去噪音等任务。本文不涉及论文原理,只包含源代码的跑通和使用。 先展示一下效果: 原图去雾 论文:Exploring the potential of channel …...

《乳腺密度高的女性中,使用AI辅助的乳腺X线筛查与补充筛查超声的比较研究》| 文献速递-基于深度学习的乳房、前列腺疾病诊断系统
Title 题目 Screening Outcomes of Mammography with AI in Dense Breasts: A Comparative Study with Supplemental Screening US 《乳腺密度高的女性中,使用AI辅助的乳腺X线筛查与补充筛查超声的比较研究》 Background 背景 Comparative performance between…...

crm 销售管理系统有哪些?国内外排名前十盘点
本文深入对比的 crm销售管理系统有:1.纷享销客; 2.Zoho CRM; 3.销售易; 4.有赞CRM; 5.Salesforce; 6.HubSpot; 7.简道云CRM; 8.爱客CRM; 9.Apptivo。 如果你正寻找一种方…...
package-lock.json 要提交到git吗?
之前一直没有提交package-lock.json文件到git仓库,直到我打包失败了。。。 我才知道package-lock.json需要提交到git仓库。 npm官网建议将package-lock.json一起提交到代码库中,不要忽略它。 package-lock.json的主要作用是锁定dependencies的版…...

算法学习day32
一、解码方法II(解码方法I的升级版) 在I的基础上增加了*,可以代替1-9中任意一个数字,求解码的方法有多少种 输入:s "*" 输出:9 解释:这一条编码消息可以表示 "1"、"…...
知识与智慧
前两天在medium上看到一篇文章,探讨知识(knowledge)和智慧(wisdom)之间的区别,很受启发,结合自己的经历和理解,形成此文: 何为知识 知识通常指的是信息的积累和对特定领…...

使用FFmpeg实现摄像头RTMP实时推流
在当今的数字时代,视频直播已成为连接人与人之间的重要桥梁,广泛应用于在线教育、远程会议、娱乐直播等多个领域。随着技术的不断进步,人们对于直播的实时性、稳定性和高质量需求日益增加。为了实现高效的视频直播,选择合适的工具和协议至关重要。 RTMP(Real-Time Messagi…...

使用 LabVIEW 编程更改 IMAQ/IMAQdx 接口的相机文件
问题详情 可能需要通过编程方式更改与 IMAQ/IMAQdx 接口关联的相机文件。这种需求通常发生在图像采集系统中,例如使用 PCIe-1433 硬件时,可能需要动态切换不同的相机配置文件来适应不同的应用场景。 解决方案 当前在 Measurement & Automation Ex…...
[后端代码审计] PHP 基础学习
文章目录 前言1. 基础语法1 .1 注释1 .2 分隔符 2. 变量与常量2 .1 变量2 . 1 .1 变量定义2 . 1 .2 变量释放 2 .2 常量2 . 2 .1 常量定义2 . 2 .2 预定义常量 3. 运算符3. 1 算数运算符3 .2 字符串运算符3 .3 赋值运算符3 .4 比较运算符3 .5 逻辑运算符3 .6 其他运算符 4. 流程…...

【OpenCV C++20 学习笔记】直方图计算-split, calcHist, normalize
直方图计算-split, calcHist, normalize 广义直方图示例目标分离通道计算直方图绘制计算结果归一化绘制 最终结果 广义直方图 直方图的横坐标除了可以是图片中的强度值,也可以是任何其他我们想要观察的特征。例如,下面的图片矩阵中包含了0-255的强度值&…...

js入门经典学习小结
简介 js是解释型语言,虽然名字有java,但和java,c等编译型语言不同,它是解释型的,类似perl,py 历史 90年代最早js 1.0版本是网景navigator2引入的 然后欧洲计算机制造商协会(ECMA)…...

nps内网穿透之——腾讯云服务器和linux虚拟机
准备 1、客户端:准备一个内网的linux内网主机,或是一个虚拟机。 2、服务端:准备一个云服务器(阿里、腾讯、华为都行)。 安装方式: 1、自己到Github官网下载安装包上传。 下载地址:https://…...

大数据知识点
VMWare 设置网段 虚拟机设置 JDK部署 云平台 创建VPC 找到阿里云控制台里的VPC,点击专有网络 安全组 搁置…有需要再使用,因为每月要花200左右 大数据 数据导论...
【计算机毕设项目】2025级计算机专业项目推荐 (前后端Web项目)
以下项目选题适合计算机专业大部分专业,技术栈主要为:Java语言,SSMVue框架,MySQL数据库 后台免费获取源码,可提供远程调试、环境安装配置服务(文末有联系方式) 以下是本次部分项目推荐1-end&a…...

【MySQL】2.MySQL实际操作
目录 一、数据分析基本流程 注:Navicat快捷键 二、获取数据后的代码操作 (1)探索数据,查看定义 (2)筛选有用的字段 (3)建新表(查询建表插值 三合一) 注意…...

Winform画圆以及无边框窗体的移动
普通圆 在WinForms中绘制一个圆形,可以通过几种方式实现: 1. 使用ControlPaint类 在窗体的Paint事件中使用ControlPaint.DrawCircle方法来绘制圆形。 private void Form1_Paint(object sender, PaintEventArgs e) {int x 100; // 圆心的X坐标int y …...
如何高效记录并整理编程学习笔记?
高效记录并整理编程学习笔记是提升编程学习效率和效果的重要方法。以下是一些具体的步骤、工具及其使用方法的介绍: 一、高效记录笔记的方法 专注理解:在记录笔记时,首先要保持高度的专注,努力理解老师或教程中讲解的知识点。避免…...

高频面试之3Zookeeper
高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制࿰…...

汽车生产虚拟实训中的技能提升与生产优化
在制造业蓬勃发展的大背景下,虚拟教学实训宛如一颗璀璨的新星,正发挥着不可或缺且日益凸显的关键作用,源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例,汽车生产线上各类…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序
一、开发准备 环境搭建: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 项目创建: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...

(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...

《通信之道——从微积分到 5G》读书总结
第1章 绪 论 1.1 这是一本什么样的书 通信技术,说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号(调制) 把信息从信号中抽取出来&am…...

C++使用 new 来创建动态数组
问题: 不能使用变量定义数组大小 原因: 这是因为数组在内存中是连续存储的,编译器需要在编译阶段就确定数组的大小,以便正确地分配内存空间。如果允许使用变量来定义数组的大小,那么编译器就无法在编译时确定数组的大…...

【7色560页】职场可视化逻辑图高级数据分析PPT模版
7种色调职场工作汇报PPT,橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版:职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...

【Linux】Linux 系统默认的目录及作用说明
博主介绍:✌全网粉丝23W,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...
WebRTC从入门到实践 - 零基础教程
WebRTC从入门到实践 - 零基础教程 目录 WebRTC简介 基础概念 工作原理 开发环境搭建 基础实践 三个实战案例 常见问题解答 1. WebRTC简介 1.1 什么是WebRTC? WebRTC(Web Real-Time Communication)是一个支持网页浏览器进行实时语音…...

DeepSeek源码深度解析 × 华为仓颉语言编程精粹——从MoE架构到全场景开发生态
前言 在人工智能技术飞速发展的今天,深度学习与大模型技术已成为推动行业变革的核心驱动力,而高效、灵活的开发工具与编程语言则为技术创新提供了重要支撑。本书以两大前沿技术领域为核心,系统性地呈现了两部深度技术著作的精华:…...