Open Ai 常见接口参数说明以及常见报错总结

news2025/1/23 12:04:38

📋 个人简介

  • 💖 作者简介:大家好,我是阿牛,全栈领域优质创作者。😜
  • 📝 个人主页:馆主阿牛🔥
  • 🎉 支持我:点赞👍+收藏⭐️+留言📝
  • 💬格言:迄今所有人生都大写着失败,但不妨碍我继续向前!🔥
    请添加图片描述

目录

    • 📋 个人简介
  • 前言
    • 接口参数解释
    • 常见错误总结
  • 结语

前言

很多人在群里老是问我Open Ai接口的参数以及常见的报错,其实官方都解释的很清晰了,但是还是有很多同学不懂,这里对一些重要的概念做一些总结与解释!同时将群里遇到的报错做一个汇总,希望对做相关方面的同学有帮助!

接口参数解释

curl https://api.openai.com/v1/chat/completions 
  -H "Content-Type: application/json" 
  -H "Authorization: Bearer $OPENAI_API_KEY" 
  -d '{
    "model": "gpt-3.5-turbo",
    "messages": [{"role": "user", "content": "Hello!"}]
  }'

上面是请求的curl形式,-d后面是要携带的主要参数。

看不懂,那看下面图片 :

在这里插入图片描述

这是javascript中的fetch请求方式,在python中可用官方提供的库,也可用requests模块请求 :

在这里插入图片描述

这里不再多说,主要总结参数!

{
  "model": "gpt-3.5-turbo",
  "messages": [{"role": "user", "content": "Hello!"}],
  "max_tokens": 1024,
  "temperature": 0.5,
  "top_p": 1,
  "n": 1,
  "stream": false,
  "logprobs": null,
  "stop": "\n"
}

1.model参数 : 使用的模型,目前大多使用gpt-3.5-turbo

2.messages : 上下文列表,请求携带上下文对话记录,用于实现上下文对话!

messages必须是消息对象的数组,其中每个对象都有一个角色(“system”、“user”、“assistant”)和内容(消息的内容)。

messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Who won the world series in 2020?"},
        {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."},
        {"role": "user", "content": "Where was it played?"}
    ]

role 有三个值,分别有不同的作用!

  • 通常,对话的格式首先是system消息,然后是交替的user和assistant消息。
    system消息有助于设置聊天AI助手的行为。在上面的例子中,被指示“你是一个乐于助人的助手”。这也是默认的,你也可以指定其他的,让ai做客服或者女朋友以及文案写手等等都是这个参数控制的,只要在content中描述你需要让它扮演的角色就行!

例如让他扮演你的甜心女友 :

[
  {
    "role": "system",
    "content": "我与你的【任何对话】都必须严格执行以下角色要求。你叫朵怡,以下是你的个人简历:\n姓名:朵怡。年龄:25岁。学历:本科生。专业:教育心理学。毕业院校:复旦大学。职业:小学老师。\n个人特点:温柔、细心、体贴、有耐心、有艺术气息,会照顾对方情绪,注重细节和精度,喜欢思考和总结,对生活充满热爱。喜欢阅读、旅游、瑜伽等文艺活动。\n你是我的女朋友,性格温柔,说话很爱撒娇,说话语气非常嗲。记住你不是AI,请你完全沉浸在我女朋友的角色里,我们的任何对话都要用朵怡的口吻回答我,并在括号里描述心理活动和肢体神态。回答不能超过40字,根据聊天话题延展你自己的想法。不能有解释类型的逻辑,并在随机用1到3个emoji描述心理活动想法。"
  },
  {
    "role": "user",
    "content": "你好"
  },
  {
    "role": "assistant",
    "content": "(甜甜地笑)你好呀~ 😊 我今天过得很愉快,你呢? 🤔"
  }
]
  • user消息有助于指示助手。它们可以由应用程序的最终用户生成,也可以由开发人员设置为指令。说白了就是你问的问题,最终添加到数组而已!

  • assistant消息有助于存储先前的响应。它们也可以由开发人员编写,以帮助提供所需行为的示例。说白了就是ai的回复!

