ChatGPT 3.5 API的调用不全指南(持续更新ing...)

这篇具有很好参考价值的文章主要介绍了ChatGPT 3.5 API的调用不全指南(持续更新ing...)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

诸神缄默不语-个人CSDN博文目录

OpenAI platform:https://platform.openai.com/overview

最近更新时间:2023.6.14
最早更新时间:2023.5.17

关于怎么才能上ChatGPT、怎么才能获取API额度等等信息,建议直接见我的medium账号。
因为这不是能在内网发的内容。
本文不涉及相关网络问题。

我本来想靠问ChatGPT来做的,然后发现ChatGPT给我讲的代码也过时了……
这种时候果然还是得靠自己啊!
OpenAI官网上给的好多示例代码也是过期代码,是不是很无语,就是很无语

为什么不写GPT-4:因为我还在排队列表里,我还没排到API。

openai包安装方式:pip install openai
需要注意的是,如果你用的是比较老的Python版本(如我的阿里云服务器自带3.6.8版本),那openai就会安装比较老的版本,然后可能下面有一些封装好的功能就没有……
这是正常现象,建议改用requests(下面同样给出代码示例)。

1. 余额和token数

如何查看一句话算多少个token:https://platform.openai.com/tokenizer

ChatGPT使用BPE tokenizer tiktoken(官方GitHub项目:openai/tiktoken: tiktoken is a fast BPE tokeniser for use with OpenAI’s models.)

import tiktoken
encoding = tiktoken.get_encoding("cl100k_base")
print(len(encoding.encode("一亩地租金1000元,那么3平方米地的租金应该是多少呢?首先需要将1亩转换为平方米,1亩=666.67平方米(约等于),因此每平方米的租金为:1000/666.67≈1.5元/平方米。\n\n那么3平方米的租金就是3×1.5=4.5元。")))

在response中也能看到每次调用所使用的总token数,见下面第2节的任务代码示例。

如何查看账户还剩多少token的余额:https://platform.openai.com/account/usage

2. 任务代码

2.1 通用文本生成

https://platform.openai.com/docs/guides/completion

使用官方提供的openai包:

import openai

openai.api_key = API_KEY

response = openai.Completion.create(
  model="text-davinci-003",
  prompt="一亩地有多少平方米?",
  temperature=0,
  max_tokens=100,
  top_p=1.0,
  frequency_penalty=0.0,
  presence_penalty=0.0,
)

print(response['choices'][0]['text'])

输出:一亩地的面积大小取决于所在的地区,一般来说,一亩地的面积大约为666平方米。(之前还会有两个回车,我也不知道为什么会有这玩意啊)

一个responce的输出格式:

<OpenAIObject text_completion id=omit at omit> JSON: {
  "choices": [
    {
      "finish_reason": "stop",
      "index": 0,
      "logprobs": null,
      "text": "\n\n\u4e00\u4ea9\u5730\u7684\u9762\u79ef\u5927\u5c0f\u53d6\u51b3\u4e8e\u6240\u5728\u7684\u5730\u533a\uff0c\u4e00\u822c\u6765\u8bf4\uff0c\u4e00\u4ea9\u5730\u7684\u9762\u79ef\u5927\u7ea6\u4e3a666\u5e73\u65b9\u7c73\u3002"
    }
  ],
  "created": omit,
  "id": "omit",
  "model": "text-davinci-003",
  "object": "text_completion",
  "usage": {
    "completion_tokens": 71,
    "prompt_tokens": 20,
    "total_tokens": 91
  }
}

使用requests:

import requests
response1=requests.post(url='https://api.openai.com/v1/completions',
                        headers={'Authorization':f"Bearer {API_KEY}",
                                 'content-type':'application/json'},
                        data="""{
                                "model": "text-davinci-003",
                                "prompt": "一亩地租金1000元,那么3平方米地的租金应该是多少呢?",
                                "max_tokens": 7,
                                "temperature": 0
                            }""".encode('utf-8')
                        )

response1.json()的输出:

{'id': 'omit',
 'object': 'text_completion',
 'created': omit,
 'model': 'text-davinci-003',
 'choices': [{'text': '\n\n3平方米地的租金应该是3000元。',
   'index': 0,
   'logprobs': None,
   'finish_reason': 'stop'}],
 'usage': {'prompt_tokens': 50, 'completion_tokens': 26, 'total_tokens': 76}}

(显然回答是错的,但这不重要)

2.2 通用对话

https://platform.openai.com/docs/guides/chat

使用openai包:

import openai
openai.api_key = api_key

completion = openai.ChatCompletion.create(
  model="gpt-3.5-turbo",
  messages=[
    {"role": "user", "content": "一亩地租金1000元,那么3平方米地的租金应该是多少呢?"}
  ]
)

