OpenAI 官方api 阅读笔记

news2024/12/24 11:29:19

网站 API

Key concepts

Prompts and completions

You input some text as a prompt, and the model will generate a text completion that attempts to match whatever context or pattern you gave it.

Token

 模型通过将文本分解成token来理解和处理, 处理token数量取决于输入+输出
 文本提示prompt+ completion 必须不超过模型的最大上下文长度(对于大多数模型,这是2048个token,或大约1500个字)

Models

在这里插入图片描述

 基础GPT-3模型被称为Davinci、Curie、Babbage和Ada。我们的Codex系列是GPT-3的后裔,在自然语言和代码上都进行过训练。

Quickstart快速上手

Content generation
Summarization
Classification, categorization, and sentiment analysis
Data extraction
Translation

make your instruction more specific. 指示更具体点

在这里插入图片描述

Add some examples 给几个例子

在这里插入图片描述

Adjust your settings 参数

Temperature 为0回答准确确定, 为1多样化

tokens and probabilities

给出一些文本,模型决定哪一个标记最有可能出现
这里可以更好地理解temperature

在这里插入图片描述

通常,对于所需输出明确的任务,最好设置一个低温度较高的温度可能对需要多样性或创造性的任务有用,或者如果你想产生一些变化供你的终端用户或人类专家选择。

Models

在这里插入图片描述

GPT-3

GPT-3模型可以理解和生成自然语言。四种主要模型,具有不同的能力水平,适合不同的任务。Davinci是能力最强的模型,而Ada是最快的
在这里插入图片描述

Davinci

Good at: Complex intent, cause and effect, summarization for audience
擅长于 复杂的意图,因果关系,为受众总结

Curie 居里夫人

Good at: Language translation, complex classification, text sentiment, summarization
擅长的是 语言翻译、复杂分类、文本情感、总结

Babbage

Good at: Moderate classification, semantic search classification
擅长。适度分类,语义搜索分类

Ada

Good at: Parsing text, simple classification, address correction, keywords
擅长。解析文本,简单分类,地址更正,关键词

Note: Any task performed by a faster model like Ada can be performed by a more powerful model like Curie or Davinci.

comparisontool

https://gpttools.com/comparisontool

Finding the right model

https://platform.openai.com/docs/models/finding-the-right-model

Codex

Codex模型是GPT-3模型的后代,可以理解和生成代码
在这里插入图片描述

Content filter

建议使用 moderation endpoint而不是e content filter model.。
在这里插入图片描述

Python

content_to_classify = "Your content here"

response = openai.Completion.create(
      model="content-filter-alpha",
      prompt = "<|endoftext|>"+content_to_classify+"\n--\nLabel:",
      temperature=0,
      max_tokens=1,
      top_p=0,
      logprobs=10
    )

logprob

GUIDES

Text completion

Prompt design

three basic guidelines to creating prompts:

  • Show and tell.
  • Provide quality data.
  • Check your settings.

Classification

用API创建一个文本分类器,提供了一个任务描述和几个例子。
在这里插入图片描述

  • Use plain language to describe your inputs and outputs.使用平实的语言来描述你的输入和输出
  • Show the API how to respond to any case. 向API展示如何对任何情况作出反应 ,考虑全面,这里的一个中立的标签很重要
  • You need fewer examples for familiar tasks.对于熟悉的任务,需要更少的例子就好

为了让变得更有效率,可以用它来从一次API调用中获得多个结果
在这里插入图片描述
注意:

  • 通过运行多次测试,确保你的概率设置 (Top P or Temperature) 被正确校准。
  • 不要让你的列表太长,否则API很可能会出现dirft。

Generation 生成新的想法

可以添加examples 来提升质量

Conversation

  1. 告诉API它应该如何表现,然后提供一些例子
  2. 我们给API一个身份