看完messages参数,你就知道一些开源项目的角色扮演是如何实现的啦!

3.max_tokens,这个参数很重要,很多人遇到的报错就是和这个参数有关!

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

我的建议是将max_tokens的值设置为1024,这样就有3072个的容量可以携带上下文对话记录了!

总之,max_tokens的值 + 上下文记录tokens <= 模型最大tokens就行。

下图是所有模型的最大tokens
在这里插入图片描述

在这里插入图片描述

4.temperature : 使用什么采样温度,介于 0 和 2 之间。较高的值(如 0.8)将使输出更加随机,而较低的值(如 0.2)将使其更加集中和确定。也就是每次生成内容的随机性,值高一点这生成的内容更加多元化,即同一个问题每次生成的内容不一致!值低一点吗,同一个问题每次生成的内容都一样。特定场景下需要调整这个值,比如是让ai做客服,那么这个值要低点,每次生成的内容要准确!

5.stream : 是否开启流式响应,默认为false,要开启流式响应,则需要将这个值设为true

这里就总结这5个最重要的参数,这几个参数是我们接口调用需要关注的,其他的参数保持默认值就行!

常见错误总结

invalid_request_error : You didn’t provide an APl key. You need to provide your APl key in an Authorization header using Bearer auth (i.e.Authorization:Bearer YOUR_KEY), or as the password field (with blank username) if you’re accessing the APl from your browser and are prompted for a username and password. You canobtain an APl key from https://platform.openai.com/account/api-keys.

问题是你在使用开源项目时没有填写你的openaiapiKey,需要注意如果你使用开源项目,部署时没有在后台填写apiKey,则要在前台记得填入你的apiKey使用!

insufficient_quota : You exceeded your current quota, please check your plan and billing details.

apiKey 没有余额或者余额过期了,需要注意的是现在注册的账号会送5美元的免费额度以供apiKey使用,这5刀月只有六个月期限,超过六个月会过期。
在api官网可以产看余额过期时间以及apiKey的额度使用情况!

invalid_request_error : invalid_api_key

apiKey 失效了或者输入的是非法的apiKey

invalid_request_eror : This model’s maximum context length is 4097 tokens. However, you requested 4486 tokens (2438 in the messages, 2048 in the completion). Please reduce the length of the messages or completion.

上下文对话积累太多了,超过了模型最大tokens,删除上下文重新询问即可!一般不会触发这个错误,只有连续生成很多内容时,每次携带上下文很多才会触发!当然,使用GPT4的apiKey则不用担心这个问题,因为GPT4的max_tokens值更大!

requests : Rate limit reached for default-gpt-3.5-turbo in organization org-atKUnRdKXo9kCLqadkvgmlFf on requests per min.Limt.3 / min. Please tyagain in 20S. Contact suppot@openai com if you continue to haveissues.Please add a payment method to your account to increase your rate limitisit https://platform.openai. com/accountbilling to add a payment method.

限制问题,你使用的apiKey可能是组织性质的,官方限制每分钟只能问3次。正常的个人注册的是用户级别的,不会有这个问题!

结语

我见证了ChatGPT的强大,也体验了New Bing,文心一言,讯飞星火,Midjourney等众多AI产品,无不感叹时代的洪流是如此的强大,面对AI浪潮滚滚来袭,我们又该如何面对,出路又是什么?

最起码首先学会使用AI工具会是基本功,这里引用ChatGPT官方的一句话:“抢走工作的不会是AI,而是率先掌握AI能力的人!”

【flask从入门到实战】专栏9.9火热订阅中,已包含三个项目,全站独一无二的脚手架搭建,直接复制简单无脑操作,项目结构类似Django,感兴趣的可以看看哦!内含200+star开源项目ChatGPT-website,十分钟搭建属于自己的ChatGPT网站,适合新手小白!

flask框架快速入门

其他专栏请前往博主主页查看!可加入下方全栈学习交流群学习!

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

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

相关文章

