Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

websocket --server doesn't seem to be really asynchronous processing? #1300

Open
bincooo opened this issue Jun 9, 2024 · 2 comments
Open

Comments

@bincooo
Copy link

bincooo commented Jun 9, 2024

Describe the bug

I've added some log outputs that don't appear to return data in real time, but rather after execution:

(interpreter) bincooo@iMac ~ % interpreter --model coze/gpt4o --auto_run --server
INFO:     Started server process [4656]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)

Updating interpreter settings with the following:
messages []
INFO:     127.0.0.1:51130 - "POST /settings HTTP/1.1" 200 OK
INFO:     ('127.0.0.1', 51131) - "WebSocket /" [accepted]
INFO:     connection open
websocket receive: {'type': 'websocket.receive', 'text': '{"role": "user", "type": "message", "start": true}'}
websocket receive: {'type': 'websocket.receive', 'text': '{"content":"帮我打开计算器","role":"user","type":"message"}\n'}
_add_to_queue: {'content': '帮我打开计算器', 'role': 'user', 'type': 'message'}
websocket receive: {'type': 'websocket.receive', 'text': '{"role": "user", "type": "message", "end": true}'}
[{'content': '帮我打开计算器', 'role': 'user', 'type': 'message'}]
🍀🍀🍀🍀GENERATING, using these messages:  []
passing this in: 帮我打开计算器
_add_to_queue: {'role': 'assistant', 'type': 'message', 'start': True}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': '好的'}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': ''}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': '首先'}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': '我们'}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': '需要'}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': '确认'}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': ''}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': '使用'}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': ''}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': '操作'}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': '系统'}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': ''}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': 'Mac'}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': 'OS'}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': ''}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': 'Dar'}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': 'win'}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': ')。'}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': ''}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': 'Mac'}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': 'OS'}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': ''}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': ',我们'}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': '可以'}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': '通过'}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': ''}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': ''}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': ''}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': '打开'}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': '计算'}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': ''}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': '应用'}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': '程序'}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': '。\n\n'}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': ''}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': ''}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': ''}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': ''}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': '一个'}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': 'Shell'}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': ''}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': ''}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': ''}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': '打开'}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': '计算'}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': ''}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': '。\n\n'}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'end': True}
_add_to_queue: {'role': 'assistant', 'type': 'code', 'format': 'sh', 'start': True}
_add_to_queue: {'role': 'assistant', 'type': 'code', 'format': 'sh', 'content': '\n'}
_add_to_queue: {'role': 'assistant', 'type': 'code', 'format': 'sh', 'content': 'open'}
_add_to_queue: {'role': 'assistant', 'type': 'code', 'format': 'sh', 'content': ' -'}
_add_to_queue: {'role': 'assistant', 'type': 'code', 'format': 'sh', 'content': 'a'}
_add_to_queue: {'role': 'assistant', 'type': 'code', 'format': 'sh', 'content': ' Calculator'}
_add_to_queue: {'role': 'assistant', 'type': 'code', 'format': 'sh', 'content': '\n'}
_add_to_queue: {'role': 'assistant', 'type': 'code', 'format': 'sh', 'end': True}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'start': True}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': '计算'}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': ''}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': '应该'}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': '已经'}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': '打开'}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': ''}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': '。如果'}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': ''}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': '没有'}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': '看到'}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': '计算'}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': ''}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': '应用'}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': '程序'}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': ',请'}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': '告诉'}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': ''}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': '。我'}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': '可以'}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': '进一步'}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': '检查'}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': ''}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': ''}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': ''}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': '其他'}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': '方法'}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'content': ''}
_add_to_queue: {'role': 'assistant', 'type': 'message', 'end': True}
_add_to_queue: {'role': 'server', 'type': 'completion', 'content': 'DONE'}
send_output: {'role': 'assistant', 'type': 'message', 'start': True}
send_output: {'role': 'assistant', 'type': 'message', 'content': '好的'}
send_output: {'role': 'assistant', 'type': 'message', 'content': ''}
send_output: {'role': 'assistant', 'type': 'message', 'content': '首先'}
send_output: {'role': 'assistant', 'type': 'message', 'content': '我们'}
send_output: {'role': 'assistant', 'type': 'message', 'content': '需要'}
send_output: {'role': 'assistant', 'type': 'message', 'content': '确认'}
send_output: {'role': 'assistant', 'type': 'message', 'content': ''}
send_output: {'role': 'assistant', 'type': 'message', 'content': '使用'}
send_output: {'role': 'assistant', 'type': 'message', 'content': ''}
send_output: {'role': 'assistant', 'type': 'message', 'content': '操作'}
send_output: {'role': 'assistant', 'type': 'message', 'content': '系统'}
send_output: {'role': 'assistant', 'type': 'message', 'content': ''}
send_output: {'role': 'assistant', 'type': 'message', 'content': 'Mac'}
send_output: {'role': 'assistant', 'type': 'message', 'content': 'OS'}
send_output: {'role': 'assistant', 'type': 'message', 'content': ''}
send_output: {'role': 'assistant', 'type': 'message', 'content': 'Dar'}
send_output: {'role': 'assistant', 'type': 'message', 'content': 'win'}
send_output: {'role': 'assistant', 'type': 'message', 'content': ')。'}
send_output: {'role': 'assistant', 'type': 'message', 'content': ''}
send_output: {'role': 'assistant', 'type': 'message', 'content': 'Mac'}
send_output: {'role': 'assistant', 'type': 'message', 'content': 'OS'}
send_output: {'role': 'assistant', 'type': 'message', 'content': ''}
send_output: {'role': 'assistant', 'type': 'message', 'content': ',我们'}
send_output: {'role': 'assistant', 'type': 'message', 'content': '可以'}
send_output: {'role': 'assistant', 'type': 'message', 'content': '通过'}
send_output: {'role': 'assistant', 'type': 'message', 'content': ''}
send_output: {'role': 'assistant', 'type': 'message', 'content': ''}
send_output: {'role': 'assistant', 'type': 'message', 'content': ''}
send_output: {'role': 'assistant', 'type': 'message', 'content': '打开'}
send_output: {'role': 'assistant', 'type': 'message', 'content': '计算'}
send_output: {'role': 'assistant', 'type': 'message', 'content': ''}
send_output: {'role': 'assistant', 'type': 'message', 'content': '应用'}
send_output: {'role': 'assistant', 'type': 'message', 'content': '程序'}
send_output: {'role': 'assistant', 'type': 'message', 'content': '。\n\n'}
send_output: {'role': 'assistant', 'type': 'message', 'content': ''}
send_output: {'role': 'assistant', 'type': 'message', 'content': ''}
send_output: {'role': 'assistant', 'type': 'message', 'content': ''}
send_output: {'role': 'assistant', 'type': 'message', 'content': ''}
send_output: {'role': 'assistant', 'type': 'message', 'content': '一个'}
send_output: {'role': 'assistant', 'type': 'message', 'content': 'Shell'}
send_output: {'role': 'assistant', 'type': 'message', 'content': ''}
send_output: {'role': 'assistant', 'type': 'message', 'content': ''}
send_output: {'role': 'assistant', 'type': 'message', 'content': ''}
send_output: {'role': 'assistant', 'type': 'message', 'content': '打开'}
send_output: {'role': 'assistant', 'type': 'message', 'content': '计算'}
send_output: {'role': 'assistant', 'type': 'message', 'content': ''}
send_output: {'role': 'assistant', 'type': 'message', 'content': '。\n\n'}
send_output: {'role': 'assistant', 'type': 'message', 'end': True}
send_output: {'role': 'assistant', 'type': 'code', 'format': 'sh', 'start': True}
send_output: {'role': 'assistant', 'type': 'code', 'format': 'sh', 'content': '\n'}
send_output: {'role': 'assistant', 'type': 'code', 'format': 'sh', 'content': 'open'}
send_output: {'role': 'assistant', 'type': 'code', 'format': 'sh', 'content': ' -'}
send_output: {'role': 'assistant', 'type': 'code', 'format': 'sh', 'content': 'a'}
send_output: {'role': 'assistant', 'type': 'code', 'format': 'sh', 'content': ' Calculator'}
send_output: {'role': 'assistant', 'type': 'code', 'format': 'sh', 'content': '\n'}
send_output: {'role': 'assistant', 'type': 'code', 'format': 'sh', 'end': True}
send_output: {'role': 'assistant', 'type': 'message', 'start': True}
send_output: {'role': 'assistant', 'type': 'message', 'content': '计算'}
send_output: {'role': 'assistant', 'type': 'message', 'content': ''}
send_output: {'role': 'assistant', 'type': 'message', 'content': '应该'}
send_output: {'role': 'assistant', 'type': 'message', 'content': '已经'}
send_output: {'role': 'assistant', 'type': 'message', 'content': '打开'}
send_output: {'role': 'assistant', 'type': 'message', 'content': ''}
send_output: {'role': 'assistant', 'type': 'message', 'content': '。如果'}
send_output: {'role': 'assistant', 'type': 'message', 'content': ''}
send_output: {'role': 'assistant', 'type': 'message', 'content': '没有'}
send_output: {'role': 'assistant', 'type': 'message', 'content': '看到'}
send_output: {'role': 'assistant', 'type': 'message', 'content': '计算'}
send_output: {'role': 'assistant', 'type': 'message', 'content': ''}
send_output: {'role': 'assistant', 'type': 'message', 'content': '应用'}
send_output: {'role': 'assistant', 'type': 'message', 'content': '程序'}
send_output: {'role': 'assistant', 'type': 'message', 'content': ',请'}
send_output: {'role': 'assistant', 'type': 'message', 'content': '告诉'}
send_output: {'role': 'assistant', 'type': 'message', 'content': ''}
send_output: {'role': 'assistant', 'type': 'message', 'content': '。我'}
send_output: {'role': 'assistant', 'type': 'message', 'content': '可以'}
send_output: {'role': 'assistant', 'type': 'message', 'content': '进一步'}
send_output: {'role': 'assistant', 'type': 'message', 'content': '检查'}
send_output: {'role': 'assistant', 'type': 'message', 'content': ''}
send_output: {'role': 'assistant', 'type': 'message', 'content': ''}
send_output: {'role': 'assistant', 'type': 'message', 'content': ''}
send_output: {'role': 'assistant', 'type': 'message', 'content': '其他'}
send_output: {'role': 'assistant', 'type': 'message', 'content': '方法'}
send_output: {'role': 'assistant', 'type': 'message', 'content': ''}
send_output: {'role': 'assistant', 'type': 'message', 'end': True}
send_output: {'role': 'server', 'type': 'completion', 'content': 'DONE'}
websocket receive: {'type': 'websocket.disconnect', 'code': <CloseCode.NO_STATUS_RCVD: 1005>}
Websocket disconnected with code 1005.
INFO:     connection closed

Reproduce

none

Expected behavior

Asynchronous return data.

Screenshots

No response

Open Interpreter version

Version: 0.2.6

Python version

Python 3.11.9

Operating System name and version

macOS 14.1

Additional context

No response

@KillianLucas
Copy link
Collaborator

I've noticed this too, I think we just need to add an asyncio.sleep(0) to yield control to the event loop. Will make a big update to the server soon to fix this!

@bincooo
Copy link
Author

bincooo commented Jun 15, 2024

Thanks for your reply. Also, can you provide a reverse connection websoket?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants