cor*_*ght 36 python openai-api chatgpt-api
我目前正在尝试使用 OpenAI 的最新模型:gpt-3.5-turbo. 我正在遵循一个非常基本的教程。
我正在使用 Google Collab 笔记本进行工作。我必须对提示列表中的每个提示发出请求,为了简单起见,该请求如下所示:
prompts = ['What are your functionalities?', 'what is the best name for an ice-cream shop?', 'who won the premier league last year?']
Run Code Online (Sandbox Code Playgroud)
我定义了一个函数来执行此操作:
import openai
# Load your API key from an environment variable or secret management service
openai.api_key = 'my_API'
def get_response(prompts: list, model = "gpt-3.5-turbo"):
responses = []
restart_sequence = "\n"
for item in prompts:
response = openai.Completion.create(
model=model,
messages=[{"role": "user", "content": prompt}],
temperature=0,
max_tokens=20,
top_p=1,
frequency_penalty=0,
presence_penalty=0
)
responses.append(response['choices'][0]['message']['content'])
return responses
Run Code Online (Sandbox Code Playgroud)
但是,当我打电话时responses = get_response(prompts=prompts[0:3]),出现以下错误:
InvalidRequestError: Unrecognized request argument supplied: messages
Run Code Online (Sandbox Code Playgroud)
有什么建议么?
将messages参数替换为prompt会导致以下错误:
InvalidRequestError: [{'role': 'user', 'content': 'What are your functionalities?'}] is valid under each of {'type': 'array', 'minItems': 1, 'items': {'oneOf': [{'type': 'integer'}, {'type': 'object', 'properties': {'buffer': {'type': 'string', 'description': 'A serialized numpy buffer'}, 'shape': {'type': 'array', 'items': {'type': 'integer'}, 'description': 'Array shape'}, 'dtype': {'type': 'string', 'description': 'Stringified dtype'}, 'token': {'type': 'string'}}}]}, 'example': '[1, 1313, 451, {"buffer": "abcdefgh", "shape": [1024], "dtype": "float16"}]'}, {'type': 'array', 'minItems': 1, 'maxItems': 2048, 'items': {'oneOf': [{'type': 'string'}, {'type': 'object', 'properties': {'buffer': {'type': 'string', 'description': 'A serialized numpy buffer'}, 'shape': {'type': 'array', 'items': {'type': 'integer'}, 'description': 'Array shape'}, 'dtype': {'type': 'string', 'description': 'Stringified dtype'}, 'token': {'type': 'string'}}}], 'default': '', 'example': 'This is a test.', 'nullable': False}} - 'prompt'
Run Code Online (Sandbox Code Playgroud)
Rok*_*nko 53
您使用了错误的方法名称来完成。使用OpenAI SDK(Python或Node.js)时,需要使用正确的方法名称。
\n哪一个方法名称是正确的?这取决于您要使用的 OpenAI 模型。
\n下表将帮助您找出适合给定 OpenAI 模型的方法名称。
\n首先,在下表中查找哪个 API 端点与您要使用的 OpenAI 模型兼容。
\n| API端点 | 模型组 | 型号名称 |
|---|---|---|
| /v1/聊天/完成 | \xe2\x80\xa2 GPT-4 \xe2\x80\xa2 GPT-3.5 | \xe2\x80\xa2gpt-4和注明日期的型号版本\xe2\x80\xa2 gpt-4-32k和注明日期的型号版本\xe2\x80\xa2 gpt-4-1106-preview \xe2\x80\xa2 gpt-4-vision-preview \xe2\x80\xa2 gpt-3.5-turbo和注明日期的型号版本\xe2\x80\xa2 gpt-3.5-turbo-16k和注明日期模型发布了\xe2\x80\xa2 的微调版本 gpt-3.5-turbo |
| /v1/完成(旧版) | \xe2\x80\xa2 GPT-3.5 \xe2\x80\xa2 GPT 基础 | \xe2\x80\xa2 gpt-3.5-turbo-instruct \xe2\x80\xa2 babbage-002 \xe2\x80\xa2 davinci-002 |
| /v1/助手 | 除受支持之外的所有型号gpt-3.5-turbo-0301。检索工具需要 gpt-4-1106-preview或gpt-3.5-turbo-1106。 | |
| /v1/音频/转录 | 耳语 | \xe2\x80\xa2whisper-1 |
| /v1/音频/翻译 | 耳语 | \xe2\x80\xa2whisper-1 |
| /v1/音频/语音 | 语音合成 | \xe2\x80\xa2 tts-1 \xe2\x80\xa2 tts-1-hd |
| /v1/fine_tuning/工作 | \xe2\x80\xa2 GPT-3.5 \xe2\x80\xa2 GPT 基础 | \xe2\x80\xa2 gpt-3.5-turbo \xe2\x80\xa2 babbage-002 \xe2\x80\xa2 davinci-002 |
| /v1/嵌入 | 嵌入 | \xe2\x80\xa2text-embedding-ada-002 |
| /v1/节制 | 节制 | \xe2\x80\xa2 text-moderation-stable \xe2\x80\xa2 text-moderation-latest |
其次,在下表中找到您需要使用的方法名称。
\n注意:请注意,您必须使用与您的 OpenAI SDK 版本兼容的方法名称。
\n| API端点 | Python SDK <v1方法名称 | Python SDKv1方法名称 | Node.js SDKv3方法名称 | Node.js SDKv4方法名称 |
|---|---|---|---|---|
| /v1/聊天/完成 | openai.ChatCompletion.create | openai.chat.completions.create | openai.createChatCompletion | openai.chat.completions.create |
| /v1/完成(旧版) | openai.Completion.create | openai.completions.create | openai.createCompletion | openai.completions.create |
| /v1/助手 | / | openai.beta.assistants.create | / | openai.beta.assistants.create |
| /v1/音频/转录 | openai.Audio.transcribe | openai.audio.transcriptions.create | openai.createTranscription | openai.audio.transcriptions.create |
| /v1/音频/翻译 | openai.Audio.translate | openai.audio.translations.create | openai.createTranslation | openai.audio.translations.create |
| /v1/音频/语音 | / | openai.audio.speech.create | / | openai.audio.speech.create |
| /v1/fine_tuning/工作 | / | openai.fine_tuning.jobs.create | / | openai.fineTuning.jobs.create |
| /v1/嵌入 | openai.Embedding.create | openai.embeddings.create | openai.createEmbedding | openai.embeddings.create |
| /v1/节制 | openai.Moderation.create | openai.moderations.create | openai.createModeration | openai.moderations.create |
v1该模型的Python SDK工作示例gpt-3.5-turbo(即聊天完成 API)如果运行test.py,OpenAI API 将返回以下完成信息:
\n\n你好呀!今天我能为您提供什么帮助?
\n
测试.py
\nimport os\nfrom openai import OpenAI\nclient = OpenAI()\nOpenAI.api_key = os.getenv(\'OPENAI_API_KEY\')\n\ncompletion = client.chat.completions.create(\n model = \'gpt-3.5-turbo\',\n messages = [\n {\'role\': \'user\', \'content\': \'Hello!\'}\n ],\n temperature = 0 \n)\n\nprint(completion.choices[0].message.content)\nRun Code Online (Sandbox Code Playgroud)\n v4该模型的Node.js SDK工作示例gpt-3.5-turbo(即聊天完成 API)如果运行test.js,OpenAI API 将返回以下完成信息:
\n\n你好呀!今天我能为您提供什么帮助?
\n
测试.js
\nconst OpenAI = require("openai");\nconst client = new OpenAI({\n apiKey: process.env.OPENAI_API_KEY,\n});\n \nasync function main() {\n const completion = await client.chat.completions.create({\n model: \'gpt-3.5-turbo\',\n messages: [\n { role: \'user\', content: \'Hello!\' }\n ],\n temperature: 0,\n });\n\n console.log(completion.choices[0].message.content);\n}\n\nmain();\nRun Code Online (Sandbox Code Playgroud)\n