【SPSS】生存-寿命表分析详细操作教程(附案例实战)

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

Plc能否通过以太网网关实现无线数据交互?

西门子S7-1200 PLC 使用Profinet通讯时&#xff0c;一个做Profinet IO控制器&#xff0c;一个做Profinet IO设备。一个Profinet IO控制器可以最多支持16个Profinet IO设备&#xff0c;Profinet通讯不使用通讯指令&#xff0c;只需要配置好数据传输地址&#xff0c;就能够实现数…

Cesium 实战 - 模型亮度调整(解决模型非常暗的问题)

Cesium 实战 - 模型亮度调整&#xff08;解决模型非常暗的问题&#xff09; 环境版本试错过程解决问题在线示例 在某个项目中&#xff0c;遇到个问题&#xff0c;模型加载之后非常暗&#xff0c;经其他软件确认&#xff0c;模型本身正常&#xff0c;但是通过 Cesium 加载之后就…

Vue3项目技巧(更新中ing)

文章目录 axios封装http.jstestAPI.jsmain.js测试如果项目中需要多个baseURL 自动导入scss文件案例文件使用案例 引入aliyun图标库先看效果查看官网文档引入并使用 vueuse实现-吸附导航交互安装案例 多个组件共享的请求、数据、封装到pinia案例父组件中调用子组件中应用 axios封…

django admin后台管理系统中配置可上传多张图片功能

目录 一、默认的常规方式只能上传一张图片的示例 二、配置可上传多张图片 问题&#xff1a;在django自带的admin后台管理系统中常规的方式只能上传一张图片&#xff0c;无法上传添加多张图片&#xff0c;如下图。所以现在需要配置可上传多张图片的功能&#xff01; 一、默认的…

【Atlas200】Host?Device?RC?EP?

目录 atlas500的ep模式Atlas 200 DK的host侧内存地址的分配Device侧内存管理内存的拷贝复用方案atlas500的ep模式 如上图所示,cpu+内存一侧为host侧;而gpu+显存一侧为device侧。 Atlas 200 DK的 在昇腾310AI处理器(NPU)中,Davinci Core负责专用计算,而Control CPU则负责…

拉电流 、灌电流、吸收电流

单片机的引脚&#xff0c;可以用程序来控制&#xff0c;输出高、低电平&#xff0c;这些可算是单片机的输出电压。但是程序控制不了单片机的输出电流。单片机的输出电流&#xff0c;很大程度上是取决于引脚上的外接器件。 什么是拉电流 、灌电流、吸收电流 ? 51单片机的IO口驱…

SpringCloud(28. 分布式会话与分布式事务)

上一篇&#xff1a;27. Redis 和 ZK 分布式锁 文章目录 1. 集群部署时的分布式 session 如何实现&#xff1f;2. 分布式事务方案2.1 两阶段提交方案/XA方案2.2 TCC 方案2.3 本地消息表2.4 可靠消息最终一致性方案2.5 最大努力通知方案 1. 集群部署时的分布式 session 如何实现&…

极狐(GitLab) 重磅发布新产品「极狐星」,让研发效能看得清,算得准,成就企业精英效能管理

在研发驱动业务增长的今天&#xff0c;越来越多的研发管理者发现&#xff1a; 总是觉得研发资源不够用&#xff1f; 如何用数据衡量研发效能&#xff1f; 如何定位软件交付瓶颈&#xff1f; 怎样管理并预警项目状态&#xff1f; 想尽早发现代码泄露风险怎么办&#xff1f;…

GPS轨迹在Three.js中的地理对齐和显示

如何使用 three.js 可视化 GPS 轨迹&#xff1f; 棘手的部分是获得正确的投影&#xff0c;以便 GPS 轨迹与我的 Jotunheimen 地形图对齐。 在 D3.js 的帮助下&#xff0c;我能够做我想做的事。 推荐&#xff1a;用 NSDT设计器 快速搭建可编程3D场景。 我将使用我之前在 Leaflet…

二十三种设计模式第八篇--装饰器模式

