Skip to content

[BUG]LLM responce validation error #78

@yjing86

Description

@yjing86

open_llm_service.py generate_completion function uses
response = self.client.beta.chat.completions.parse( model=self.settings.llm_model, messages=[{"role": "user", "content": prompt}], response_format=response_model, )
to validate LLM's response. However, this doesn't work and logger info is as below:
WARNING:app.services.llm_service:LLM returned None response INFO: 127.0.0.1:50854 - "POST /api/v1/query HTTP/1.1" 200 OK ^^^^^^^^^^^^^^ File "/opt/anaconda3/envs/knowledge-table-main/lib/python3.11/site-packages/openai/_base_client.py", line 1063, in _request return self._process_response( ^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/anaconda3/envs/knowledge-table-main/lib/python3.11/site-packages/openai/_base_client.py", line 1162, in _process_response return api_response.parse() ^^^^^^^^^^^^^^^^^^^^ File "/opt/anaconda3/envs/knowledge-table-main/lib/python3.11/site-packages/openai/_response.py", line 319, in parse parsed = self._options.post_parser(parsed) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/anaconda3/envs/knowledge-table-main/lib/python3.11/site-packages/openai/resources/beta/chat/completions.py", line 154, in parser return _parse_chat_completion( ^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/anaconda3/envs/knowledge-table-main/lib/python3.11/site-packages/openai/lib/_parsing/_completions.py", line 110, in parse_chat_completion "parsed": maybe_parse_content( ^^^^^^^^^^^^^^^^^^^^ File "/opt/anaconda3/envs/knowledge-table-main/lib/python3.11/site-packages/openai/lib/_parsing/_completions.py", line 161, in maybe_parse_content return _parse_content(response_format, message.content) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/anaconda3/envs/knowledge-table-main/lib/python3.11/site-packages/openai/lib/_parsing/_completions.py", line 221, in _parse_content return cast(ResponseFormatT, model_parse_json(response_format, content)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/anaconda3/envs/knowledge-table-main/lib/python3.11/site-packages/openai/_compat.py", line 169, in model_parse_json return model.model_validate_json(data) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/anaconda3/envs/knowledge-table-main/lib/python3.11/site-packages/pydantic/main.py", line 656, in model_validate_json return cls.__pydantic_validator__.validate_json(json_data, strict=strict, context=context) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ pydantic_core._pydantic_core.ValidationError: 1 validation error for StrArrayResponseModel Input should be an object [type=model_type, input_value=['quantum信息', '离散...', '计算机图形学'], input_type=list] For further information visit https://errors.pydantic.dev/2.10/v/model_type INFO:app.services.llm.openai_llm_service:generate_completion execution completed. INFO:app.services.llm_service:Raw response from LLM: None WARNING:app.services.llm_service:LLM returned None response INFO: 127.0.0.1:50854 - "POST /api/v1/query HTTP/1.1" 200 OK return api_response.parse() ^^^^^^^^^^^^^^^^^^^^ File "/opt/anaconda3/envs/knowledge-table-main/lib/python3.11/site-packages/openai/_response.py", line 319, in parse parsed = self._options.post_parser(parsed) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/anaconda3/envs/knowledge-table-main/lib/python3.11/site-packages/openai/resources/beta/chat/completions.py", line 154, in parser return _parse_chat_completion( ^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/anaconda3/envs/knowledge-table-main/lib/python3.11/site-packages/openai/lib/_parsing/_completions.py", line 110, in parse_chat_completion "parsed": maybe_parse_content( ^^^^^^^^^^^^^^^^^^^^ File "/opt/anaconda3/envs/knowledge-table-main/lib/python3.11/site-packages/openai/lib/_parsing/_completions.py", line 161, in maybe_parse_content return _parse_content(response_format, message.content) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/anaconda3/envs/knowledge-table-main/lib/python3.11/site-packages/openai/lib/_parsing/_completions.py", line 221, in _parse_content return cast(ResponseFormatT, model_parse_json(response_format, content)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/anaconda3/envs/knowledge-table-main/lib/python3.11/site-packages/openai/_compat.py", line 169, in model_parse_json return model.model_validate_json(data) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/anaconda3/envs/knowledge-table-main/lib/python3.11/site-packages/pydantic/main.py", line 656, in model_validate_json return cls.__pydantic_validator__.validate_json(json_data, strict=strict, context=context) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ pydantic_core._pydantic_core.ValidationError: 1 validation error for StrArrayResponseModel Input should be an object [type=model_type, input_value=['quantum信息', '离散...', '计算机图形学'], input_type=list] For further information visit https://errors.pydantic.dev/2.10/v/model_type

I'm using Owen online model.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions