Toke Emil Heldbo Reines
06/05/2025, 5:30 AM@bentoml.service
class Service:
@bentoml.api
def classify(self, input_image: PILImage.Image, uid: str) -> Any:
print(uid)
Call it in the swagger docs with any number and it fails. Call it with curl with the uid being an explicit string and it still fails.
curl -X 'POST' \
'<http://localhost:3000/classify>' \
-H 'accept: application/json' \
-H 'Content-Type: multipart/form-data' \
-F 'input_image=@sample_image.png;type=image/png' \
-F 'uid="1231231231232131313212312312321123123213312";type=application/json'
How do I fix that so it sees it as an actual string in all cases, no typecasting cutting off decimals etc?Jian Shen Yap
06/05/2025, 5:40 AMToke Emil Heldbo Reines
06/05/2025, 5:41 AMFile "/home/tokereines/unumed/xray/.venv/lib/python3.10/site-packages/_bentoml_impl/server/app.py", line 642, in api_endpoint_wrapper
resp = await self.api_endpoint(name, request)
File "/home/tokereines/unumed/xray/.venv/lib/python3.10/site-packages/_bentoml_impl/server/app.py", line 706, in api_endpoint
input_data = await method.input_spec.from_http_request(request, serde)
File "/home/tokereines/unumed/xray/.venv/lib/python3.10/site-packages/_bentoml_sdk/io_models.py", line 213, in from_http_request
return await serde.parse_request(request, t.cast(t.Type[IODescriptor], cls))
File "/home/tokereines/unumed/xray/.venv/lib/python3.10/site-packages/_bentoml_impl/serde.py", line 227, in parse_request
return cls.model_validate(data)
File "/home/tokereines/unumed/xray/.venv/lib/python3.10/site-packages/pydantic/main.py", line 596, in model_validate
return cls.__pydantic_validator__.validate_python(
pydantic_core._pydantic_core.ValidationError: 1 validation error for Input
uid
Input should be a valid string [type=string_type, input_value=1231231231232131313212312312321123123213312, input_type=int]
For further information visit <https://errors.pydantic.dev/2.9/v/string_type>Toke Emil Heldbo Reines
06/05/2025, 6:42 AMJian Shen Yap
06/05/2025, 7:21 AMJian Shen Yap
06/05/2025, 9:17 AMcurl -X 'POST' \
'<http://localhost:3000/classify>' \
-H 'accept: application/json' \
-H 'Content-Type: multipart/form-data' \
-F 'input_image=@sample_image.png;type=image/png' \
-F 'uid="\"123456\"";type=application/json'
this worksToke Emil Heldbo Reines
06/05/2025, 9:38 AMToke Emil Heldbo Reines
06/05/2025, 9:38 AMFrost Ming
06/05/2025, 3:41 PM