prompt: We are currently solving the following issue within our repository. Here is the issue text:
  --- BEGIN ISSUE ---
  Serving gradio报错
  ![image](https://github.com/InternLM/lmdeploy/assets/6971044/d84724e1-e098-4ad7-9b02-bdc5e0bdeec0)
  
  报错: no module named lmdeploy.serve.gradio
  
  环境里已安装了lmdeploy 0.0.2 python包。
  
  --- END ISSUE ---
  
  Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
  --- BEGIN FILES ---
  Path: `lmdeploy/version.py`
  Content:
  ```
  1 # Copyright (c) OpenMMLab. All rights reserved.
  2 from typing import Tuple
  3 
  4 __version__ = '0.0.2'
  5 short_version = __version__
  6 
  7 
  8 def parse_version_info(version_str: str) -> Tuple:
  9     """Parse version from a string.
  10 
  11     Args:
  12         version_str (str): A string represents a version info.
  13 
  14     Returns:
  15         tuple: A sequence of integer and string represents version.
  16     """
  17     _version_info = []
  18     for x in version_str.split('.'):
  19         if x.isdigit():
  20             _version_info.append(int(x))
  21         elif x.find('rc') != -1:
  22             patch_version = x.split('rc')
  23             _version_info.append(int(patch_version[0]))
  24             _version_info.append(f'rc{patch_version[1]}')
  25     return tuple(_version_info)
  26 
  27 
  28 version_info = parse_version_info(__version__)
  29 
  30 __all__ = ['__version__', 'version_info', 'parse_version_info']
  31
  ```
  --- END FILES ---
  
  Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.
  
  Here is an example:
  
  ```diff
  diff --git a/examples/server_async.py b/examples/server_async.py
  --- a/examples/server_async.py
  +++ b/examples/server_async.py
  @@ -313,4 +313,4 @@
   
   
   if __name__ == "__main__":
  -    asyncio.run(run_async_server("."), debug=True)
  +    asyncio.run(run_async_server(), debug=True)
  diff --git a/examples/server_sync.py b/examples/server_sync.py
  --- a/examples/server_sync.py
  +++ b/examples/server_sync.py
  @@ -313,5 +313,5 @@
   
   
   if __name__ == "__main__":
  -    server = run_sync_server(".")
  +    server = run_sync_server()
       server.shutdown()
  
  ```
  
golden_diff: diff --git a/lmdeploy/version.py b/lmdeploy/version.py
  --- a/lmdeploy/version.py
  +++ b/lmdeploy/version.py
  @@ -1,7 +1,7 @@
   # Copyright (c) OpenMMLab. All rights reserved.
   from typing import Tuple
   
  -__version__ = '0.0.2'
  +__version__ = '0.0.3'
   short_version = __version__
  
verification_info: {"golden_diff": "diff --git a/lmdeploy/version.py b/lmdeploy/version.py\n--- a/lmdeploy/version.py\n+++ b/lmdeploy/version.py\n@@ -1,7 +1,7 @@\n # Copyright (c) OpenMMLab. All rights reserved.\n from typing import Tuple\n \n-__version__ = '0.0.2'\n+__version__ = '0.0.3'\n short_version = __version__\n", "issue": "Serving gradio\u62a5\u9519\n![image](https://github.com/InternLM/lmdeploy/assets/6971044/d84724e1-e098-4ad7-9b02-bdc5e0bdeec0)\r\n\r\n\u62a5\u9519: no module named lmdeploy.serve.gradio\r\n\r\n\u73af\u5883\u91cc\u5df2\u5b89\u88c5\u4e86lmdeploy 0.0.2 python\u5305\u3002\n", "before_files": [{"content": "# Copyright (c) OpenMMLab. All rights reserved.\nfrom typing import Tuple\n\n__version__ = '0.0.2'\nshort_version = __version__\n\n\ndef parse_version_info(version_str: str) -> Tuple:\n    \"\"\"Parse version from a string.\n\n    Args:\n        version_str (str): A string represents a version info.\n\n    Returns:\n        tuple: A sequence of integer and string represents version.\n    \"\"\"\n    _version_info = []\n    for x in version_str.split('.'):\n        if x.isdigit():\n            _version_info.append(int(x))\n        elif x.find('rc') != -1:\n            patch_version = x.split('rc')\n            _version_info.append(int(patch_version[0]))\n            _version_info.append(f'rc{patch_version[1]}')\n    return tuple(_version_info)\n\n\nversion_info = parse_version_info(__version__)\n\n__all__ = ['__version__', 'version_info', 'parse_version_info']\n", "path": "lmdeploy/version.py"}], "after_files": [{"content": "# Copyright (c) OpenMMLab. All rights reserved.\nfrom typing import Tuple\n\n__version__ = '0.0.3'\nshort_version = __version__\n\n\ndef parse_version_info(version_str: str) -> Tuple:\n    \"\"\"Parse version from a string.\n\n    Args:\n        version_str (str): A string represents a version info.\n\n    Returns:\n        tuple: A sequence of integer and string represents version.\n    \"\"\"\n    _version_info = []\n    for x in version_str.split('.'):\n        if x.isdigit():\n            _version_info.append(int(x))\n        elif x.find('rc') != -1:\n            patch_version = x.split('rc')\n            _version_info.append(int(patch_version[0]))\n            _version_info.append(f'rc{patch_version[1]}')\n    return tuple(_version_info)\n\n\nversion_info = parse_version_info(__version__)\n\n__all__ = ['__version__', 'version_info', 'parse_version_info']\n", "path": "lmdeploy/version.py"}]}