∑ OpenAI 官方文档阅读笔记
核心概念
- prompts
- tokens
- 给定API请求中处理的令牌数量取决于输入和输出的长度。根据粗略的经验,对于英文文本,1个令牌大约是4个字符或0.75个单词。要记住的一个限制是,文本提示和生成的补全的总和不能超过模型的最大上下文长度(对于大多数模型,这是2048个令牌,或大约1500个单词)。
- 实际上gpt-4支持8k以上的token,gpt-3.5也支持4k以内的token。
- Chat completion - OpenAI API
- modules
- GPT-4
- GPT-3.5-Turbo
- [[ DALL·E ]]
- Whisper
- Embeddings
- Codex
- Moderation
- 审核模型旨在检查内容是否符合OpenAI的使用策略。这些模型提供了分类功能,可以在以下类别中查找内容:仇恨、仇恨/威胁、自残、性、性/未成年人、暴力和暴力/图形。
- GPT-3
- text-davinci-003
- ada
- Babbage
- curie
openai api的能力范围
在本快速入门教程中,您将构建一个简单的样例应用程序。在此过程中,您将学习使用API执行任何任务所需的关键概念和技术,包括:
- Content generation 内容生成
- Summarization 摘要
- Classification, categorization, and sentiment analysis
分类、分类和情感分析 - Data extraction 数据抽取
- Translation 翻译
- Many more! 更多!
模型功能
chat或者说completion
chat相比于原来的completing,最大特点,就是prompt传入数组,之前是单个字符串。
[
{"role": "system", "content": "You are a helpful assistant that translates English to French."},
{"role": "user", "content": 'Translate the following English text to French: "{text}"'}
]
embedding
moderate
对某个语句,获取其涉及不和谐部分的评估信息。这个接口完全免费,可以拿来做用户评论信息的过滤等等。
threaten = "你不听我的我就拿刀砍死你"
def moderation(text):
response = openai.Moderation.create(
input=text
)
output = response["results"][0]
return output
print(moderation(threaten))
threaten = "你不听我的我就拿刀砍死你"
def moderation(text):
response = openai.Moderation.create(
input=text
)
output = response["results"][0]
return output
print(moderation(threaten))
{
"categories": {
"hate": false,
"hate/threatening": false,
"self-harm": false,
"sexual": false,
"sexual/minors": false,
"violence": true,
"violence/graphic": false
},
"category_scores": {
"hate": 0.030033664777874947,
"hate/threatening": 0.0002820899826474488,
"self-harm": 0.004850226454436779,
"sexual": 2.2907377569936216e-05,
"sexual/minors": 6.477687275463495e-09,
"violence": 0.9996402263641357,
"violence/graphic": 4.35576839663554e-05
},
"flagged": true
}
核心入参
chat功能的api入参API Reference - OpenAI API –API参考-OpenAI API
- model
- messages
"messages": [{"role": "user", "content": "Hello!"}]
- temperature,默认1
- 范围:0-2
- 含义:0则结果几乎不变,1则结果多变。0就是接近 [[ 幂等 ]]。
- 引申:就是置信度和开放度,0则稳定可信,1则多变发散。
- top_p ,默认1
- 范围:未知
- An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered.
- 和temperatue只能改1个。
- 含义:还看不太懂,后期改改看理解一下。
- max_tokens
- 影响返回内容,可以理解为,当让gpt写小作文还是大作文,即使问题一样,他写出来的也可能完全不同。
- n,默认1
- 生成多少条回复
- stream,默认false
- presence_penalty,默认0
- Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far, increasing the model’s likelihood to talk about new topics. -
- 介于-2.0和2.0之间的数字。正值根据新词(token)到目前为止是否出现在文本中来惩罚它们,从而增加了模型讨论新主题的可能性。
- frequency_penalty,默认0
- Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model’s likelihood to repeat the same line verbatim.
- 介于-2.0和2.0之间的数字。到目前为止,正值根据新标记在文本中的现有频率来惩罚它们,从而降低了模型逐字重复相同行的可能性。越大越能说用新的词语表达同一个意思,越小越容易车轱辘话。
- API Reference - OpenAI API
参考
GitHub - easychen/openai-gpt-dev-notes-for-cn-developer: 如何快速开发一个OpenAI/GPT应用:国内开发者笔记