[Bug] [Module Name] Bug title can not save the AWEL workflow
Opened this issue · 6 comments
Search before asking
- I had searched in the issues and found no similar issues.
Operating system information
Windows
Python version information
3.10
DB-GPT version
latest release
Related scenes
- Chat Data
- Chat Excel
- Chat DB
- Chat Knowledge
- Model Management
- Dashboard
- Plugins
Installation Information
-
AutoDL Image
-
Other
Device information
cpu
Models information
LLM: ERNIE-4.0-Turbo-8K
What happened
我跟着操作手册创建awel工作流,按照图示创建,然后点保存出现了以下错误:
load系统内置工作流保存,同样报错。
根据报错信息确定arbitrary_types_allowed=True 设置没错。
What you expected to happen
工作流能够顺利保存
How to reproduce
- 来到应用管理,工作流
- 点击创建
- 创建工作流后点击右上角保存
- 输入工作流名称和title点击确定
- 报错。
- 点击加载默认工作流
- 点击保存
- 报错
Additional context
No response
Are you willing to submit PR?
- Yes I am willing to submit a PR!
@fluentlymos Please provide a screenshot of the AWEL flow and error logs in python server.
sure, @fangyinc please see blow snapshot for the AWEL flow:
and below is the error messge in webpage:
and below is the error message in python backend:
2024-09-12 20:19:03 Will-PC dbgpt.serve.core.schemas[20536] ERROR common_exception_handler catch Exception: success=False err_code='E0003' err_msg="Unable to generate pydantic-core schema for <class 'dbgpt.core.awel.dag.base.DAG'>. Set arbitrary_types_allowed=True
in the model_config to ignore this error or implement __get_pydantic_core_schema__
on your type to fully support it.\n\nIf you got this error by calling handler() within __get_pydantic_core_schema__
then you likely need to call handler.generate_schema(<some type>)
since we do not call __get_pydantic_core_schema__
on <some type>
otherwise to avoid infinite recursion.\n\nFor further information visit https://errors.pydantic.dev/2.9/u/schema-for-unknown-type" data=None
INFO: 127.0.0.1:56761 - "POST /api/v2/serve/awel/flows HTTP/1.1" 400 Bad Request
ERROR: Exception in ASGI application
Traceback (most recent call last):
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\starlette_utils.py", line 77, in collapse_excgroups
yield
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\starlette\middleware\base.py", line 186, in call
async with anyio.create_task_group() as task_group:
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\anyio_backends_asyncio.py", line 680, in aexit
raise BaseExceptionGroup(
exceptiongroup.ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\uvicorn\protocols\http\httptools_impl.py", line 401, in run_asgi
result = await app( # type: ignore[func-returns-value]
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\uvicorn\middleware\proxy_headers.py", line 70, in call
return await self.app(scope, receive, send)
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\starlette\middleware\cors.py", line 93, in call
await self.simple_response(scope, receive, send, request_headers=headers)
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\starlette\middleware\cors.py", line 144, in simple_response
await self.app(scope, receive, send)
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\fastapi\applications.py", line 1054, in call
await super().call(scope, receive, send)
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\starlette\applications.py", line 113, in call
await self.middleware_stack(scope, receive, send)
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\starlette\middleware\errors.py", line 187, in call
raise exc
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\starlette\middleware\errors.py", line 165, in call
await self.app(scope, receive, send)
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\starlette\middleware\base.py", line 185, in call
with collapse_excgroups():
File "C:\Users\will.conda\envs\dbgpt06_env\lib\contextlib.py", line 153, in exit
self.gen.throw(typ, value, traceback)
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\starlette_utils.py", line 83, in collapse_excgroups
raise exc
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\starlette\middleware\base.py", line 187, in call
response = await self.dispatch_func(request, call_next)
File "D:\work\DB-GPT060\dbgpt\util\tracer\tracer_middleware.py", line 49, in dispatch
response = await call_next(request)
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\starlette\middleware\base.py", line 163, in call_next
raise app_exc
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\starlette\middleware\base.py", line 149, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\starlette\middleware\exceptions.py", line 62, in call
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\starlette_exception_handler.py", line 62, in wrapped_app
raise exc
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\starlette_exception_handler.py", line 51, in wrapped_app
await app(scope, receive, sender)
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\starlette\routing.py", line 715, in call
await self.middleware_stack(scope, receive, send)
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\starlette\routing.py", line 735, in app
await route.handle(scope, receive, send)
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\starlette\routing.py", line 288, in handle
await self.app(scope, receive, send)
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\starlette\routing.py", line 76, in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\starlette_exception_handler.py", line 62, in wrapped_app
raise exc
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\starlette_exception_handler.py", line 51, in wrapped_app
await app(scope, receive, sender)
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\starlette\routing.py", line 73, in app
response = await f(request)
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\fastapi\routing.py", line 291, in app
solved_result = await solve_dependencies(
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\fastapi\dependencies\utils.py", line 639, in solve_dependencies
) = await request_body_to_args( # body_params checked above
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\fastapi\dependencies\utils.py", line 813, in request_body_to_args
fields_to_extract = get_cached_model_fields(first_field.type)
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\fastapi_compat.py", line 657, in get_cached_model_fields
return get_model_fields(model)
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\fastapi_compat.py", line 284, in get_model_fields
return [
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\fastapi_compat.py", line 285, in
ModelField(field_info=field_info, name=name)
File "", line 6, in init
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\fastapi_compat.py", line 110, in post_init
self._type_adapter: TypeAdapter[Any] = TypeAdapter(
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\pydantic\type_adapter.py", line 257, in init
self._init_core_attrs(rebuild_mocks=False)
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\pydantic\type_adapter.py", line 135, in wrapped
return func(self, *args, **kwargs)
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\pydantic\type_adapter.py", line 277, in _init_core_attrs
self._core_schema = _get_schema(self._type, config_wrapper, parent_depth=self._parent_depth)
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\pydantic\type_adapter.py", line 95, in get_schema
schema = gen.generate_schema(type)
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\pydantic_internal_generate_schema.py", line 655, in generate_schema
schema = self._generate_schema_inner(obj)
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\pydantic_internal_generate_schema.py", line 908, in _generate_schema_inner
return self._annotated_schema(obj)
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\pydantic_internal_generate_schema.py", line 2028, in _annotated_schema
schema = self._apply_annotations(source_type, annotations)
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\pydantic_internal_generate_schema.py", line 2107, in _apply_annotations
schema = get_inner_schema(source_type)
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\pydantic_internal_schema_generation_shared.py", line 83, in call
schema = self._handler(source_type)
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\pydantic_internal_generate_schema.py", line 2189, in new_handler
schema = metadata_get_schema(source, get_inner_schema)
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\pydantic_internal_generate_schema.py", line 2185, in
lambda source, handler: handler(source)
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\pydantic_internal_schema_generation_shared.py", line 83, in call
schema = self._handler(source_type)
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\pydantic_internal_generate_schema.py", line 2088, in inner_handler
schema = self._generate_schema_inner(obj)
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\pydantic_internal_generate_schema.py", line 929, in _generate_schema_inner
return self.match_type(obj)
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\pydantic_internal_generate_schema.py", line 1029, in match_type
return self._match_generic_type(obj, origin)
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\pydantic_internal_generate_schema.py", line 1058, in _match_generic_type
return self._union_schema(obj)
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\pydantic_internal_generate_schema.py", line 1378, in _union_schema
choices.append(self.generate_schema(arg))
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\pydantic_internal_generate_schema.py", line 655, in generate_schema
schema = self._generate_schema_inner(obj)
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\pydantic_internal_generate_schema.py", line 908, in _generate_schema_inner
return self._annotated_schema(obj)
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\pydantic_internal_generate_schema.py", line 2028, in _annotated_schema
schema = self._apply_annotations(source_type, annotations)
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\pydantic_internal_generate_schema.py", line 2107, in _apply_annotations
schema = get_inner_schema(source_type)
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\pydantic_internal_schema_generation_shared.py", line 83, in call
schema = self._handler(source_type)
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\pydantic_internal_generate_schema.py", line 2189, in new_handler
schema = metadata_get_schema(source, get_inner_schema)
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\pydantic_internal_generate_schema.py", line 2185, in
lambda source, handler: handler(source)
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\pydantic_internal_schema_generation_shared.py", line 83, in call
schema = self._handler(source_type)
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\pydantic_internal_generate_schema.py", line 2088, in inner_handler
schema = self._generate_schema_inner(obj)
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\pydantic_internal_generate_schema.py", line 929, in _generate_schema_inner
return self.match_type(obj)
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\pydantic_internal_generate_schema.py", line 1038, in match_type
return self._unknown_type_schema(obj)
File "C:\Users\will.conda\envs\dbgpt06_env\lib\site-packages\pydantic_internal_generate_schema.py", line 558, in _unknown_type_schema
raise PydanticSchemaGenerationError(
pydantic.errors.PydanticSchemaGenerationError: Unable to generate pydantic-core schema for <class 'dbgpt.core.awel.dag.base.DAG'>. Set arbitrary_types_allowed=True
in the model_config to ignore this error or implement __get_pydantic_core_schema__
on your type to fully support it.
If you got this error by calling handler() within __get_pydantic_core_schema__
then you likely need to call handler.generate_schema(<some type>)
since we do not call __get_pydantic_core_schema__
on <some type>
otherwise to avoid infinite recursion.
For further information visit https://errors.pydantic.dev/2.9/u/schema-for-unknown-type
我是用v0.6.0版本也遇到了这个问题,不过源码就没问题,可能是官方提供的镜像有问题,可以试试用 /docker/base/Dockerfile 自己build一下
尝试了下,直接build也不行,这个问题应该是pydantic版本不一致导入的,在build镜像时,需要手动把pydantic版本调整下
...
RUN pip3 install -i $PIP_INDEX_URL fastapi==0.111.0 pydantic==2.7.4 pydantic_core==2.18.410
...
I had occur the same issue, but fixed it with pip install fastapi==0.111.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
I had occur the same issue, but fixed it with pip install fastapi==0.111.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
That's right. Thank you. 😄