completion.choices[0].message['content']的输出是:'首先需要将1亩转换为平方米,1亩=666.67平方米(约等于),因此每平方米的租金为:1000/666.67≈1.5元/平方米。\n\n那么3平方米的租金就是3×1.5=4.5元。'
看看人家的回答就阳间了很多啊,所以我的建议是用chat代替completion!

使用requests包:

import requests
response1=requests.post(url='https://api.openai.com/v1/chat/completions',
                        headers={'Authorization':f"Bearer {API_KEY}",
                                 'content-type':'application/json'},
                        data="""{
                                "model": "gpt-3.5-turbo",
                                "messages": [{"role":"user","content":"如何通过API调用查看余额?"}],
                                "max_tokens": 512,
                                "temperature": 0
                            }""".encode('utf-8'),
                        proxies={"http":"127.0.0.1:7890","https":"127.0.0.1:7890"}
                        )
print(response1.json())

输出是:
{'id': 'omit', 'object': 'chat.completion', 'created': omit, 'model': 'gpt-3.5-turbo-0301', 'usage': {'prompt_tokens': 19, 'completion_tokens': 291, 'total_tokens': 310}, 'choices': [{'message': {'role': 'assistant', 'content': '要通过API调用查看余额,您需要使用相应的API接口和密钥。以下是一般的步骤:\n\n1. 获取API密钥:您需要在交易所或钱包中创建API密钥,以便您可以使用API接口进行交易和查询余额。\n\n2. 查找API文档:您需要查找API文档,以了解如何使用API接口查询余额。不同的交易所和钱包可能有不同的API接口和参数。\n\n3. 发送API请求:使用API密钥和API接口,您可以发送API请求来查询余额。您需要提供相应的参数,例如货币类型和钱包地址。\n\n4. 解析API响应:一旦您发送了API请求,您将收到一个API响应。您需要解析响应以获取余额信息。响应可能是JSON格式的数据,您需要使用相应的编程语言解析它。\n\n请注意,不同的交易所和钱包可能有不同的API限制和费用。您需要仔细阅读API文档以了解这些限制和费用。'}, 'finish_reason': 'stop', 'index': 0}]}
其实我想问的是ChatGPT的API,不知道它觉得是什么的……

2.2.1 function calling

https://platform.openai.com/docs/guides/gpt/function-calling

2.3 图像生成

https://platform.openai.com/docs/guides/images

2.4 微调

https://platform.openai.com/docs/guides/fine-tuning

建议有几百个示例。

2.5 嵌入

https://platform.openai.com/docs/guides/embeddings/what-are-embeddings

2.6 语音转文字

https://platform.openai.com/docs/guides/speech-to-text

2.7 内容安全性审核

https://platform.openai.com/docs/guides/moderation/overview
https://platform.openai.com/docs/guides/safety-best-practices

2.8 速率限制

https://platform.openai.com/docs/guides/rate-limits/overview

  1. 解决方案:
    指数退避:参考我撰写的博文Python3:在访问不可靠服务时的重试策略(持续更新ing…)
  2. 批输入

2.9 错误代码

https://platform.openai.com/docs/guides/error-codes/api-errors

  1. 你的尝试次数太多,超过了速率限制
  2. 整个网络上用这个模型的人太多了,把你的请求给卡掉了:b'{\n "error": {\n "message": "That model is currently overloaded with other requests. You can retry your request, or contact us through our help center at help.openai.com if the error persists. (Please include the request ID 8a25aae67dadf1f6334a4dadc65f2048 in your message.)",\n "type": "server_error",\n "param": null,\n "code": null\n }\n}\n'
    这个问题我查了一下,从1月开始就有人喷了:Status code 503: That model is currently overloaded with other requests - API - OpenAI Developer Forum

2.10 其他

https://platform.openai.com/docs/guides/production-best-practices

3. 模型

https://platform.openai.com/docs/models

3.1 模型选择

文本生成表现最好的就是Davinci (text-davinci-003),最便宜的是Ada (ada):

ChatGPT 3.5 API的调用不全指南(持续更新ing...)
但是推荐用GPT 3.5这个chat模型来实现文本补完,因为效果好(上面给出示例了)

4. 通用超参设置

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

  1. temperature越高,多样性越大
  2. 输入长度:对于大多数模型,单个 API 请求在提示和完成之间最多只能处理 4,096 个token。
  3. max_tokens

5. 示例

https://platform.openai.com/examples
https://platform.openai.com/docs/tutorials/web-qa-embeddings文章来源地址https://www.toymoban.com/news/detail-448956.html

6. 在撰写本文过程中使用到的其他网络资料

  1. python - ‘latin-1’ codec can’t encode characters - Stack Overflow
  2. Python/Json:Expecting property name enclosed in double quotes - Stack Overflow

