Exception inside application: 'StreamingHttpResponse' object has no attribute 'encode'
Traceback (most recent call last):
File "C:\Users\Tamerlan\Desktop\chatbot_project\venv\lib\site-packages\django\contrib\staticfiles\handlers.py", line 101, in __call__
return await self.application(scope, receive, send)
File "C:\Users\Tamerlan\Desktop\chatbot_project\venv\lib\site-packages\channels\routing.py", line 62, in __call__
return await application(scope, receive, send)
File "C:\Users\Tamerlan\Desktop\chatbot_project\venv\lib\site-packages\channels\sessions.py", line 47, in __call__
return await self.inner(dict(scope, cookies=cookies), receive, send)
File "C:\Users\Tamerlan\Desktop\chatbot_project\venv\lib\site-packages\channels\sessions.py", line 263, in __call__
return await self.inner(wrapper.scope, receive, wrapper.send)
File "C:\Users\Tamerlan\Desktop\chatbot_project\venv\lib\site-packages\channels\auth.py", line 185, in __call__
return await super().__call__(scope, receive, send)
File "C:\Users\Tamerlan\Desktop\chatbot_project\venv\lib\site-packages\channels\middleware.py", line 24, in __call__
return await self.inner(scope, receive, send)
File "C:\Users\Tamerlan\Desktop\chatbot_project\venv\lib\site-packages\channels\routing.py", line 116, in __call__
return await application(
File "C:\Users\Tamerlan\Desktop\chatbot_project\venv\lib\site-packages\channels\consumer.py", line 94, in app
return await consumer(scope, receive, send)
File "C:\Users\Tamerlan\Desktop\chatbot_project\venv\lib\site-packages\channels\consumer.py", line 58, in __call__
await await_many_dispatch(
File "C:\Users\Tamerlan\Desktop\chatbot_project\venv\lib\site-packages\channels\utils.py", line 50, in await_many_dispatch
await dispatch(result)
File "C:\Users\Tamerlan\Desktop\chatbot_project\venv\lib\site-packages\channels\consumer.py", line 73, in dispatch
await handler(message)
File "C:\Users\Tamerlan\Desktop\chatbot_project\venv\lib\site-packages\channels\generic\websocket.py", line 194, in websocket_receive
await self.receive(text_data=message["text"])
File "C:\Users\Tamerlan\Desktop\chatbot_project\chatbot_app\consumers.py", line 28, in receive
await self.send(text_data=response)
File "C:\Users\Tamerlan\Desktop\chatbot_project\venv\lib\site-packages\channels\generic\websocket.py", line 209, in send
await super().send({"type": "websocket.send", "text": text_data})
File "C:\Users\Tamerlan\Desktop\chatbot_project\venv\lib\site-packages\channels\consumer.py", line 81, in send
await self.base_send(message)
File "C:\Users\Tamerlan\Desktop\chatbot_project\venv\lib\site-packages\channels\sessions.py", line 226, in send
return await self.real_send(message)
File "C:\Users\Tamerlan\Desktop\chatbot_project\venv\lib\site-packages\daphne\server.py", line 240, in handle_reply
protocol.handle_reply(message)
File "C:\Users\Tamerlan\Desktop\chatbot_project\venv\lib\site-packages\daphne\ws_protocol.py", line 202, in handle_reply
self.serverSend(message["text"], False)
File "C:\Users\Tamerlan\Desktop\chatbot_project\venv\lib\site-packages\daphne\ws_protocol.py", line 256, in serverSend
self.sendMessage(content.encode("utf8"), binary)
AttributeError: 'StreamingHttpResponse' object has no attribute 'encode'
I want to create a chatgpt chat and I want send a data look like how chatgpt sent it using streaming
class ChatConsumer(AsyncWebsocketConsumer):
async def connect(self):
await self.accept()
async def receive(self, text_data):
# Parse the JSON message
message = json.loads(text_data)
# Print the message to the console
print('Received message:', message)
# Define a generator function to yield JSON strings one at a time
def data_stream():
for i in range(10):
yield json.dumps({'message': f'Message {i}'})
# Send the stream of data to the client
response = StreamingHttpResponse(data_stream(), content_type='application/json')
print(response)
await self.send(text_data=response)
it is my consumer I want send data look like how chatgpt send data with streaming. How can I do it or it is recomended use streaming in here. I am also use in here async for but it did not help me