鱼C论坛

 找回密码
 立即注册
查看: 2221|回复: 8

openai迎来重大更新!

[复制链接]
发表于 2023-6-14 08:46:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 isdkz 于 2023-6-14 17:53 编辑

openai的api迎来了重大更新 ,详情可以看https://openai.com/blog/function-calling-and-other-api-updates

但是英语不好,浏览器的翻译太鸡肋,于是我找上了chatgpt,让他来帮我阅读更新日志并讲给我听

00.png

这次更新主要是三点,更长的上下文,函数调用和更低的api价格

openai官方虽然没有明说,但是我尝试了最新的0613镜像惊奇地发现这次api的速度快上了不少,感觉比web端还快

其中最让人眼前一亮的是函数调用功能,同样地,api文档我又找上了chatgpt来帮我阅读

01.png

02.png

大致了解了function calling的使用方法之后,我决定上手实现一个小功能出来

我们知道大语言模型玩的是文字游戏,所以对于数学方面它是不太擅长的,稍微复杂一点就会算错了

既然有了 function calling,我们何不将chatgpt不擅长的事情交给 function 来完成呢

于是我实现了一个可以将十六进制数转十进制数以及可以进行四则运算的chat

  1. import openai
  2. import json
  3. import os

  4. openai.api_key = os.environ.get('OPENAI_API_KEY')

  5. def get_response(prompt):
  6.     # 第一步,向模型发送用户的问题和它可以访问的函数
  7.     response = openai.ChatCompletion.create(
  8.         model="gpt-3.5-turbo-0613",
  9.         messages=[{"role": "user", "content": prompt}],
  10.         functions=[
  11.             {
  12.                 "name": "hex2dec",
  13.                 "description": "Convert hexadecimal to decimal",
  14.                 "parameters": {
  15.                     "type": "object",
  16.                     "properties": {
  17.                         "expression": {
  18.                             "type": "string",
  19.                             "description": "a hexadecimal expression, e.g. 0x1e, 1e",
  20.                         },
  21.                     },

  22.                 },
  23.             },
  24.             {
  25.                 "name": "arithmetic",
  26.                 "description": "Perform arithmetic operations.",
  27.                 "parameters": {
  28.                     "type": "object",
  29.                     "properties": {
  30.                         "expression": {
  31.                             "type": "string",
  32.                             "description": "A arithmetic expression, e.g. 1x2, 1+3",
  33.                         },
  34.                     },

  35.                 },
  36.             }
  37.         ],
  38.         function_call="auto",
  39.     )

  40.     message = response["choices"][0]["message"]
  41.     # 第二步,检查模型是否想要调用一个函数
  42.     if message.get("function_call"):
  43.         function_name = message["function_call"]["name"]
  44.         functions = {
  45.             'hex2dec': lambda x: f'{int(x, 16)}',
  46.             'arithmetic': lambda x: f'{eval(x)}'
  47.         }
  48.         # 第三步,调用函数
  49.         # 注意:模型返回的 JSON 可能不是有效的 JSON
  50.         function_response = functions[function_name](
  51.             json.loads(message["function_call"]["arguments"]).get('expression', 0)
  52.         )
  53.         # 第四步,向模型发送函数调用和函数响应的信息
  54.         response = openai.ChatCompletion.create(
  55.             model="gpt-3.5-turbo-0613",
  56.             messages=[
  57.                 {"role": "user", "content": prompt},
  58.                 message,
  59.                 {
  60.                     "role": "function",
  61.                     "name": function_name,
  62.                     "content": function_response,
  63.                 },
  64.             ],
  65.         )
  66.     return response["choices"][0]["message"]["content"]

  67. print(get_response('985*396+(783-249)的结果是多少?'))
  68. print(get_response('十六进制数AB2D的十进制是多少?'))
复制代码



05.png 06.png


03.png 04.png

评分

参与人数 1荣誉 +5 贡献 +3 收起 理由
ciwmy + 5 + 3 鱼C有你更精彩^_^

查看全部评分

本帖被以下淘专辑推荐:

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-6-14 10:10:40 | 显示全部楼层
好像 4 要免费开放了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-6-14 10:13:51 | 显示全部楼层
不二如是 发表于 2023-6-14 10:10
好像 4 要免费开放了

是吗?

我只听说了 gpt-4 的 api 权限会开放给更多人,没听说 4 免费开放的消息
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-6-14 10:17:35 | 显示全部楼层
那确实是一个好消息,如果开放的话
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-6-14 10:20:13 | 显示全部楼层
isdkz 发表于 2023-6-14 10:13
是吗?

我只听说了 gpt-4 的 api 权限会开放给更多人,没听说 4 免费开放的消息

gpt-4-0613

之前版本可能会像 bing 那样给个阉割的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-6-14 10:34:03 | 显示全部楼层
不二如是 发表于 2023-6-14 10:10
好像 4 要免费开放了

期待
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-6-14 11:14:41 | 显示全部楼层
good
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-8-27 19:33:53 | 显示全部楼层
考古
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-9-3 10:02:34 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-27 09:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表