milvus-io / bootcamp

Dealing with all unstructured data, such as reverse image search, audio search, molecular search, video analysis, question and answer systems, NLP, etc.
https://milvus.io
Apache License 2.0
1.88k stars 580 forks source link

[BUG]: BaseException: (code=1, message=round_decimalnot found in search_params) #800

Closed DerekChia closed 3 years ago

DerekChia commented 3 years ago

Is there an existing issue for this?

Current Behavior

When running the demo for reverse_image_search, I encountered the following error after uploading an image to search.

2021-10-19 18:08:20,951 | INFO | main.py | count_images | 125 | Successfully count the number of images!
INFO:     10.255.252.156:54264 - "POST /img/count HTTP/1.1" 200 OK
read pic succ
2021-10-19 18:08:22,657 | ERROR | grpc_handler.py | handler | 61 | Error: <BaseException: (code=1, message=round_decimalnot found in search_params)>
2021-10-19 18:08:22,657 | ERROR | grpc_handler.py | handler | 61 | Error: <BaseException: (code=1, message=round_decimalnot found in search_params)>
2021-10-19 18:08:22,657 | ERROR | milvus_helpers.py | search_vectors | 108 | Failed to search vectors in Milvus: <BaseException: (code=1, message=round_decimalnot found in search_params)>
ERROR:    Exception in ASGI application
Traceback (most recent call last):
  File "/home/derek/Desktop/projects-github/milvus-try/bootcamp/solutions/reverse_image_search/quick_deploy/server/src/milvus_helpers.py", line 102, in search_vectors
    res = self.collection.search(vectors, anns_field="embedding", param=search_params, limit=top_k)
  File "/home/derek/anaconda3/envs/py38/lib/python3.8/site-packages/pymilvus/orm/pymilvus_orm/collection.py", line 609, in search
    res = conn.search_with_expression(self._name, data, anns_field, param, limit, expr,
  File "/home/derek/anaconda3/envs/py38/lib/python3.8/site-packages/pymilvus/client/stub.py", line 66, in handler
    raise e
  File "/home/derek/anaconda3/envs/py38/lib/python3.8/site-packages/pymilvus/client/stub.py", line 52, in handler
    return func(self, *args, **kwargs)
  File "/home/derek/anaconda3/envs/py38/lib/python3.8/site-packages/pymilvus/client/stub.py", line 40, in inner
    return func(self, *args, **kwargs)
  File "/home/derek/anaconda3/envs/py38/lib/python3.8/site-packages/pymilvus/client/stub.py", line 1057, in search_with_expression
    return handler.search_with_expression(collection_name, data, anns_field, param, limit, expression, partition_names, output_fields, timeout, **kwargs)
  File "/home/derek/anaconda3/envs/py38/lib/python3.8/site-packages/pymilvus/client/grpc_handler.py", line 67, in handler
    raise e
  File "/home/derek/anaconda3/envs/py38/lib/python3.8/site-packages/pymilvus/client/grpc_handler.py", line 59, in handler
    return func(self, *args, **kwargs)
  File "/home/derek/anaconda3/envs/py38/lib/python3.8/site-packages/pymilvus/client/grpc_handler.py", line 96, in handler
    return func(self, *args, **kwargs)
  File "/home/derek/anaconda3/envs/py38/lib/python3.8/site-packages/pymilvus/client/grpc_handler.py", line 640, in search_with_expression
    return self._execute_search_requests(requests, timeout, **_kwargs)
  File "/home/derek/anaconda3/envs/py38/lib/python3.8/site-packages/pymilvus/client/grpc_handler.py", line 67, in handler
    raise e
  File "/home/derek/anaconda3/envs/py38/lib/python3.8/site-packages/pymilvus/client/grpc_handler.py", line 59, in handler
    return func(self, *args, **kwargs)
  File "/home/derek/anaconda3/envs/py38/lib/python3.8/site-packages/pymilvus/client/grpc_handler.py", line 606, in _execute_search_requests
    raise pre_err
  File "/home/derek/anaconda3/envs/py38/lib/python3.8/site-packages/pymilvus/client/grpc_handler.py", line 597, in _execute_search_requests
    raise BaseException(response.status.error_code, response.status.reason)
pymilvus.client.exceptions.BaseException: <BaseException: (code=1, message=round_decimalnot found in search_params)>

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/derek/anaconda3/envs/py38/lib/python3.8/site-packages/uvicorn/protocols/http/httptools_impl.py", line 390, in run_asgi
    result = await app(self.scope, self.receive, self.send)
  File "/home/derek/anaconda3/envs/py38/lib/python3.8/site-packages/uvicorn/middleware/proxy_headers.py", line 45, in __call__
    return await self.app(scope, receive, send)
  File "/home/derek/anaconda3/envs/py38/lib/python3.8/site-packages/fastapi/applications.py", line 199, in __call__
    await super().__call__(scope, receive, send)
  File "/home/derek/anaconda3/envs/py38/lib/python3.8/site-packages/starlette/applications.py", line 111, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/home/derek/anaconda3/envs/py38/lib/python3.8/site-packages/starlette/middleware/errors.py", line 159, in __call__
    await self.app(scope, receive, _send)
  File "/home/derek/anaconda3/envs/py38/lib/python3.8/site-packages/starlette/middleware/cors.py", line 86, in __call__
    await self.simple_response(scope, receive, send, request_headers=headers)
  File "/home/derek/anaconda3/envs/py38/lib/python3.8/site-packages/starlette/middleware/cors.py", line 142, in simple_response
    await self.app(scope, receive, send)
  File "/home/derek/anaconda3/envs/py38/lib/python3.8/site-packages/starlette/exceptions.py", line 71, in __call__
    await self.app(scope, receive, sender)
  File "/home/derek/anaconda3/envs/py38/lib/python3.8/site-packages/starlette/routing.py", line 566, in __call__
    await route.handle(scope, receive, send)
  File "/home/derek/anaconda3/envs/py38/lib/python3.8/site-packages/starlette/routing.py", line 227, in handle
    await self.app(scope, receive, send)
  File "/home/derek/anaconda3/envs/py38/lib/python3.8/site-packages/starlette/routing.py", line 41, in app
    response = await func(request)
  File "/home/derek/anaconda3/envs/py38/lib/python3.8/site-packages/fastapi/routing.py", line 201, in app
    raw_response = await run_endpoint_function(
  File "/home/derek/anaconda3/envs/py38/lib/python3.8/site-packages/fastapi/routing.py", line 148, in run_endpoint_function
    return await dependant.call(**values)
  File "main.py", line 110, in search_images
    paths, distances = do_search(table_name, img_path, MODEL, MILVUS_CLI, MYSQL_CLI)
  File "/home/derek/Desktop/projects-github/milvus-try/bootcamp/solutions/reverse_image_search/quick_deploy/server/src/operations/search.py", line 15, in do_search
    vectors = milvus_client.search_vectors(table_name, [feat], TOP_K)
  File "/home/derek/Desktop/projects-github/milvus-try/bootcamp/solutions/reverse_image_search/quick_deploy/server/src/milvus_helpers.py", line 109, in search_vectors
    sys.exit(1)
SystemExit: 1
2021-10-19 18:08:22,657 | ERROR | httptools_impl.py | run_asgi | 393 | Exception in ASGI application
Traceback (most recent call last):
  File "/home/derek/Desktop/projects-github/milvus-try/bootcamp/solutions/reverse_image_search/quick_deploy/server/src/milvus_helpers.py", line 102, in search_vectors
    res = self.collection.search(vectors, anns_field="embedding", param=search_params, limit=top_k)
  File "/home/derek/anaconda3/envs/py38/lib/python3.8/site-packages/pymilvus/orm/pymilvus_orm/collection.py", line 609, in search
    res = conn.search_with_expression(self._name, data, anns_field, param, limit, expr,
  File "/home/derek/anaconda3/envs/py38/lib/python3.8/site-packages/pymilvus/client/stub.py", line 66, in handler
    raise e
  File "/home/derek/anaconda3/envs/py38/lib/python3.8/site-packages/pymilvus/client/stub.py", line 52, in handler
    return func(self, *args, **kwargs)
  File "/home/derek/anaconda3/envs/py38/lib/python3.8/site-packages/pymilvus/client/stub.py", line 40, in inner
    return func(self, *args, **kwargs)
  File "/home/derek/anaconda3/envs/py38/lib/python3.8/site-packages/pymilvus/client/stub.py", line 1057, in search_with_expression
    return handler.search_with_expression(collection_name, data, anns_field, param, limit, expression, partition_names, output_fields, timeout, **kwargs)
  File "/home/derek/anaconda3/envs/py38/lib/python3.8/site-packages/pymilvus/client/grpc_handler.py", line 67, in handler
    raise e
  File "/home/derek/anaconda3/envs/py38/lib/python3.8/site-packages/pymilvus/client/grpc_handler.py", line 59, in handler
    return func(self, *args, **kwargs)
  File "/home/derek/anaconda3/envs/py38/lib/python3.8/site-packages/pymilvus/client/grpc_handler.py", line 96, in handler
    return func(self, *args, **kwargs)
  File "/home/derek/anaconda3/envs/py38/lib/python3.8/site-packages/pymilvus/client/grpc_handler.py", line 640, in search_with_expression
    return self._execute_search_requests(requests, timeout, **_kwargs)
  File "/home/derek/anaconda3/envs/py38/lib/python3.8/site-packages/pymilvus/client/grpc_handler.py", line 67, in handler
    raise e
  File "/home/derek/anaconda3/envs/py38/lib/python3.8/site-packages/pymilvus/client/grpc_handler.py", line 59, in handler
    return func(self, *args, **kwargs)
  File "/home/derek/anaconda3/envs/py38/lib/python3.8/site-packages/pymilvus/client/grpc_handler.py", line 606, in _execute_search_requests
    raise pre_err
  File "/home/derek/anaconda3/envs/py38/lib/python3.8/site-packages/pymilvus/client/grpc_handler.py", line 597, in _execute_search_requests
    raise BaseException(response.status.error_code, response.status.reason)
pymilvus.client.exceptions.BaseException: <BaseException: (code=1, message=round_decimalnot found in search_params)>

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/derek/anaconda3/envs/py38/lib/python3.8/site-packages/uvicorn/protocols/http/httptools_impl.py", line 390, in run_asgi
    result = await app(self.scope, self.receive, self.send)
  File "/home/derek/anaconda3/envs/py38/lib/python3.8/site-packages/uvicorn/middleware/proxy_headers.py", line 45, in __call__
    return await self.app(scope, receive, send)
  File "/home/derek/anaconda3/envs/py38/lib/python3.8/site-packages/fastapi/applications.py", line 199, in __call__
    await super().__call__(scope, receive, send)
  File "/home/derek/anaconda3/envs/py38/lib/python3.8/site-packages/starlette/applications.py", line 111, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/home/derek/anaconda3/envs/py38/lib/python3.8/site-packages/starlette/middleware/errors.py", line 159, in __call__
    await self.app(scope, receive, _send)
  File "/home/derek/anaconda3/envs/py38/lib/python3.8/site-packages/starlette/middleware/cors.py", line 86, in __call__
    await self.simple_response(scope, receive, send, request_headers=headers)
  File "/home/derek/anaconda3/envs/py38/lib/python3.8/site-packages/starlette/middleware/cors.py", line 142, in simple_response
    await self.app(scope, receive, send)
  File "/home/derek/anaconda3/envs/py38/lib/python3.8/site-packages/starlette/exceptions.py", line 71, in __call__
    await self.app(scope, receive, sender)
  File "/home/derek/anaconda3/envs/py38/lib/python3.8/site-packages/starlette/routing.py", line 566, in __call__
    await route.handle(scope, receive, send)
  File "/home/derek/anaconda3/envs/py38/lib/python3.8/site-packages/starlette/routing.py", line 227, in handle
    await self.app(scope, receive, send)
  File "/home/derek/anaconda3/envs/py38/lib/python3.8/site-packages/starlette/routing.py", line 41, in app
    response = await func(request)
  File "/home/derek/anaconda3/envs/py38/lib/python3.8/site-packages/fastapi/routing.py", line 201, in app
    raw_response = await run_endpoint_function(
  File "/home/derek/anaconda3/envs/py38/lib/python3.8/site-packages/fastapi/routing.py", line 148, in run_endpoint_function
    return await dependant.call(**values)
  File "main.py", line 110, in search_images
    paths, distances = do_search(table_name, img_path, MODEL, MILVUS_CLI, MYSQL_CLI)
  File "/home/derek/Desktop/projects-github/milvus-try/bootcamp/solutions/reverse_image_search/quick_deploy/server/src/operations/search.py", line 15, in do_search
    vectors = milvus_client.search_vectors(table_name, [feat], TOP_K)
  File "/home/derek/Desktop/projects-github/milvus-try/bootcamp/solutions/reverse_image_search/quick_deploy/server/src/milvus_helpers.py", line 109, in search_vectors
    sys.exit(1)
SystemExit: 1

Expected Behavior

When running the demo for reverse_image_search, the similar images should be returned after I upload an image to search.

Steps To Reproduce

1. Follow the instruction to get started on the demo for `reverse_image_search`
2. Index the images by specifying the path, as instructed
3. Upload an image to search, and the above error will be thrown

Software version

Milvus: [v2.0.0-rc7, using docker-compose]
Server: [milvusbootcamp/img-search-server:2.0]
Client: [docker image: milvusbootcamp/img-search-client:1.0]

Anything else?

Fixed the issue by bumping the version number for pymilvus from 2.0.0rc5 to 2.0.0rc7.

DerekChia commented 3 years ago

I have created PR #801 to solve this problem, please approve

shiyu22 commented 3 years ago

closed by #801