我在django工作,我有一个视图,我在那里调用openai API,在前端我使用react,我有一个聊天机器人,我希望模型有一个数据记录,就像chatgpt页面一样。
class chatbot(APIView):
def post(self, request):
chatbot_response = None
if api_key is not None and request.method == 'POST':
openai.api_key = api_key
user_input = request.data.get('user_input')
prompt = user_input
response = openai.Completion.create(
model = 'text-davinci-003',
prompt = prompt,
max_tokens=250,
temperature=0.5
)
chatbot_response = response["choices"][0]["text"]
if chatbot_response is not None:
return Response({"response": chatbot_response}, status=status.HTTP_200_OK)
else:
return Response({'errors': {'error_de_campo': ['Promt vacio']}},
status=status.HTTP_404_NOT_FOUND)
我计划创建一个模型并将问题保存在数据库中,但我不知道如何将这些信息集成到视图中,我担心令牌支出,我真的不知道它是如何工作的。我希望有人能为我澄清这些疑问。非常感谢。
1条答案
按热度按时间qacovj5a1#
openai模型如何分配聊天内存?
保存到数据库
通过保存到数据库中,您可以永久保存历史,如下所示
https://docs.djangoproject.com/en/4.2/topics/db/queries/
https://docs.djangoproject.com/en/4.0/intro/tutorial02/#database-setup
1.您需要创建包含用户标识和历史的数据库模型
1.创建获取历史记录端点
在前端显示?
好吧idk关于你的前端代码它只是一个json数据
你应该轻而易举地做到这一点!
担心成本?
那么你不应该使用text-davinci-3聊天机器人的目的摆在首位!
text-davinci-3是一个InstructGPT模型Instruct模型被优化为遵循单轮指令。阿达是最快的型号,而达芬奇是最强大的(也非常昂贵)
你应该用chatgpt-3.5-turbo代替ChatCompletion
https://platform.openai.com/docs/api-reference/chat/create?lang=python
为什么?看看价格
gpt-3.5-turbo $0.002 /1 K代币
Davinci $0.0200 /1 K代币
性价比是原来的10倍!