在这里插入图片描述
在这里插入图片描述
向API展示如何回复。只需要几个讽刺性的回答,API就能掌握这个模式并提供无穷无尽的讽刺性回答。

Transformation

  1. 翻译 translation
    如果你想把英语翻译成API不熟悉的语言,你就需要为它提供更多的例子,甚至fine-tune一个模型来做得更流畅。

  2. 对话
    在这里插入图片描述

  3. 总结summarization
    API能够掌握文本的上下文,并以不同的方式重新表述它。来达到更容易理解的解释

  4. Completion 续写
    续写代码、续写文章

  5. Factual responses

    • 为API提供一个基础真理。如果你为API提供一个文本体来回答问题(就像维基百科的条目),它就不太可能编造出一个回应。
    • 使用一个低概率,并向API展示如何说 "我不知道"。如果API明白,在它不太确定的情况下,说 "我不知道 "或一些变体是合适的,那么它将不太倾向于编造答案。

Inserting text 插入文本

在这里插入图片描述

模型提供额外的背景,它可以更容易被引导。

插入文本是测试版的一个新功能,你可能必须修改你使用API的方式以获得更好的效果。这里有一些最佳做法。

使用max_tokens > 256。该模型能更好地插入较长的补语。使用太小的max_tokens,模型可能在能够连接到后缀之前就被切断了。
最好是finish_reason == “stop” 。当模型到达一个自然停止点或用户提供的停止序列时,它将把 finish_reason 设置为 “停止”。这表明模型已经成功地连接到后缀井,是一个完成质量的良好信号。当使用n>1或重新取样时,这对在几个完成度之间进行选择尤其重要(见下一点)。

重新取样3-5次。虽然几乎所有的完成度都连接到前缀,但在较难的情况下,模型可能难以连接后缀。我们发现,在这种情况下,重新取样3或5次(或使用k=3,5的best_of),并挑选出以 "停止 "作为其finish_reason的样本,是一个有效的方法。在重新取样时,你通常希望有更高的temperature来增加多样性。

注意:如果所有返回的样本的finish_reason ==“length”,很可能是max_tokens太小了,模型在设法自然连接提示和后缀之前就耗尽了tokens。考虑在重新取样前增加max_tokens。

尝试给出更多的线索。在某些情况下,为了更好地帮助模型的生成,你可以通过给出一些模型可以遵循的模式的例子来提供线索,以决定一个自然的地方来停止。

在这里插入图片描述

Editing text

提供一些文本和如何修改它的指令,text-davinci-edit-001模型将尝试对其进行相应的编辑。这是一个自然的界面,用于翻译、编辑和调整文本。这对于重构和处理代码也很有用。
.在这里插入图片描述

Code completion

功能:

  • 将注释变成代码
  • 在上下文中完成你的下一行或函数
  • 为你带来知识,例如为一个应用程序找到一个有用的库或API调用
  • 添加注释
  • 重写代码以提高效率

