class OpenaiClassifier():
def __init__(self, api_keys):
openai.api_key = api_keys['Openai']
def get_ratings(self, review):
prompt = f"Rate the following review as an integer from 1 to 5, where 1 is the worst and 5 is the best: \"{review}\""
response = openai.Completion.create(
engine="text-davinci-003",
prompt=prompt,
n=1,
max_tokens=5,
temperature=0.5,
top_p=1
)
try:
rating = int(response.choices[0].text.strip())
return rating
except ValueError:
return None
我想知道/v1/completions和/v1/chat/completions端点之间的主要区别是什么,以及如何使用这些模型进行文本分类:gpt-4、gpt-4-0314、gpt-4-32k、gpt-4-32k-0314、gpt-3.5-turbo、gpt-3.5-turbo-0301
3条答案
按热度按时间r1zhe5dt1#
/completions
端点提供单个****提示的完成,并接受单个字符串作为输入,而/chat/completions
提供给定对话的响应,并要求输入与消息历史对应的特定格式。如果你想使用聊天gpt模型,你需要使用
/chat/completions
API,但你的请求必须调整。qc6wkl3g2#
奥列格的答案是好的和正确的,但更完整的答案是:
/v1/完成终点适用于旧型号,如DeVinci。它是一个非常强大的模型,可以获取指令并生成输出。
/v1/chat/completions API用于较新的聊天模型(正如Oleg提到的)。GPT-3.5-Turbo很棒,因为它可以做DeVinci能做的一切,但它更便宜(成本的1/10),缺点是-要让它和DeVinci执行相同的操作,它可能需要更大的输入,输入可能更复杂。
当你给予例子时,聊天模型表现最好。
对于DeVinci(或其他基于/v1/completions API的模型),输入看起来像一条指令:“以风为主题创作两到三句简短的恐怖故事。”
对于聊天模型,输入将看起来像聊天:
输出为chat的完成。例如:
The wind howled through the night, shaking the windows of the house with a sinister force. As I stepped outside, I could feel it calling out to me, beckoning me to follow its chilling path.
这是一个real example from OpenAI documentation(我添加了一些关于指令API的上下文)。
因此,需要考虑的要点是:
fdbelqdn3#
根据我的使用经验,有一些不同
1.后端型号不同:请参阅doc:
1.角色选择:在
/chat/completions
中,您可以选择不同的角色{user,assistant,system},当您希望模型始终保持在某个上下文中时,系统角色很有帮助,例如,系统可能是:You are a customer service
。1.追加会话:在
/chat/completions
中,您可以以会话的方式输入更长的上下文,例如,您可以转到{“role”:“user”,“content”:“我是彼得”} {“role”:“user”,“content”:“喂,彼得!“} {“role”:“user”,“content”:“我叫什么名字?“}
你可以不断地附加对话,让模型记住你以前的对话,当你想应用它来构建有记忆的聊天机器人时,这是非常有用和重要的。虽然这也可以在
/completions
端点中完成,但它不是显式的。总的来说,我认为从长远来看,
/chat/completions
端点是要走的路。