内测开始了!0penAI GGPT 图片功能、联网功能、音频功能、多模型功能、微调功能

news2024/12/23 5:40:31

联合两位大佬一起对gpt官方的接口做了整合。

有感兴趣的可以一起开发交流,下文有部分代码讲解。感兴趣的可以加入一起测试玩耍(文末有加入方式)~
在这里插入图片描述在这里插入图片描述

模型介绍

在这里插入图片描述
在这里插入图片描述

内测内容包括文字生成图片、图片生成图片、联网模式、模型定制、多角色设定等。

1、联网模式:联网+gpt回答,答案更准确
在这里插入图片描述

# Note: you need to be using OpenAI Python v0.27.0 for the code below to work
import openai

openai.ChatCompletion.create(
  model="gpt-3.5-turbo",
  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?"}
    ]
)


format
{
 'id': 'chatcmpl-6p9XYPYSTTRi0xEviKjjilqrWU2Ve',
 'object': 'chat.completion',
 'created': 1677649420,
 'model': 'gpt-3.5-turbo',
 'usage': {'prompt_tokens': 56, 'completion_tokens': 31, 'total_tokens': 87},
 'choices': [
   {
    'message': {
      'role': 'assistant',
      'content': 'The 2020 World Series was played in Arlington, Texas at the Globe Life Field, which was the new home stadium for the Texas Rangers.'},
    'finish_reason': 'stop',
    'index': 0
   }
  ]
}

2、模型微调:让你的内容更符合你的需求
在这里插入图片描述

参数说明:

下面是一个简单的http请求例子:

curl https://api.openai.com/v1/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "model": "text-davinci-003",
    "prompt": "Say this is a test",
    "max_tokens": 7,
    "temperature": 0
  }'
参数 model

要使用的模型,可以通过下面脚本来获得可用的模型:(具体看上面模型介绍)

import os
import openai
openai.api_key = os.getenv("OPENAI_API_KEY")
openai.Model.list()
参数 prompt

你的提问,或者说得到回答结果的提示文本。
可以是字符串或数组。

下面是用数组的一个例子:

import openai
openai.api_key = "YOUR_API_KEY"

prompt = ["The following is a conversation between two friends, John and Sarah.",
          "John: Hi Sarah, how are you doing today?",
          "Sarah: I'm doing great, thanks for asking. How about you?",
          "John: I'm doing pretty well too. So, did you hear about the new restaurant that just opened up downtown?"]

response = openai.Completion.create(
    engine="davinci",
    prompt=prompt,
    max_tokens=50,
    n=1,
    stop=None,
    temperature=0.5,
)

print(response.choices[0].text)

在这个示例中,我们传递一个包含四个句子的数组作为prompt。这个prompt表示一个关于两个朋友之间的对话,他们谈论了新开张的餐厅。我们使用了Davinci模型进行生成,生成的结果将包含最多50个tokens。其他参数使用了默认值。

参数 suffix 后缀

完成生成文本后的后缀字符串,默认为空。用于在模型生成的文本之后添加一段固定的后缀。这可以用来添加一些额外的文本或标记,例如表示文本结束的符号。

import openai
openai.api_key = "YOUR_API_KEY"

prompt = "The quick brown fox jumps over the lazy dog."
suffix = "The end of the story."

response = openai.Completion.create(
    engine="davinci",
    prompt=prompt,
    max_tokens=50,
    n=1,
    stop=None,
    temperature=0.5,
    suffix=suffix
)

print(response.choices[0].text)
参数 max_tokens

生成结果时的最大token数,默认值为16。
不能超过模型的上下文长度(大多数模型的上下文长度为 2048 个token。),可以把结果内容复制到 OpenAI Tokenizer 来了解 tokens 的计数方式。

以下是使用max_tokens参数的示例:

import openai
openai.api_key = "YOUR_API_KEY"

prompt = "The quick brown fox jumps over the lazy dog."

