OpenBMB / XAgent

An Autonomous LLM Agent for Complex Task Solving
https://blog.x-agent.net/blog/xagent/
Apache License 2.0
7.82k stars 795 forks source link

TypeError: Object of type date is not JSON serializable #342

Open wenxuan1017 opened 6 months ago

wenxuan1017 commented 6 months ago

Issue Description / 问题描述

容器启动后,通过web端上传文件提问,无法得到回复,报错TypeError: Object of type date is not JSON serializable

Environment / 环境信息

Error Screenshots or Logs / 错误截图或日志

2023-12-15 10:33:21 XAgent-Server | XAgent Service Init Dependence.
2023-12-15 10:33:21 XAgent-Server | init a thread pool executor, max_workers: 1
2023-12-15 10:33:21 XAgent-Server | XAgent Service Init Dependence: Complete!
2023-12-15 10:33:21 XAgent-Server | Default user: Guest, token: xagent, you can use it to login
2023-12-15 10:33:21 XAgent-Server | XAgent Server Dependences:
2023-12-15 10:33:21 XAgent-Server | Python: 3.10+ 2023-12-15 10:33:21 XAgent-Server | FastAPI: Http server 2023-12-15 10:33:21 XAgent-Server | Websocket: long connect with client 2023-12-15 10:33:21 XAgent-Server | MySQL: save xagent data 2023-12-15 10:33:21 XAgent-Server | SqlAlchemy: ORM with MySQL 2023-12-15 10:33:21 XAgent-Server | Redis: save status of interaction 2023-12-15 10:33:21 XAgent-Server | Threading: run interaction 2023-12-15 10:33:21 XAgent-Server | APScheduler: send data to client and keep alive 2023-12-15 10:33:21 XAgent-Server | FastAPI APIRouter: manage websocket route 2023-12-15 10:33:21 XAgent-Server | XAgentError: XAgentServer.exts.exception_ext 2023-12-15 10:33:21 XAgent-Server | XAgent Server Version:
2023-12-15 10:33:21 XAgent-Server | V 1.1.0 2023-12-15 10:33:21 XAgent-Server | Notes:
2023-12-15 10:33:21 XAgent-Server | Since V 1.1.0, 2023-12-15 10:33:21 XAgent-Server | Local storage will no longer be supported, replaced by Mysql. 2023-12-15 10:33:21 XAgent-Server | The service depends on Redis and Mysql, 2023-12-15 10:33:21 XAgent-Server | so you need to install Redis and Mysql before using it. 2023-12-15 10:33:21 XAgent-Server | Before you use this service, please ensure that the following services are available: 2023-12-15 10:33:21 XAgent-Server | 1. Redis on docker, port: 6379, you can start it by docker, default password: xagent 2023-12-15 10:33:21 XAgent-Server | 2. Mysql on docker, port: 3306, you can start it by docker 2023-12-15 10:33:21 XAgent-Server | 3. XAgent Tool Server is runnning on port 8080 2023-12-15 10:33:21 XAgent-Server | 4. Port 8090 is not occupied 2023-12-15 10:33:21 XAgent-Server |
2023-12-15 10:33:21 XAgent-Server | INFO: 127.0.0.1:56480 - "POST /conv/getUserInteractions HTTP/1.0" 200 OK 2023-12-15 10:33:21 XAgent-Server | INFO: 127.0.0.1:56482 - "POST /conv/init_conv_env HTTP/1.0" 200 OK 2023-12-15 10:33:28 XAgent-Server | INFO: 127.0.0.1:33080 - "POST /workspace/upload HTTP/1.0" 200 OK 2023-12-15 10:33:42 XAgent-Server | INFO: ('172.18.0.1', 53776) - "WebSocket /ws/base/3059d12f16ff4527a2c0811e20459945?user_id=guest&token=xagent&description=%E5%B8%AE%E6%88%91%E5%88%86%E6%9E%90%E8%BF%99%E4%BB%BD%E6%96%87%E4%BB%B6" [accepted] 2023-12-15 10:33:42 XAgent-Server | INFO: connection open 2023-12-15 10:33:42 XAgent-Server | Exception in thread Thread-1 (task_handler): 2023-12-15 10:33:42 XAgent-Server | Traceback (most recent call last): 2023-12-15 10:33:42 XAgent-Server | File "/app/XAgentServer/server.py", line 52, in interact 2023-12-15 10:33:42 XAgent-Server | xagent_core.build(xagent_param, interaction=interaction) 2023-12-15 10:33:42 XAgent-Server | File "/app/XAgent/core.py", line 206, in build 2023-12-15 10:33:42 XAgent-Server | self.register_all(param, interaction) 2023-12-15 10:33:42 XAgent-Server | File "/app/XAgent/core.py", line 195, in register_all 2023-12-15 10:33:42 XAgent-Server | self.resister_recorder(param) 2023-12-15 10:33:42 XAgent-Server | File "/app/XAgent/core.py", line 128, in resister_recorder 2023-12-15 10:33:42 XAgent-Server | self.recorder.regist_config(param.config) 2023-12-15 10:33:42 XAgent-Server | File "/app/XAgent/recorder.py", line 295, in regist_config 2023-12-15 10:33:42 XAgent-Server | record = self.generate_record( 2023-12-15 10:33:42 XAgent-Server | File "/app/XAgent/recorder.py", line 87, in generate_record 2023-12-15 10:33:42 XAgent-Server | content=json.dumps(data, ensure_ascii=False, indent=4)) 2023-12-15 10:33:42 XAgent-Server | File "/usr/local/lib/python3.10/json/init.py", line 238, in dumps 2023-12-15 10:33:42 XAgent-Server | *kw).encode(obj) 2023-12-15 10:33:42 XAgent-Server | File "/usr/local/lib/python3.10/json/encoder.py", line 201, in encode 2023-12-15 10:33:42 XAgent-Server | chunks = list(chunks) 2023-12-15 10:33:42 XAgent-Server | File "/usr/local/lib/python3.10/json/encoder.py", line 431, in _iterencode 2023-12-15 10:33:42 XAgent-Server | yield from _iterencode_dict(o, _current_indent_level) 2023-12-15 10:33:42 XAgent-Server | File "/usr/local/lib/python3.10/json/encoder.py", line 405, in _iterencode_dict 2023-12-15 10:33:42 XAgent-Server | yield from chunks 2023-12-15 10:33:42 XAgent-Server | File "/usr/local/lib/python3.10/json/encoder.py", line 405, in _iterencode_dict 2023-12-15 10:33:42 XAgent-Server | yield from chunks 2023-12-15 10:33:42 XAgent-Server | File "/usr/local/lib/python3.10/json/encoder.py", line 325, in _iterencode_list 2023-12-15 10:33:42 XAgent-Server | yield from chunks 2023-12-15 10:33:42 XAgent-Server | File "/usr/local/lib/python3.10/json/encoder.py", line 405, in _iterencode_dict 2023-12-15 10:33:42 XAgent-Server | yield from chunks 2023-12-15 10:33:42 XAgent-Server | File "/usr/local/lib/python3.10/json/encoder.py", line 438, in _iterencode 2023-12-15 10:33:42 XAgent-Server | o = _default(o) 2023-12-15 10:33:42 XAgent-Server | File "/usr/local/lib/python3.10/json/encoder.py", line 179, in default 2023-12-15 10:33:42 XAgent-Server | raise TypeError(f'Object of type {o.class.name} ' 2023-12-15 10:33:42 XAgent-Server | TypeError: Object of type date is not JSON serializable 2023-12-15 10:33:42 XAgent-Server | 2023-12-15 10:33:42 XAgent-Server | The above exception was the direct cause of the following exception: 2023-12-15 10:33:42 XAgent-Server | 2023-12-15 10:33:42 XAgent-Server | Traceback (most recent call last): 2023-12-15 10:33:42 XAgent-Server | File "/app/XAgentServer/server.py", line 101, in interact 2023-12-15 10:33:42 XAgent-Server | raise XAgentRunningError(str(e)) from e 2023-12-15 10:33:42 XAgent-Server | XAgentServer.exts.exception_ext.XAgentRunningError: Object of type date is not JSON serializable 2023-12-15 10:33:42 XAgent-Server | 2023-12-15 10:33:42 XAgent-Server | During handling of the above exception, another exception occurred: 2023-12-15 10:33:42 XAgent-Server | 2023-12-15 10:33:42 XAgent-Server | Traceback (most recent call last): 2023-12-15 10:33:42 XAgent-Server | File "/usr/local/lib/python3.10/threading.py", line 1016, in _bootstrap_inner 2023-12-15 10:33:42 XAgent-Server | self.run() 2023-12-15 10:33:42 XAgent-Server | File "/usr/local/lib/python3.10/threading.py", line 953, in run 2023-12-15 10:33:42 XAgent-Server | self._target(self._args, **self._kwargs) 2023-12-15 10:33:42 XAgent-Server | File "/app/XAgentServer/application/websockets/base.py", line 324, in task_handler 2023-12-15 10:33:42 XAgent-Server | server.interact(interaction=interaction) 2023-12-15 10:33:42 XAgent-Server | File "/app/XAgentServer/server.py", line 104, in interact 2023-12-15 10:33:42 XAgent-Server | xagent_core.close() 2023-12-15 10:33:42 XAgent-Server | File "/app/XAgent/core.py", line 223, in close 2023-12-15 10:33:42 XAgent-Server | self.toolserver_interface.download_all_files() 2023-12-15 10:33:42 XAgent-Server | AttributeError: 'NoneType' object has no attribute 'download_all_files'