电脑基础 · 2023年4月19日

openai的的API如何使用

openai的的API如何使用

import os
import openai
openai.api_key = os.getenv("OPENAI_API_KEY")
response = openai.Completion.create(
  model="text-davinci-003",
  prompt="I am a highly intelligent question answering bot. If you ask me a question that is rooted in truth, I will give you the answer. If you ask me a question that is nonsense, trickery, or has no clear answer, I will respond with \"Unknown\".\n\nQ: What is human life expectancy in the United States?\nA: Human life expectancy in the United States is 78 years.\n\nQ: Who was president of the United States in 1955?\nA: Dwight D. Eisenhower was president of the United States in 1955.\n\nQ: Which party did he belong to?\nA: He belonged to the Republican Party.\n\nQ: What is the square root of banana?\nA: Unknown\n\nQ: How does a telescope work?\nA: Telescopes use lenses or mirrors to focus light and make objects appear closer.\n\nQ: Where were the 1992 Olympics held?\nA: The 1992 Olympics were held in Barcelona, Spain.\n\nQ: How many squigs are in a bonk?\nA: Unknown\n\nQ: Where is the Valley of Kings?\nA:",
  temperature=0,
  max_tokens=100,
  top_p=1,
  frequency_penalty=0.0,
  presence_penalty=0.0,
  stop=["\n"]
)

OpenAI API 有几种不同的接口,具体的参数依赖于您选择的接口。以下是一些常见接口的简要说明和参数:

GPT-3 API:
endpoint: https://api.openai.com/v1/engines/gpt-3
参数:

  • engine: 模型的名称,例如 “davinci” 或 “curie”。
  • prompt: 文本提示,作为模型生成内容的上下文。
  • max_tokens: 生成文本的最大长度。
  • n: 生成的响应数量,默认为 1。
  • stop: 是否停止生成文本,当模型生成指定字符时停止。
  • temperature: 生成文本的随机性,取值从 0 到 1 。
  • frequency_penalty: 控制生成的文本的选择性,使用词频惩罚。
  • presence_penalty: 控制生成的文本的选择性,使用存在惩罚。

engine 的取值范围取决于 OpenAI 支持的模型。OpenAI 允许通过 API 访问多种不同的模型,包括 GPT-3、DALL·E 等。

通常,您可以从以下值中选择:

“davinci”:这是 OpenAI 最强大的模型,拥有最大的语言理解和生成能力。

“curie”:这是 OpenAI 一种较小的模型,具有较低的延迟和资源需求。

temperature 参数用于控制生成的文本的多样性和随机性。具体而言,它控制模型生成文本时对不同选项的偏好程度。如果 temperature 值较高,则模型将更倾向于生成不同的、随机的文本;如果 temperature 值较低,则模型将更倾向于生成相对安全的、可预测的文本。

通常,temperature 取值范围为 0 到 1。值越高,生成的文本就越具有随机性;值越低,生成的文本就越不随机。默认值为 1.0。

请注意,设置适当的 temperature 值可能需要一些试验和试错,因此请在使用前了解如何操作。

presence_penalty 的取值范围为 0 到 1。该值用于控制生成的文本的选择性,通过使用存在惩罚。
如果 presence_penalty 设置为 0,则模型将生成更简单、更可预测的文本。如果将其设置为 1,则模型将生成更加复杂、不可预测的文本。具体取值可以根据您的需求和应用场景进行调整。

frequency_penalty 的取值范围为 0 到 1。该值用于控制生成的文本的选择性,通过使用词频惩罚。
如果 frequency_penalty 设置为 0,则模型将生成更简单、更可预测的文本。如果将其设置为 1,则模型将生成更加复杂、不可预测的文本。具体取值可以根据您的需求和应用场景进行调整。

stop 参数用于指定结束生成文本的条件。它可以是一个字符串数组,其中的每个字符串都表示结束生成文本的条件。例如,如果您希望生成的文本在遇到 “end of story” 时停止,则可以将 stop 参数设置为:

stop=["end of story"]

当模型生成的文本遇到第一个 “end of story” 时,它将停止生成并返回已生成的文本。

请注意,当模型生成的文本与 stop 参数中的任意一个字符串匹配时,它将停止生成,因此请确保所选字符串是您希望结束生成文本的合适条件。