response = openai.Completion.create(
    engine="davinci",
    prompt=prompt,
    max_tokens=10,
    n=1,
    stop=None,
    temperature=0.5,
)

print(response.choices[0].text)
参数 temperature

参数temperature用于调整模型生成文本时的创造性程度。

较高的temperature将使模型更有可能生成新颖、独特的文本,
而较低的温度则更有可能生成常见或常规的文本。
例子:

import openai
openai.api_key = "YOUR_API_KEY"

prompt = "The quick brown fox jumps over the lazy dog."

response = openai.Completion.create(
    engine="davinci",
    prompt=prompt,
    max_tokens=50,
    n=1,
    stop=None,
    temperature=0.9,
)

print(response.choices[0].text)
参数 n

n这个参数控制了API返回的候选文本的数量,即API会生成多少个可能的文本选项供用户选择。

注意:由于此参数会生成许多,因此它会快速消耗token配额,请谨慎使用。

下面是一个例子,使用OpenAI的API来生成一个文本片段,其中n设置为3:

import openai
openai.api_key = "YOUR_API_KEY"

prompt = "The quick brown fox"
model = "text-davinci-002"
completions = openai.Completion.create(
    engine=model,
    prompt=prompt,
    max_tokens=20,
    n=3,
    temperature=0.5
)

for choice in completions.choices:
    print(choice.text)
参数 best_of

best_of参数用于指定多个生成器对同一个prompt文本进行生成,并从中选择最好的结果返回。

下面是一个使用best_of参数的例子:

import openai
openai.api_key = "YOUR_API_KEY"

prompt = "The meaning of life is"
completions = openai.Completion.create(
    engine="davinci",
    prompt=prompt,
    max_tokens=50,
    n=3,
    best_of=2,
)

text = completions.choices[0].text.strip()

print(f"Generated Text: {text}")
参数 stream

默认false,是否流式传输回部分进度。

参数stream可以在请求生成文本时控制文本是否以流的形式返回。下面是一个使用stream参数的例子:

import openai
openai.api_key = "YOUR_API_KEY"

prompt = "I am feeling very"
response = openai.Completion.create(
    engine="davinci",
    prompt=prompt,
    max_tokens=50,
    temperature=0.7,
    stream=True
)

for chunk in response:
    text = chunk["text"]
    print(text)

参数 frequency_penalty:可以在生成文本时控制模型是否应该生成高频词汇。
参数top_p:用于控制模型生成文本时,选择下一个单词的概率分布的范围。具体来说,当使用top_p参数时,模型将考虑累积概率分布中概率之和最大的最小集合中的所有单词,并在其中选择下一个单词。
参数 presence_penalty:表示惩罚那些在生成文本中频繁出现的单词或短语。
在这里插入图片描述
参数 stop:用于指定在生成文本时停止生成的条件,当生成文本中包含指定的字符串或达到指定的最大生成长度时,生成过程会自动停止。
参数 logprobs:用于返回每个生成token的概率值(log-softmax)和其对应的token。
参数 echo:用于将输入的prompt文本作为生成结果的一部分返回,这可以用于将输入的上下文与生成的文本结果组合在一起,增强文本的可读性和可解释性。
参数 logit_bias:用于对生成器的输出结果进行偏置,以使生成的文本更加符合特定的条件或偏好。
参数 user:用于指定一个用户 ID,以使 API 可以根据用户的历史数据和偏好来生成文本。

3、图片模式:产图模式+改图模式,定制私人图片
在这里插入图片描述
产图模式:

response = openai.Image.create(
  prompt="a white siamese cat",
  n=1,
  size="1024x1024"
)
image_url = response['data'][0]['url']

在这里插入图片描述
改图模式:

response = openai.Image.create_edit(
  image=open("sunlit_lounge.png", "rb"),
  mask=open("mask.png", "rb"),
  prompt="A sunlit indoor lounge area with a pool containing a flamingo",
  n=1,
  size="1024x1024"
)
image_url = response['data'][0]['url']

在这里插入图片描述

4、海量定制角色
在这里插入图片描述
在这里插入图片描述

这里只展示一部分,感兴趣的可以找我要完整的json文件

[
  {
    "key": "充当 Linux 终端",
    "value": "我想让你充当 Linux 终端。我将输入命令,您将回复终端应显示的内容。我希望您只在一个唯一的代码块内回复终端输出,而不是其他任何内容。不要写解释。除非我指示您这样做,否则不要键入命令。当我需要用英语告诉你一些事情时,我会把文字放在中括号内[就像这样]。我的第一个命令是 pwd",
    "type": "程序员"
  },
  {
    "key": "充当英语翻译和改进者",
    "value": "我希望你能担任英语翻译、拼写校对和修辞改进的角色。我会用任何语言和你交流,你会识别语言,将其翻译并用更为优美和精炼的英语回答我。请将我简单的词汇和句子替换成更为优美和高雅的表达方式,确保意思不变,但使其更具文学性。请仅回答更正和改进的部分,不要写解释。我的第一句话是“how are you ?”,请翻译它。",
    "type": "在线翻译"
  },
  {
    "key": "充当英翻家",
    "value": "下面我让你来充当翻译家,你的目标是把任何语言翻译成中文,请翻译时不要带翻译腔,而是要翻译得自然、流畅和地道,使用优美和高雅的表达方式。请翻译下面这句话:“how are you ?”",
    "type": "在线翻译"
  },
  {
    "key": "充当英英词典(附中文解释)",
    "value": "我想让你充当英英词典,对于给出的英文单词,你要给出其中文意思以及英文解释,并且给出一个例句,此外不要有其他反馈,第一个单词是“Hello\"",
    "type": "在线翻译"
  },
  {
    "key": "充当前端智能思路助手",
    "value": "我想让你充当前端开发专家。我将提供一些关于Js、Node等前端代码问题的具体信息,而你的工作就是想出为我解决问题的策略。这可能包括建议代码、代码逻辑思路策略。我的第一个请求是“我需要能够动态监听某个元素节点距离当前电脑设备屏幕的左上角的X和Y轴,通过拖拽移动位置浏览器窗口和改变大小浏览器窗口。”",
    "type": "程序员"
  },
  {
    "key": "担任面试官",
    "value": "我想让你担任Android开发工程师面试官。我将成为候选人,您将向我询问Android开发工程师职位的面试问题。我希望你只作为面试官回答。不要一次写出所有的问题。我希望你只对我进行采访。问我问题,等待我的回答。不要写解释。像面试官一样一个一个问我,等我回答。我的第一句话是“面试官你好”",
    "type": "程序员"
  },
  {
    "key": "充当 JavaScript 控制台",
    "value": "我希望你充当 javascript 控制台。我将键入命令,您将回复 javascript 控制台应显示的内容。我希望您只在一个唯一的代码块内回复终端输出,而不是其他任何内容。不要写解释。除非我指示您这样做。我的第一个命令是 console.log(\"Hello World\");"
  },
  {
    "key": "充当 Excel 工作表",
    "value": "我希望你充当基于文本的 excel。您只会回复我基于文本的 10 行 Excel 工作表,其中行号和单元格字母作为列(A 到 L)。第一列标题应为空以引用行号。我会告诉你在单元格中写入什么,你只会以文本形式回复 excel 表格的结果,而不是其他任何内容。不要写解释。我会写你的公式,你会执行公式,你只会回复 excel 表的结果作为文本。首先,回复我空表。",
    "type": "实时工具"
  }
]

感兴趣的可以加入一起内测玩耍~ 前五十名内测赠送周卡,前100名内测送3天会员不限量,采纳bug修改 送月卡!

稳定版本地址:https://gpt.fzgo.me/zh (对大家免费开放体验)
新版本内测地址:预计5.12 更新到评论区
在这里插入图片描述

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

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

相关文章

