microsoft / onnxruntime-genai

Generative AI extensions for onnxruntime
MIT License
473 stars 116 forks source link

Error in example chat_app execution #968

Open ramkrishna2910 opened 1 week ago

ramkrishna2910 commented 1 week ago

Describe the bug Following the chat_app example under https://github.com/microsoft/onnxruntime-genai/tree/main/examples/chat_app leads to a gradio error

To Reproduce Follow the instructions under https://github.com/microsoft/onnxruntime-genai/tree/main/examples/chat_app

Error:

ERROR:    Exception in ASGI application
Traceback (most recent call last):
  File "C:\Users\ramkr\miniconda3\envs\oga_chat\lib\site-packages\pydantic\type_adapter.py", line 270, in _init_core_attrs
    self._core_schema = _getattr_no_parents(self._type, '__pydantic_core_schema__')
  File "C:\Users\ramkr\miniconda3\envs\oga_chat\lib\site-packages\pydantic\type_adapter.py", line 112, in _getattr_no_parents
    raise AttributeError(attribute)
AttributeError: __pydantic_core_schema__

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\ramkr\miniconda3\envs\oga_chat\lib\site-packages\uvicorn\protocols\http\h11_impl.py", line 406, in run_asgi
    result = await app(  # type: ignore[func-returns-value]
  File "C:\Users\ramkr\miniconda3\envs\oga_chat\lib\site-packages\uvicorn\middleware\proxy_headers.py", line 60, in __call__
    return await self.app(scope, receive, send)
  File "C:\Users\ramkr\miniconda3\envs\oga_chat\lib\site-packages\fastapi\applications.py", line 1054, in __call__
    await super().__call__(scope, receive, send)
  File "C:\Users\ramkr\miniconda3\envs\oga_chat\lib\site-packages\starlette\applications.py", line 113, in __call__
    await self.middleware_stack(scope, receive, send)
  File "C:\Users\ramkr\miniconda3\envs\oga_chat\lib\site-packages\starlette\middleware\errors.py", line 187, in __call__
    raise exc
  File "C:\Users\ramkr\miniconda3\envs\oga_chat\lib\site-packages\starlette\middleware\errors.py", line 165, in __call__
    await self.app(scope, receive, _send)
  File "C:\Users\ramkr\miniconda3\envs\oga_chat\lib\site-packages\gradio\route_utils.py", line 720, in __call__
    await self.simple_response(scope, receive, send, request_headers=headers)
  File "C:\Users\ramkr\miniconda3\envs\oga_chat\lib\site-packages\gradio\route_utils.py", line 736, in simple_response
    await self.app(scope, receive, send)
  File "C:\Users\ramkr\miniconda3\envs\oga_chat\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\ramkr\miniconda3\envs\oga_chat\lib\site-packages\starlette\_exception_handler.py", line 62, in wrapped_app
    raise exc
  File "C:\Users\ramkr\miniconda3\envs\oga_chat\lib\site-packages\starlette\_exception_handler.py", line 51, in wrapped_app
    await app(scope, receive, sender)
  File "C:\Users\ramkr\miniconda3\envs\oga_chat\lib\site-packages\starlette\routing.py", line 715, in __call__
    await self.middleware_stack(scope, receive, send)
  File "C:\Users\ramkr\miniconda3\envs\oga_chat\lib\site-packages\starlette\routing.py", line 735, in app
    await route.handle(scope, receive, send)
  File "C:\Users\ramkr\miniconda3\envs\oga_chat\lib\site-packages\starlette\routing.py", line 288, in handle
    await self.app(scope, receive, send)
  File "C:\Users\ramkr\miniconda3\envs\oga_chat\lib\site-packages\starlette\routing.py", line 76, in app
    await wrap_app_handling_exceptions(app, request)(scope, receive, send)
  File "C:\Users\ramkr\miniconda3\envs\oga_chat\lib\site-packages\starlette\_exception_handler.py", line 62, in wrapped_app
    raise exc
  File "C:\Users\ramkr\miniconda3\envs\oga_chat\lib\site-packages\starlette\_exception_handler.py", line 51, in wrapped_app
    await app(scope, receive, sender)
  File "C:\Users\ramkr\miniconda3\envs\oga_chat\lib\site-packages\starlette\routing.py", line 73, in app
    response = await f(request)
  File "C:\Users\ramkr\miniconda3\envs\oga_chat\lib\site-packages\fastapi\routing.py", line 291, in app
    solved_result = await solve_dependencies(
  File "C:\Users\ramkr\miniconda3\envs\oga_chat\lib\site-packages\fastapi\dependencies\utils.py", line 656, in solve_dependencies
    ) = await request_body_to_args(  # body_params checked above
  File "C:\Users\ramkr\miniconda3\envs\oga_chat\lib\site-packages\fastapi\dependencies\utils.py", line 881, in request_body_to_args
    fields_to_extract = get_cached_model_fields(first_field.type_)
  File "C:\Users\ramkr\miniconda3\envs\oga_chat\lib\site-packages\fastapi\_compat.py", line 657, in get_cached_model_fields
    return get_model_fields(model)
  File "C:\Users\ramkr\miniconda3\envs\oga_chat\lib\site-packages\fastapi\_compat.py", line 284, in get_model_fields
    return [
  File "C:\Users\ramkr\miniconda3\envs\oga_chat\lib\site-packages\fastapi\_compat.py", line 285, in <listcomp>
    ModelField(field_info=field_info, name=name)
  File "<string>", line 6, in __init__
  File "C:\Users\ramkr\miniconda3\envs\oga_chat\lib\site-packages\fastapi\_compat.py", line 110, in __post_init__
    self._type_adapter: TypeAdapter[Any] = TypeAdapter(
  File "C:\Users\ramkr\miniconda3\envs\oga_chat\lib\site-packages\pydantic\type_adapter.py", line 257, in __init__
    self._init_core_attrs(rebuild_mocks=False)
  File "C:\Users\ramkr\miniconda3\envs\oga_chat\lib\site-packages\pydantic\type_adapter.py", line 135, in wrapped
    return func(self, *args, **kwargs)
  File "C:\Users\ramkr\miniconda3\envs\oga_chat\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\ramkr\miniconda3\envs\oga_chat\lib\site-packages\pydantic\type_adapter.py", line 95, in _get_schema
    schema = gen.generate_schema(type_)
  File "C:\Users\ramkr\miniconda3\envs\oga_chat\lib\site-packages\pydantic\_internal\_generate_schema.py", line 655, in generate_schema
    schema = self._generate_schema_inner(obj)
  File "C:\Users\ramkr\miniconda3\envs\oga_chat\lib\site-packages\pydantic\_internal\_generate_schema.py", line 908, in _generate_schema_inner
    return self._annotated_schema(obj)
  File "C:\Users\ramkr\miniconda3\envs\oga_chat\lib\site-packages\pydantic\_internal\_generate_schema.py", line 2028, in _annotated_schema
    schema = self._apply_annotations(source_type, annotations)
  File "C:\Users\ramkr\miniconda3\envs\oga_chat\lib\site-packages\pydantic\_internal\_generate_schema.py", line 2107, in _apply_annotations
    schema = get_inner_schema(source_type)
  File "C:\Users\ramkr\miniconda3\envs\oga_chat\lib\site-packages\pydantic\_internal\_schema_generation_shared.py", line 83, in __call__
    schema = self._handler(source_type)
  File "C:\Users\ramkr\miniconda3\envs\oga_chat\lib\site-packages\pydantic\_internal\_generate_schema.py", line 2189, in new_handler
    schema = metadata_get_schema(source, get_inner_schema)
  File "C:\Users\ramkr\miniconda3\envs\oga_chat\lib\site-packages\pydantic\_internal\_generate_schema.py", line 2185, in <lambda>
    lambda source, handler: handler(source)
  File "C:\Users\ramkr\miniconda3\envs\oga_chat\lib\site-packages\pydantic\_internal\_schema_generation_shared.py", line 83, in __call__
    schema = self._handler(source_type)
  File "C:\Users\ramkr\miniconda3\envs\oga_chat\lib\site-packages\pydantic\_internal\_generate_schema.py", line 2088, in inner_handler
    schema = self._generate_schema_inner(obj)
  File "C:\Users\ramkr\miniconda3\envs\oga_chat\lib\site-packages\pydantic\_internal\_generate_schema.py", line 929, in _generate_schema_inner
    return self.match_type(obj)
  File "C:\Users\ramkr\miniconda3\envs\oga_chat\lib\site-packages\pydantic\_internal\_generate_schema.py", line 1029, in match_type
    return self._match_generic_type(obj, origin)
  File "C:\Users\ramkr\miniconda3\envs\oga_chat\lib\site-packages\pydantic\_internal\_generate_schema.py", line 1058, in _match_generic_type
    return self._union_schema(obj)
  File "C:\Users\ramkr\miniconda3\envs\oga_chat\lib\site-packages\pydantic\_internal\_generate_schema.py", line 1378, in _union_schema
    choices.append(self.generate_schema(arg))
  File "C:\Users\ramkr\miniconda3\envs\oga_chat\lib\site-packages\pydantic\_internal\_generate_schema.py", line 655, in generate_schema
    schema = self._generate_schema_inner(obj)
  File "C:\Users\ramkr\miniconda3\envs\oga_chat\lib\site-packages\pydantic\_internal\_generate_schema.py", line 929, in _generate_schema_inner
    return self.match_type(obj)
  File "C:\Users\ramkr\miniconda3\envs\oga_chat\lib\site-packages\pydantic\_internal\_generate_schema.py", line 1038, in match_type
    return self._unknown_type_schema(obj)
  File "C:\Users\ramkr\miniconda3\envs\oga_chat\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 'starlette.requests.Request'>. 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(<some type>) 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
Keyboard interruption in main thread... closing server.
Killing tunnel 127.0.0.1:5000 <> https://e793bc037676b4f7e4.gradio.live

Desktop (please complete the following information):

skyline75489 commented 4 days ago

Thanks for the report! The chat_app has not been receiving much attention for the time being. I think in the term we would want to refactor it with the yet-to-be-release new API design.