Как вернуть ответ на запрос HTTP Get из класса models в проекте Django
Я пытаюсь получить ответ от API ассистентов OpenAi, используя проект Django.
Я реализую класс модели внутри models.py следующим образом:
from django.db import models
from typing_extensions import override
from openai import AssistantEventHandler
from django.http import HttpResponse
# Create your models here.
class Eventhandler(models.Model,AssistantEventHandler):
class meta:
managed = False
@override
def on_text_created(self, text) -> None:
print(f"\nassistant > ", end="", flush=True)
@override
def on_text_delta(self, delta, snapshot):
print(delta.value, end="", flush=True)
def on_tool_call_created(self, tool_call):
print(f"\nassistant > {tool_call.type}\n", flush=True)
def on_tool_call_delta(self, delta, snapshot):
if delta.type == 'code_interpreter':
if delta.code_interpreter.input:
print(delta.code_interpreter.input, end="", flush=True)
if delta.code_interpreter.outputs:
print(f"\n\noutput >", flush=True)
for output in delta.code_interpreter.outputs:
if output.type == "logs":
print(f"\n{output.logs}", flush=True)
Теперь, что важно, так это то, что класс Eventhandler отправляет ответ обратно клиенту! Я получаю исключение типа: ValueError: Представление theassistantcallerapp.views.callerview не вернуло объект HttpResponse. Вместо этого оно вернуло None. Итак, callerview - это представление внутри views.py. Оно сопоставляется с URL, который начнет GET-запрос к API OpenAi Assistants.
Эту реализацию я использую для потоковых ответов. Итак, вот представление внутри views.py и ЗАМЕТЬТЕ, КАК ИСПОЛЬЗУЕТСЯ КЛАСС EVENTHANDLER
#inside views.py
# this is callerview(request, paramm):
thread = client.beta.threads.create()
message = client.beta.threads.messages.create( thread_id=thread.id,role="user",
content=otro)
myeventhandler = Eventhandler() <-----------NOTICE HERE!!!!!!!!!!!!!
with client.beta.threads.runs.create_and_stream(
thread_id=thread.id,
assistant_id="asst_dddfffggg",
instructions="Please address the user as Donkey Kong. The user has a premium account.",
event_handler=myeventhandler, <-----------NOTICE HERE!!!!!!!!!!!!!
) as stream:
stream.until_done()
Как заставить класс Eventhandler внутри models.py возвращать ответ от API OpenAi Assistants?