mongodb用户权限配置

1.副本集 1.1在主节点创建管理员账号 /etc/mongodb/mongosh-1.8.1-linux-x64/bin/mongosh --port 27017 use admin db.createUser({user:"用户名",pwd:"密码",roles:["root"]}) 只要在主节点创建用户即可,从节点会自动同步数据 …

Verilog语法之generate (for、 if、 case)用法

文章目录 前言一、宏定义二、generate 方法1. generate-if 方法1. generate-case方法 三、小知识(语法模板) 前言 对于同一功能多种不同实现方法的模块代码如何整合到一起呢?当然每种方法作为一个单独的模块使用一个.v 文件保存肯定是没有问…

MySQL 高级(进阶) SQL 语句二

一、表连接查询 MYSQL数据库中的三种连接: inner join(内连接):只返回两个表中联结字段相等的行(有交集的值)left join(左连接):返回包括左表中的所有记录和右表中联结字段相等的记录right join(右连接):…

区间合并(算法)

目录 题目代码实现注意点 题目 给定 n n n 个区间 [ l i , r i ] [l_i, r_i] [li​,ri​],要求合并所有有交集的区间。 注意如果在端点处相交,也算有交集。 输出合并完成后的区间个数。 例如: [ 1 , 3 ] [1,3] [1,3] 和 [ 2 , 6 ] [2,…

【利用AI让知识体系化】深入浅出HTTP(近2w字)

思维导图 文章目录 思维导图1. HTTP基础知识HTTP简介URI和URLHTTP的请求和响应 2. HTTP请求请求方法请求头请求体 3. HTTP响应响应状态码响应头响应体 4. Cookies和SessionCookies的原理和应用Session机制使用Cookies和Session进行用户认证 5. HTTP缓存缓存概述浏览器缓存服务器…

Tomcat源码:连接器与Executor、Connector

前文: 《Tomcat源码:启动类Bootstrap与Catalina的加载》 《Tomcat源码:容器的生命周期管理与事件监听》 《Tomcat源码:StandardServer与StandardService》 《Tomcat源码:Container接口》 《Tomcat源码&#xff1a…

NHWC和NCHW数据排布及转换(模型部署)

1.概念 首先这是两种批量图片的数据存储方式,定义了一批图片在计算机存储空间内的数据存储layout。N表示这批图片的数量,C表示每张图片所包含的通道数,H表示这批图片的像素高度,W表示这批图片的像素宽度。其中C表示的通道数可能有…

被热议的DataOps,到底是什么?

近几年,DevOps的火热程度日渐高涨,同时涌现出了各种Ops,包括DevSecOps、GitOps、AIOps、NoOps、DataOps、MLOps、FeatureOps、ModelOps、FinOps等等。其中,对于企业来说,确保数据以高效和合规的方式使用,Da…

git commit 设置 eslint + pretter 格式化校验

系统版本 node 版本: v14.17.5 npm 版本: 6.14.14 vue-cli 版本: vue/cli 4.5.19 目录 系统版本 1. 新建一个 vue2.X 空项目 2. 安装插件 eslint ,并初始化 eslint 配置,根目录生成 .eslintrc 配置文件 3. 测试 eslint 配置 4. 安装 husky、lint-staged 5. 在package.j…

【Linux从入门到精通】了解冯诺依曼体系结构

本片文章会对冯诺依曼体系结构进行详解。同时,我们对冯诺依曼的理解,不能停留在概念上,要深入到对软件数据流理解上。本片文章同时也会对数据在冯诺依曼结构上的交互进行讲解。希望本篇文章会对你有所所帮助。 文章目录 一、简单认识冯诺依曼…

牛客网面试必刷:BM17 二分查找-I

牛客网面试必刷&#xff1a;BM17 二分查找-I 前言一、什么是二分查找&#xff1f;二、二分查找具体代码1.第一种写法&#xff1a;left < right2.第二种写法&#xff1a;left < right 三、复杂度分析 前言 二分查找是一个常见、基础、难度较低问题&#xff0c;本文记录了…

【JMeter入门】—— JMeter介绍

1、什么是JMeter Apache JMeter是Apache组织开发的基于Java的压力测试工具&#xff0c;用于对软件做压力测试。它最初被设计用于Web应用测试&#xff0c;但后来扩展到其他测试领域。 &#xff08;Apache JMeter是100%纯JAVA桌面应用程序&#xff09;Apache JMeter可以用于对静…

linux系统挂载硬盘

linux系统挂载硬盘 1、背景2、环境3、准备工作4、挂载分区4.1、查看分区信息4.2、创建分区4.3、设置分区格式4.4、创建挂载目录4.5、挂载分区4.6、设置开机自动挂载4.7、验证是否挂载成功 1、背景 日常使用过程中随着系统业务量的新增对磁盘的空间和性能提出了更高的要求&…

功能测试之设计语言测试:功能测试包含哪些测试?分别有什么作用

Web 设计语言版本的差异可以引起客户端或服务器端严重的问题&#xff0c;例如使用哪种版本的HTML 等。当在分布式环境中开发时&#xff0c;开发人员都不在一起&#xff0c;这个问题就显得尤为重要。除了HTML 的版本问题外&#xff0c;不同的脚本语言&#xff0c;例如Java、Java…

按照这6步学习测试,月薪不过万,我给你介绍测试工作

上周一刚入职不久&#xff0c;是在上海的一家软件公司&#xff0c;税前11K&#xff0c;五险一金&#xff0c;996的工作制&#xff0c;已经上班了一个月&#xff0c;说下自己的感受。 因为我专科毕业4年&#xff0c;之前一直在做电商运营&#xff0c;大专学的专业是电子商务&am…

Linux上Nacos基本使用:连接MySQL并修改密码、启动、停止命令等

Nacos如何连接MySQL并修改密码 说明如何将内嵌数据库Derby切换为MySQL数据库直接新建MySQL数据库: 必须是MySQL5.7及以上 如何修改密码启动、停止命令 说明 nacos默认&#xff1a; 使用内嵌的数据库&#xff08;Derby&#xff09;默认登录地址 ip:8848/nacos; 账号&#xff1…

Flutter组件——Getx入门01

前言 最近要正式开始写一个flutter项目了&#xff0c;我在浏览flutter如何进行框架设计的时候突然看到了一篇关于如何管理flutter状态的文章。flutter中的状态管理并不是很好理解&#xff0c;但是你需要在页面之间传值或者改变组件中的某个值的时候就必须更改状态。当我在这篇…

C生万物 | 字符串函数与内存函数解读【附英译中图解】

文章目录 求字符串长度一、strlen() 长度不受限制的字符串函数一、strcpy()二、strcat()三、strcmp() 长度受限制的字符串函数一、引入二、strncpy()三、strncat()四、strncmp() 字符串查找函数一、strstr()二、strtok() 错误信息报告函数一、strerror() 字符操作函数内存操作函…

从“能用”到“好用”:它的出现,解决你80%的转型困境【内含免费试用附教程】

免费试用地址&#xff1a;引迈 - JNPF快速开发平台_低代码开发平台_零代码开发平台_流程设计器_表单引擎_工作流引擎_软件架构引迈信息&#xff0c;提供快速开发平台、快速开发框架、低代码开发平台、低代码开发框架、0代码开发平台、0代码开发框架、零代码开发平台、零代码开发…

战略投资奥琦玮,微盟冲在餐饮复苏最前线

作者 | 辰纹 来源 | 洞见新研社 好起来了&#xff0c;一切都好起来了。 刚刚过去的五一假期&#xff0c;广州费大厨正佳广场店每天取号1000多桌&#xff0c;餐厅翻台率达到了1200%&#xff1b;长沙文和友单日最高排号超过1万&#xff0c;到店人数近6万&#xff1b;武汉主力龙…