环境
pip install openai
api
Completions
url: POST https://api.openai.com/v1/completions
参数:
model
: (string) text-davinci-003, text-davinci-002, text-curie-001, text-babbage-001, text-ada-001prompt
: (string/array) (<|endoftext|>)suffix
:(string) (null) 文本完成后缀max_tokens
:(int) (16) 生成令牌的最大数量,len(prompt+max_tokens) < old_max:2048(new_max:4096)temperature
: (float) (1) 值范围:0.0~2.0,越大生成内容越随机,越小生成内容越固定- 建议与
top_p
仅修改一个
- 建议与
top_p
: (float) (1) 核采样,模型考虑具有top_p
概率质量的标记结果–>0.1: 只考虑构成前 10% 概率质量的标记(mass)n
: (int) (1) 为每个prompt生成多少completionsstream
: (bool) (false)是否将部分进度流式返回。如果设置,则令牌将作为仅数据的服务器推送事件在其可用时发送,流将以data:[DONE]
消息终止。logprobs
: (int) (null) 在返回的logprobs最有可能的令牌中包含对数概率和所选择的令牌。果logprobs是5,API将返回一个最有可能的令牌列表。API将始终返回所采样令牌的对数概率,因此响应中可能有logprobs + 1个元素。logprobs的最大值为5echo
: (bool) (false)回显promptstop
: (string/array) (null) 最多4个序列,其中API将停止生成进一步的令牌。返回的文本将不包含停止序列。presence_penalty
: (int) (0) [-2.0~2.0] 正值会根据到目前为止文本中它们的现有频率对新令牌进行惩罚,降低模型按原样重复相同行的可能性。best_of
: (int) (1) 在服务器端生成best_of完成,并返回“best”(每个令牌的对数概率最高的完成)。结果无法流式传输。当与n一起使用时,best_of控制候选完成的数量,并且n指定要返回的数量 - best_of必须大于n。- 注意:由于此参数生成许多完成,因此可能会快速消耗您的令牌配额。请谨慎使用,并确保您对max_tokens和stop设置合理的设置。
logit_bias
: (map) (null) 用于修改特定令牌出现在完成中的概率。它接受一个json对象,将令牌(由GPT令牌化器中的其令牌ID指定)映射到从-100到100的相关偏差值- 在数学上,该偏差被添加到模型生成的logits中进行采样之前。确切的影响因模型而异,但是-1到1之间的值应该减少或增加选择的可能性;像-100或100这样的值应该导致禁止或专门选择相关令牌
user
: (string) 表示您的最终用户的唯一标识符,可帮助OpenAI监视和检测滥用
chat
url: POST https://api.openai.com/v1/chat/completions
参数
model
: (string) gpt-4, gpt-4-0314, gpt-4-32k, gpt-4-32k-0314, gpt-3.5-turbo, gpt-3.5-turbo-0301messages
: (array)role
: (string) One of system, user, or assistantcontent
: (string) 角色消息内容name
: (string) max_len=64 a-z,A-Z,0-9和下划线
temperature
: (float) (1) [0~2]top_p
: (float) (1)n
: (int) (1)stream
: (bool) (false)stop
: (bool) (flase)max_tokens
: (int) (inf)presence_penalty
: (float) (0)frequency_penalty
: (float) (0)logit_bias
: (map) (null)user
: (string)
示例:
-
检索模型列表
import os import openai openai.organization = "YOUR_ORG_ID" openai.api_key = os.getenv("OPENAI_API_KEY") openai.Model.list()
-
基础使用
import os import openaiopenai.organization = "YOUR_ORG_ID" openai.api_key = "OPENAI_API_KEY"def get_completion(prompt, model="gpt-3.5-turbo"): messages = [{"role": "user", "content": prompt}] response = openai.ChatCompletion.create(model=model,messages=messages,temperature=0, # this is the degree of randomness of the model's output) return response.choices[0].message["content"]## Principle 1: Write clear and specific instructionstext_1 = f""" Making a cup of tea is easy! First, you need to get some \ water boiling. While that's happening, \ grab a cup and put a tea bag in it. Once the water is \ hot enough, just pour it over the tea bag. \ Let it sit for a bit so the tea can steep. After a \ few minutes, take out the tea bag. If you \ like, you can add some sugar or milk to taste. \ And that's it! You've got yourself a delicious \ cup of tea to enjoy. """ prompt = f""" You will be provided with text delimited by triple quotes. If it contains a sequence of instructions, \ re-write those instructions in the following format:Step 1 - ... Step 2 - … … Step N - …If the text does not contain a sequence of instructions, \ then simply write \"No steps provided.\"\"\"\"{text_1}\"\"\" """ response = get_completion(prompt) print("Completion for Text 1:") print(response)