win10部署ChatGLM-6B提问无回复

在安装配置好Chat GLM-6B时,运行官方提供的web_demo.py,并且已经修改好模型文件路径,报错如下:

Task exception was never retrieved
future: <Task finished name='opgovwjfkf_1' coro=<Queue.process_events() done, defined at D:\Python\python3.9.10\lib\site-packages\gradio\queueing.py:342> exception=1 validation error for PredictBody
event_id
  Field required [type=missing, input_value={'data': [], 'event_data'...ion_hash': 'opgovwjfkf'}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.1/v/missing>
Traceback (most recent call last):
  File "D:\Python\python3.9.10\lib\site-packages\gradio\queueing.py", line 346, in process_events
    client_awake = await self.gather_event_data(event)
  File "D:\Python\python3.9.10\lib\site-packages\gradio\queueing.py", line 219, in gather_event_data
    data, client_awake = await self.get_message(event, timeout=receive_timeout)
  File "D:\Python\python3.9.10\lib\site-packages\gradio\queueing.py", line 448, in get_message
    return PredictBody(**data), True
  File "D:\Python\python3.9.10\lib\site-packages\pydantic\main.py", line 159, in __init__
    __pydantic_self__.__pydantic_validator__.validate_python(data, self_instance=__pydantic_self__)
pydantic_core._pydantic_core.ValidationError: 1 validation error for PredictBody
event_id
  Field required [type=missing, input_value={'data': [], 'event_data'...ion_hash': 'opgovwjfkf'}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.1/v/missing

换成运行cli_demo.py也是在提问后一直闪,生成不了答案

你这是在私有化部署是么,大佬

【以下回答由 GPT 生成】

这个问题可能是由于请求数据格式不正确导致的。根据报错信息中的1 validation error for PredictBodyField required可以看出,需要的字段event_id在请求中缺失。

解决这个问题的步骤如下:

  1. 首先检查是否正确配置了模型文件路径。确保在修改模型文件路径时没有出错,并且可以正确加载模型。

  2. 确保安装了正确版本的依赖库。检查是否安装了最新版本的gradio, pydantic和其他必要的依赖。可以使用pip list命令检查已安装的库的版本。

  3. 检查代码逻辑中是否缺少了必要的参数。根据报错信息中提供的链接(https://errors.pydantic.dev/2.1/v/missing),可以进一步查看有关缺少字段的详细信息。确定缺少的字段是否必要,并在代码中添加相应的默认值或进行必要的输入验证。

以下是一个示例代码,演示如何使用pydantic验证请求数据和设置默认值:

from pydantic import BaseModel

class PredictBody(BaseModel):
    event_id: int

    class Config:
        # 设置默认值
        arbitrary_types_allowed = True

# 在处理请求时使用验证和默认值
def handle_request(body):
    try:
        data = PredictBody(**body)
        event_id = data.event_id
        # 其他处理逻辑
        return "Success"
    except Exception as e:
        return str(e)

# 示例调用
handle_request({"event_id": 123})

请将以上代码中的PredictBody类和相关代码替换为你的实际代码。确保代码中正确处理了请求数据和异常情况。

如果以上步骤都不能解决问题,可能需要进一步检查代码和模型文件的完整性,并确保正确加载和运行模型。如果问题仍然存在,可能需要向官方提供者或相关社区寻求帮助,以获取更详细的调试信息或解决方案。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

上面的回答比较靠谱