到了这里,关于ChatGPT 3.5 API的调用不全指南(持续更新ing...)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python虚拟环境管理(持续更新ing...)

    诸神缄默不语-个人CSDN博文目录 本文介绍Python语言管理虚拟环境的工具(anaconda,virtualenv) 使用虚拟环境主要是为了1. 防止新的包把整个环境搞乱 2. 有时需要跑不同版本的代码,这就需要机器上有不同版本的环境 最近更新时间:2023.5.31 最早更新时间:2023.5.31 优势是简单易

    2024年02月07日
    浏览(59)
  • Nginx 报错问题汇总(持续更新ing)

    目录 一、nginx: [emerg] invalid number of arguments in \\\"include\\\" directive in C:Program Filesnginx-1.15.4/conf/nginx.conf:61 总结: 二、nginx: [error] OpenEvent(\\\"Globalngx_reload_2152\\\") failed (5: Access is denied) 解决方案: 三、nginx: [emerg] unknown directive \\\"stream\\\" in /etc/nginx/nginx.conf:13 问题原因 解决办法 时间:2022-1

    2024年02月05日
    浏览(45)
  • 资源搜索引擎集合1(持续更新ing...)

    诸神缄默不语-个人CSDN博文目录 不是所有网址我都用过。如有失效请联系我。 电影 在线版 蓝鲸电影 电影狗 - 专业电影搜索引擎(电影狗发布页:http://www.haodyg.com/) 电影天堂 高清电台 APP 小小影视APP官网-全民影音播放器! 追风视频(可用应用宝下载) 555电影APP下载-555电影

    2024年01月20日
    浏览(33)
  • ChatGPT API进阶调用指南

    原文:ChatGPT API进阶调用指南 ChatGPT API 是基于 OpenAI 的 GPT模型的一个强大工具,可以用于构建各种对话式应用。以下是一些使用 Markdown 语法的进阶调用指南,以帮助您更好地利用 ChatGPT API。 您可以通过在对话中为用户设置角色,使对话更加有趣和动态。例如,您可以设置一

    2024年02月15日
    浏览(40)
  • 2023西工大NOJ (C语言版) 持续更新ing

    代码已同步至 gitee:2023NOJ(C语言版)! 题目过于 垃圾和睿智 ,做这种题简直是 浪费生命 ,甚至会让代码水平 剧烈下降 ,也就81-90题值得做一下,有这功夫不如多打会儿游戏。 贴出 100 题中全部 AC 代码, 并不保证代码正确性、可读性、简洁性、最佳性 ,只能保证AC;目

    2024年02月08日
    浏览(54)
  • 2023年8月22日OpenAI推出了革命性更新:ChatGPT-3.5 Turbo微调和API更新,为您的业务量身打造AI模型

    🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍专栏》学会IDEA常用操作,工作效率翻倍~💐 🌊 《100天精通Golang(基础入门篇)》学会Golang语言

    2024年02月11日
    浏览(64)
  • OpenAI发布ChatGPT函数调用和API更新

    2023年6月13日,OpenAI针对开发者调用的API做了重大更新,包括更易操控的 API模型、函数调用功能、更长的上下文和更低的价格。 在今年早些时候发布gpt-3.5-turbo,gpt-4在短短几个月内,已经看到开发人员在这些模型之上构建了令人难以置信的应用程序。 今天,我们将跟进一些令

    2024年02月08日
    浏览(44)
  • K8s 生产环境问题汇总及解决方案(持续更新 ing)

    目录 一、前端页面显示 503 Service Temporarily Unavailable 问题背景 解决方案 原理 二、Dockfile 构建镜像失败:When using COPY with more than one source file, the destination must be a directory and end with a /  问题背景 解决方案 原理 三、前端页面显示 502 Bad Gateway 问题背景  解决方案 原理 时间:2

    2024年02月02日
    浏览(39)
  • ChatGPT 使用 拓展资料: OPENAI 函数调用和其他 API 更新

    ChatGPT 使用 拓展资料: OPENAI 函数调用和其他 API 更新 我们在今年早些时候发布gpt-3.5-turbo,gpt-4在短短几个月内,已经看到开发人员在这些模型之上构建了令人难以置信的应用程序。 今天,我们将跟进一些令人兴奋的更新: Chat Completions API 中的新函数调用功能 gpt-4和的更新和

    2024年02月10日
    浏览(45)
  • 【C++系列P1】带上这篇基础小宝典,进发C++!(持续更新ing~)

    前言 大家好吖,欢迎来到 YY 滴 C++系列 ,热烈欢迎! (持续更新ing~) 本章主要内容面向刚刚学完C语言,准备或正在接触C++的老铁。而往往C++奇多的小特性和知识点让铁铁们头晕晕脑涨涨,因而本章收纳了许多C++中零散的知识点,相信这篇基础章会帮助铁铁们更好地入门!主

    2024年02月07日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包