Best practices

  • 向Codex提供一个注释和一个数据库模式的例子,让它为各种数据库编写有用的查询请求,向Codex展示数据库模式时,它就能够对如何格式化查询做出明智的猜测。
    * 加粗样式

  • 指定语言
    在这里插入图片描述

  • 提示Codex你希望它做什么
    如果你想让Codex创建一个网页,把第一行代码放在你的注释之后的HTML文档中(<!DOCTYPE html>),告诉Codex它接下来应该做什么。同样的方法也适用于从一个注释中创建一个函数(在注释后面用一个以func或def开头的新行)。

  • 指定库
    在这里插入图片描述

  • 注释风格会影响代码质量。
    在使用Python时,在某些情况下,使用doc字符串(用三重引号包裹的注释)可以得到比使用磅(#)符号更高质量的结果。
    在这里插入图片描述

  • 把注释放在函数里面会有帮助
    建议将一个函数的描述放在函数内部。使用这种格式可以帮助Codex更清楚地了解你想让这个函数做什么。
    在这里插入图片描述

  • 提供例子以获得更精确的结果。

  • 较低的temperatures 可以得到更精确的结果。
    将API温度设置为0,或接近0(如0.1或0.2),在大多数情况下往往会得到更好的结果。与GPT-3不同,较高的温度可以提供有用的创造性和随机性的结果,而Codex的较高温度可能会给你带来真正的随机或不稳定的反应。
    从零开始,然后向上递增0.1,直到你找到合适的变化。

  • 创建样例数据
    *复合函数和小型应用。
    我们可以向Codex提供一个注释,其中包括一个复杂的请求,如创建一个随机名字生成器或执行有用户输入的任务,只要有足够的标记,Codex就可以生成其余的东西。

  • 限制完成度以获得更精确的结果或降低延迟
    在Codex中请求更长的完成度会导致不精确的答案和重复。通过减少max_tokens和设置stop tokens来限制查询的大小。例如,添加 \n 作为stop序列,将完成度限制在一行代码中。较小的完成度也会产生较少的延迟。

  • 使用流来减少延迟。
    大型的Codex查询可能需要几十秒来完成。要建立需要较低延迟的应用程序,如执行自动完成的编码助手,考虑使用流。响应将在模型完成生成整个完成度之前被返回。只需要部分完成的应用程序可以通过以编程方式或使用创造性的停止值来切断一个完成,从而减少延迟。

  • 使用Codex来解释代码
    以 "这个函数 "或 "这个应用程序是 "开头。Codex通常会将此解释为解释的开始,并完成其余的文字。

  • 解释一个SQL查询

  • 写单元测试
    adding the comment “Unit test” and starting a function.
    在这里插入图片描述

  • 检查代码的错误

  • 使用源数据来编写数据库函数,写sql

  • 让Codex从一种语言转换到另一种语言,只要遵循一个简单的格式,在注释中列出你要转换的代码的语言,然后是代码
    在这里插入图片描述

  • 为一个库或框架重写代码

Inserting code

支持在代码中插入代码,除了前缀提示外,还提供了后缀提示。这可以用来在一个函数或文件的中间插入一个补全。
.

最佳做法
插入代码是测试版的一个新功能,你可能必须修改你使用API的方式以获得更好的效果。这里有一些最佳做法。

使用max_tokens > 256。该模型能更好地插入较长的完成度。使用太小的max_tokens,模型可能在能够连接到后缀之前就被切断了。注意,即使使用较大的max_tokens,也只对产生的tokens数量收费。

最好是finish_reason == “stop”。当模型到达一个自然停止点或用户提供的停止序列时,它将把 finish_reason 设置为 “停止”。这表明模型已经成功地连接到后缀井,是一个完成质量的良好信号。当使用n>1或重新取样时,这对在几个完成度之间进行选择尤其重要(见下一点)。

重新取样3-5次。虽然几乎所有的完成度都连接到前缀,但在较难的情况下,模型可能难以连接后缀。我们发现,在这种情况下,重新取样3或5次(或使用k=3,5的best_of),并挑选出以 "停止 "作为其finish_reason的样本,是一个有效的方法。在重新取样时,你通常希望有更高的温度来增加多样性。

注意:如果所有返回的样本的finish_reason == “length”,很可能是max_tokens太小了,模型在设法自然连接提示和后缀之前就耗尽了tokens。考虑在重新取样前增加max_tokens。

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

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

相关文章

STL讲解——模拟实现string

STL讲解——模拟实现string 经典的string类问题 大厂在面试中&#xff0c;面试官总喜欢让学生自己来模拟实现string类&#xff0c;最主要是实现string类的增、删、查、改、构造、拷贝构造、赋值运算符重载以及析构函数。大家看下自己可不可以写一个string类&#xff1f; cla…

第七章 - 聚合函数(count,avg,sum,max,min)和一些数学函数

第七章 - 聚合函数使用别名 ascount() 计数avg() 平均值sum() 求和max() 最大值min() 最小值一些数学计算函数Abs()Cos()Exp()Mod()Pi()radians()Sin()Sqrt()Power()Ceil()Floor()使用别名 as 在SQL中可以使用 as 来为一个字段或者一个值设置新的别名下面聚合函数的使用中就会…

chatgpt-api使用指南【官方泄露版】

chatgpt-api是 OpenAI ChatGPT 的非官方的 Node.js 包装器。 包括 TS 类型定义。 chatgpt-api不再需要任何浏览器破解——它使用泄露出来的OpenAI官方ChatGPT 在后台使用的模型。 &#x1f525; 推荐&#xff1a;使用 NSDT场景设计器 快速搭建 3D场景。 ✨你可以使用它开始构建…

dbeaver工具连接达梦数据库

、一 概述 DBeaver 是一个基于 Java 开发&#xff0c;免费开源的通用数据库管理和开发&#xff0c;DBeaver 采用 Eclipse 框架开发&#xff0c;支持插件扩展&#xff0c;并且提供了许多数据库管理工具&#xff1a;ER 图、数据导入/导出、数据库比较、模拟数据生成等&#xff0…

贝叶斯分析法在市场调研中的应用

一、市场调研的需求场景 在营销活动的用研调研时,我们经常会去问用户在不同平台的品类付费情况,以对比大促期间本品和竞品分别在哪些品类上具有市场优势,他们之间的差距具体在哪里、差距有多大。假如根据调研问卷结果,我们知道拼多多用户有30%的人在大促购买生鲜类,而淘宝…

7个营销人员常见的社交媒体问题以及解决方法

在如今的数字营销时代&#xff0c;许多营销人员都害怕在社交媒体上犯错。他们担心他们的社交媒体中的失误会演变成一场公关危机。面对一些常见的社交媒体问题&#xff0c;您需要知道如何避免和解决。对于数字营销人员来说&#xff0c;在现在这个信息互通&#xff0c;每时每刻都…

死锁检测组件-设想

死锁检测组件-设想 现在有三个临界资源和三把锁绑定了&#xff0c;三把锁又分别被三个线程占用。&#xff08;不用关注临界资源&#xff0c;因为锁和临界资源是绑定的&#xff09; 但现在出现这种情况&#xff1a;线程1去申请获取锁2&#xff0c;线程2申请获取锁3&#xff0c;…

【23种设计模式】行为型模式详细介绍(下)

前言 本文为 【23种设计模式】行为型模式 相关内容介绍&#xff0c;下边将对访问者模式&#xff0c;模板模式&#xff0c;策略模式&#xff0c;状态模式&#xff0c;观察者模式&#xff0c;备忘录模式&#xff0c;中介者模式&#xff0c;迭代器模式&#xff0c;解释器模式&…

面试官:熔断和降级有什么区别?

熔断和降级都是系统自我保护的一种机制&#xff0c;但二者又有所不同&#xff0c;它们的区别主要体现在以下几点&#xff1a; 概念不同触发条件不同归属关系不同 1.概念不同 1.1 熔断概念 “熔断”一词早期来自股票市场。熔断&#xff08;Circuit Breaker&#xff09;也叫自…

为SQL Server配置连接加密

前言很多客户在对数据库做安全审计时要求配置连接加密&#xff0c;本文就如何配置加密以及使用证书做一个系统的整理。连接加密首先&#xff0c;连接加密不是透明数据加密&#xff0c;很多人经常把两个概念混淆。连接加密是指客户端程序和SQL Server通信时的加密&#xff0c;保…

aws codebuild 自定义构建环境和本地构建

参考资料 Extending AWS CodeBuild with Custom Build Environments Docker in custom image sample for CodeBuild codebuild自定义构建环境 在创建codebuild项目的时候发现 构建环境是 Docker 映像&#xff0c;其中包含构建和测试项目所需的所有内容的完整文件系统 用ru…

实现一个简易koa2(一)— 基础架构

Koa 是一个新的 web 框架&#xff0c;由 Express 幕后的原班人马打造&#xff0c; 致力于成为 web 应用和 API 开发领域中的一个更小、更富有表现力、更健壮的基石。 通过利用 async 函数&#xff0c;Koa 帮你丢弃回调函数&#xff0c;并有力地增强错误处理。 Koa 并没有捆绑任…

从一致性角度考虑推荐冷启动长尾推荐问题(一)

前言&#xff1a;目前中长尾推荐的方法有很多&#xff0c;主流的方法有几类比如:1)在没有项目ID嵌入的情况下提高推荐模型的鲁棒性&#xff0c;2)利用有限的交互数据提高学习效率&#xff0c;如使用元学习方法;3)利用物品侧面信息&#xff0c;便于物品ID嵌入的初始化&#xff0…

如何将美国主机与电子邮件绑定

对于使用美国主机的网站所有者来说&#xff0c;将电子邮件与其主机服务绑定非常重要。这是因为绑定电子邮件可以帮助网站所有者更好地管理他们的网站和维护网站的安全&#xff0c;便于接收网站通知和警报、通过电子邮件管理网站以及更好地保护网站的安全。本文将就美国主机如何…

FileZilla Client(客户端)下载安装教程

FileZilla Client(客户端)下载安装教程 目录FileZilla Client(客户端)下载安装教程一、下载1.官网下载地址2.点击 Download FileZilla Client3.点击Download二、安装1.双击安装包2.点击 I Agree3.选择 “Anyone who uses this computer”4.全选&#xff08;勾选桌面图标&#x…

javaEE 初阶 — 传输层 TCP 协议中的异常情况与面向字节流的粘包问题

文章目录1 粘包问题1.1 什么是粘包问题1.2 如何解决粘包问题2 异常情况TCP 的十个特性&#xff1a;确认应答机制 超时重传机制 连接管理机制 滑动窗口 流量控制与拥塞控制 延迟应答与捎带应答 1 粘包问题 1.1 什么是粘包问题 面向字节流引入了一个比较麻烦的粘包问题。 …

BXC6332A第二代智能头盔方案助力电动车市场,为安全保驾护航

随着2020年6月1日起&#xff0c;公安部交管局在全国开展“一盔一带”安全守护行动&#xff0c;摩托车、电动车驾驶人乘车人按照规定正确使用头盔&#xff0c;是保障司乘安全的一道重要屏障&#xff0c;据统计&#xff0c;摩托车、电动自行车驾乘人员死亡事故中约80%为颅脑损伤致…

基于RK3588的嵌入式linux系统开发(三)——Uboot镜像文件合成

本章uboot镜像文件的合成包括官网必备文件rkbin下载和uboot镜像文件合成两部分内容&#xff0c;具体分别如下所述。 &#xff08;一&#xff09;下载rkbin文件包 以上uboot编译生成的uboot镜像不能直接烧录到板卡中运行&#xff0c;需要与atf、bl31、ddr配置文件等必备文件合成…

自动化测试工具_Jmeter

【课程简介】 接口测试是测试系统组件间接口的一种测试,接口测试天生为高复杂性的平台带来高效的缺陷监测和质量监督能力,平台越复杂&#xff0c;系统越庞大&#xff0c;接口测试的效果越明显。在接口测试大行其道的今天,测试工具也愈发重要,Jmeter作为一款纯 Java 开发的测试…

【刷题笔记】--二分查找binarysearch

当给一个有序的数组&#xff0c;在其中查找某个数&#xff0c;可以考虑用二分查找。 题目1&#xff1a; 二分查找的思路&#xff1a; 设置left和right指针分别指向要查找的区间。mid指针指向这个区间的中间。比较mid指针所指的数与target。 如果mid所指的数小于target&…