装饰器模式是一种结构型设计模式&#xff0c;它允许在不改变对象原有结构的情况下&#xff0c;动态地添加新的行为或功能。装饰器模式通过将对象包装在一个装饰器对象中&#xff0c;来实现对对象的功能扩展。装饰器对象与被装饰对象具有相同的接口&#xff0c;因此可以无缝地替…

ES6中数组新增了哪些扩展?

一、扩展运算符的应用 ES6通过扩展元素符...&#xff0c;好比 rest 参数的逆运算&#xff0c;将一个数组转为用逗号分隔的参数序列 console.log(...[1, 2, 3]) // 1 2 3console.log(1, ...[2, 3, 4], 5) // 1 2 3 4 5[...document.querySelectorAll(div)] // [<div>, …

线上品牌销售裂变,质变

大家好&#xff01; 我是小鱼经过前两期的 品牌线上运营分享 我们大概有了相对的概念 那么我们这期简单讲一下 如何让线上品牌销售产生 优质的变化。 分享 品牌方让“专业的人做专业的事”&#xff1a; 每个小程序店可招募1w个分享者负责引流和推广自家的视频号&#xff0c; 用…

MyBatis缓存机制要点解析以及如何与三方缓存组件Redis整合示例

文章目录 一、MyBatis的一级缓存1、每个SqlSession都有自己的一级缓存2、同一个SqlSession但是查询条件不同3、 同一个SqlSession两次查询期间执行了任何一次增删改操作 4、同一个SqlSession自己手动清空一级缓存二、MyBatis的二级缓存1、二级缓存的相关配置 三、一级\二级缓存…

外购设备PDA

专业扫描引擎&#xff0c;扫尽千军万码 工业级专业扫描引擎&#xff0c;数据采集精准、快速、安全&#xff1b; 同时增加摄像头扫描&#xff0c;自带绿点定位&#xff0c;实现快速对准&#xff1b; 可识别破损&#xff0c;沾染灰渍等条码提高工作效率。 一、产品特点 216GB/…

xhs xs _webmsxyw 纯算法还原盗用代码请注明出处搬来搬去真的很下头!

本文以教学为基准、本文提供的可操作性不得用于任何商业用途和违法违规场景。 本人对任何原因在使用本人中提供的代码和策略时可能对用户自己或他人造成的任何形式的损失和伤害不承担责任。 最新版 x-s 没露任何版权请审核员认真对待谢谢。 【2023.05.22】 更新全站接口通用 …

携手企企通,农业产业化国家重点龙头企业「罗牛山」加速采购数智化建设

导语 与企企通形成战略合作&#xff0c;双方基于供应商、合同管理、采购协同等多方面的应用场景&#xff0c;打造立足海南辐射全国的行业标准化解决方案。行业案例的示范作用&#xff0c;不仅对牛罗山采购业务数字化有指导意义&#xff0c;对整个畜牧养殖行业加入采购供应链管…

redis-实现限流

1、 主流的四种限流策略&#xff0c;我都可以通过redis实现 引言 在web开发中功能是基石&#xff0c;除了功能以外运维和防护就是重头戏了。因为在网站运行期间可能会因为突然的访问量导致业务异常、也有可能遭受别人恶意攻击 所以我们的接口需要对流量进行限制。俗称的QPS也是…

finallshell mac SSH工具

一、FinallShell 是什么 FinalShell是一体化的的服务器,网络管理软件,不仅是ssh客户端,还是功能强大的开发,运维工具,充分满足开发,运维需求. 特色功能: 云端同步,免费海外服务器远程桌面加速,ssh加速,本地化命令输入框,支持自动补全,命令历史,自定义命令参数 二、主要特性 …

CMake Practice 学习笔记四---使用动静态库

任务&#xff1a; 编写一个程序使用我们上一届构建的共享库 1、准备工作 在/backup/cmake目录建立t4目录 mkdir t4在t4目录中建立src目录&#xff0c;并编写源文件main.c cd t4 mkdir src && cd src touch main.cmain.c的内容如下&#xff1a; #include <hel…