Closed Barkoczy closed 4 months ago
The application runs via docker and after uploading an image when the code of the web page is supposed to be rendered according to the image, an error occurs: Error! 500 Internal Server Error: Object of type bytes is not JSON serializable
I use a local ollama server with model llava
This is my edited docker-compose.yml:
version: '3.8' services: openui: container_name: openui build: context: ./backend dockerfile: Dockerfile ports: - "3787:7878" env_file: - .env extra_hosts: - "host.docker.internal:host-gateway"
openui | INFO (uvicorn.access): 192.168.1.22:51508 - "POST /v1/chat/completions HTTP/1.1" 500 openui | ERROR (uvicorn.error): Exception in ASGI application openui | Traceback (most recent call last): openui | File "/venv/lib/python3.12/site-packages/uvicorn/protocols/http/httptools_impl.py", line 411, in run_asgi openui | result = await app( # type: ignore[func-returns-value] openui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ openui | File "/venv/lib/python3.12/site-packages/uvicorn/middleware/proxy_headers.py", line 69, in __call__ openui | return await self.app(scope, receive, send) openui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ openui | File "/venv/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__ openui | await super().__call__(scope, receive, send) openui | File "/venv/lib/python3.12/site-packages/starlette/applications.py", line 123, in __call__ openui | await self.middleware_stack(scope, receive, send) openui | File "/venv/lib/python3.12/site-packages/starlette/middleware/errors.py", line 186, in __call__ openui | raise exc openui | File "/venv/lib/python3.12/site-packages/starlette/middleware/errors.py", line 164, in __call__ openui | await self.app(scope, receive, _send) openui | File "/venv/lib/python3.12/site-packages/starlette/middleware/sessions.py", line 85, in __call__ openui | await self.app(scope, receive, send_wrapper) openui | File "/venv/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 65, in __call__ openui | await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send) openui | File "/venv/lib/python3.12/site-packages/starlette/_exception_handler.py", line 64, in wrapped_app openui | raise exc openui | File "/venv/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app openui | await app(scope, receive, sender) openui | File "/venv/lib/python3.12/site-packages/starlette/routing.py", line 756, in __call__ openui | await self.middleware_stack(scope, receive, send) openui | File "/venv/lib/python3.12/site-packages/starlette/routing.py", line 776, in app openui | await route.handle(scope, receive, send) openui | File "/venv/lib/python3.12/site-packages/starlette/routing.py", line 297, in handle openui | await self.app(scope, receive, send) openui | File "/venv/lib/python3.12/site-packages/starlette/routing.py", line 77, in app openui | await wrap_app_handling_exceptions(app, request)(scope, receive, send) openui | File "/venv/lib/python3.12/site-packages/starlette/_exception_handler.py", line 64, in wrapped_app openui | raise exc openui | File "/venv/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app openui | await app(scope, receive, sender) openui | File "/venv/lib/python3.12/site-packages/starlette/routing.py", line 72, in app openui | response = await func(request) openui | ^^^^^^^^^^^^^^^^^^^ openui | File "/venv/lib/python3.12/site-packages/fastapi/routing.py", line 278, in app openui | raw_response = await run_endpoint_function( openui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ openui | File "/venv/lib/python3.12/site-packages/fastapi/routing.py", line 191, in run_endpoint_function openui | return await dependant.call(**values) openui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ openui | File "/app/openui/server.py", line 167, in chat_completions openui | await ollama_openai.chat.completions.create( openui | File "/venv/lib/python3.12/site-packages/openai/resources/chat/completions.py", line 1181, in create openui | return await self._post( openui | ^^^^^^^^^^^^^^^^^ openui | File "/venv/lib/python3.12/site-packages/openai/_base_client.py", line 1790, in post openui | return await self.request(cast_to, opts, stream=stream, stream_cls=stream_cls) openui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ openui | File "/venv/lib/python3.12/site-packages/openai/_base_client.py", line 1493, in request openui | return await self._request( openui | ^^^^^^^^^^^^^^^^^^^^ openui | File "/venv/lib/python3.12/site-packages/openai/_base_client.py", line 1514, in _request openui | request = self._build_request(options) openui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ openui | File "/venv/lib/python3.12/site-packages/openai/_base_client.py", line 484, in _build_request openui | return self._client.build_request( # pyright: ignore[reportUnknownMemberType] openui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ openui | File "/venv/lib/python3.12/site-packages/httpx/_client.py", line 357, in build_request openui | return Request( openui | ^^^^^^^^ openui | File "/venv/lib/python3.12/site-packages/httpx/_models.py", line 340, in __init__ openui | headers, stream = encode_request( openui | ^^^^^^^^^^^^^^^ openui | File "/venv/lib/python3.12/site-packages/httpx/_content.py", line 212, in encode_request openui | return encode_json(json) openui | ^^^^^^^^^^^^^^^^^ openui | File "/venv/lib/python3.12/site-packages/httpx/_content.py", line 175, in encode_json openui | body = json_dumps(json).encode("utf-8") openui | ^^^^^^^^^^^^^^^^ openui | File "/usr/local/lib/python3.12/json/__init__.py", line 231, in dumps openui | return _default_encoder.encode(obj) openui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ openui | File "/usr/local/lib/python3.12/json/encoder.py", line 200, in encode openui | chunks = self.iterencode(o, _one_shot=True) openui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ openui | File "/usr/local/lib/python3.12/json/encoder.py", line 258, in iterencode openui | return _iterencode(o, 0) openui | ^^^^^^^^^^^^^^^^^ openui | File "/usr/local/lib/python3.12/json/encoder.py", line 180, in default openui | raise TypeError(f'Object of type {o.__class__.__name__} ' openui | TypeError: Object of type bytes is not JSON serializable
I was using the wrong version of the llava model, everything works.
Yeah, currently only the latest version works. Will update and hopefully Ollama supports other vision models soon as well!
The application runs via docker and after uploading an image when the code of the web page is supposed to be rendered according to the image, an error occurs: Error! 500 Internal Server Error: Object of type bytes is not JSON serializable
I use a local ollama server with model llava
This is my edited docker-compose.yml: