Skip to content

Bug: Crash Caused by Triggering LLM API Content Inspection 部分文章触发API审查机制导致整体崩溃 #84

@Huaer02

Description

@Huaer02

我在本月遇到了两次由于某篇文章分析时触发API审查机制导致整体崩溃, 使用的是qwen-turbo,log如下:

Log1:

Rendering Email:  58%|█████▊    | 58/***00 [08:07<06:07,  8.75s/it]
Rendering Email:  59%|█████▉    | 59/***00 [08:***3<05:33,  8.***2s/it]
2025-07-***7 22:36:32.999 | **m**mERROR    | llm:generate:3*** - **m**mAttempt *** failed: Error code: 400 - {'error': {'code': 'data_inspection_failed', 'param': None, 'message': 'Output data may contain inappropriate content.', 'type': 'data_inspection_failed'}, 'id': 'chatcmpl-8464a7d8-bfe***-9843-b4***4-6da587aa98af', 'request_id': '8464a7d8-bfe***-9843-b4***4-6da587aa98af'}
2025-07-***7 22:36:37.054 | **m**mERROR    | llm:generate:3*** - **m**mAttempt 2 failed: Error code: 400 - {'error': {'code': 'data_inspection_failed', 'param': None, 'message': 'Output data may contain inappropriate content.', 'type': 'data_inspection_failed'}, 'id': 'chatcmpl-***600***7f6-d82***-9522-be2c-fc9e950ce5d0', 'request_id': '***600***7f6-d82***-9522-be2c-fc9e950ce5d0'}
2025-07-***7 22:36:4***.***8*** | **m**mERROR    | llm:generate:3*** - **m**mAttempt 3 failed: Error code: 400 - {'error': {'code': 'data_inspection_failed', 'param': None, 'message': 'Output data may contain inappropriate content.', 'type': 'data_inspection_failed'}, 'id': 'chatcmpl-5e2c***6df-ee30-9730-b30f-ec40d5f00aa***', 'request_id': '5e2c***6df-ee30-9730-b30f-ec40d5f00aa***'}
Rendering Email:  60%|██████    | 60/***00 [08:***8<04:39,  6.99s/it]
Rendering Email:  60%|██████    | 60/***00 [08:27<05:38,  8.46s/it]
Traceback (most recent call last):
  File "/home/runner/work/zotero-arxiv-daily/zotero-arxiv-daily/main.py", line ***82, in <module>
    html = render_email(papers)
           ^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/zotero-arxiv-daily/zotero-arxiv-daily/construct_email.py", line ***3***, in render_email
    if p.affiliations is not None:
       ^^^^^^^^^^^^^^
  File "/home/runner/.local/share/uv/python/cpython-3.***.***0-linux-x86_64-gnu/lib/python3.***/functools.py", line ***00***, in __get__
    val = self.func(instance)
          ^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/zotero-arxiv-daily/zotero-arxiv-daily/paper.py", line 2***0, in affiliations
    affiliations = llm.generate(
                   ^^^^^^^^^^^^^
  File "/home/runner/work/zotero-arxiv-daily/zotero-arxiv-daily/llm.py", line 28, in generate
    response = self.llm.chat.completions.create(messages=messages, temperature=0, model=self.model)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/zotero-arxiv-daily/zotero-arxiv-daily/.venv/lib/python3.***/site-packages/openai/_utils/_utils.py", line 275, in wrapper
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/zotero-arxiv-daily/zotero-arxiv-daily/.venv/lib/python3.***/site-packages/openai/resources/chat/completions.py", line 829, in create
    return self._post(
           ^^^^^^^^^^^
  File "/home/runner/work/zotero-arxiv-daily/zotero-arxiv-daily/.venv/lib/python3.***/site-packages/openai/_base_client.py", line ***280, in post
    return cast(ResponseT, self.request(cast_to, opts, stream=stream, stream_cls=stream_cls))
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/zotero-arxiv-daily/zotero-arxiv-daily/.venv/lib/python3.***/site-packages/openai/_base_client.py", line 957, in request
    return self._request(
           ^^^^^^^^^^^^^^
  File "/home/runner/work/zotero-arxiv-daily/zotero-arxiv-daily/.venv/lib/python3.***/site-packages/openai/_base_client.py", line ***06***, in _request
    raise self._make_status_error_from_response(err.response) from None
openai.BadRequestError: Error code: 400 - {'error': {'code': 'data_inspection_failed', 'param': None, 'message': 'Output data may contain inappropriate content.', 'type': 'data_inspection_failed'}, 'id': 'chatcmpl-5e2c***6df-ee30-9730-b30f-ec40d5f00aa***', 'request_id': '5e2c***6df-ee30-9730-b30f-ec40d5f00aa***'}
Error: Process completed with exit code ***.

Log2:

Rendering Email:  84%|████████▍ | 84/***00 [***3:44<02:49, ***0.59s/it]
Rendering Email:  85%|████████▌ | 85/***00 [***3:49<02:***3,  8.9***s/it]
Rendering Email:  86%|████████▌ | 86/***00 [***3:57<02:0***,  8.65s/it]
Rendering Email:  87%|████████▋ | 87/***00 [***4:07<0***:58,  9.***s/it]
Rendering Email:  88%|████████▊ | 88/***00 [***4:2***<02:08, ***0.74s/it]
2025-07-22 22:43:55.405 | **m**mERROR    | llm:generate:3*** - **m**mAttempt *** failed: Error code: 400 - {'error': {'code': 'data_inspection_failed', 'param': None, 'message': 'Output data may contain inappropriate content.', 'type': 'data_inspection_failed'}, 'id': 'chatcmpl-f24c3***30-bdba-90cf-9937-30***8***6c2273c', 'request_id': 'f24c3***30-bdba-90cf-9937-30***8***6c2273c'}
2025-07-22 22:44:02.034 | **m**mERROR    | llm:generate:3*** - **m**mAttempt 2 failed: Error code: 400 - {'error': {'code': 'data_inspection_failed', 'param': None, 'message': 'Output data may contain inappropriate content.', 'type': 'data_inspection_failed'}, 'id': 'chatcmpl-4b99***49***-9e7c-9f64-9c04-da6c2b***b25d7', 'request_id': '4b99***49***-9e7c-9f64-9c04-da6c2b***b25d7'}
2025-07-22 22:44:08.50*** | **m**mERROR    | llm:generate:3*** - **m**mAttempt 3 failed: Error code: 400 - {'error': {'code': 'data_inspection_failed', 'param': None, 'message': 'Output data may contain inappropriate content.', 'type': 'data_inspection_failed'}, 'id': 'chatcmpl-***b9f2653-7ebb-9dc7-ab67-bea0***c8cb83', 'request_id': '***b9f2653-7ebb-9dc7-ab67-bea0***c8cb83'}
Rendering Email:  89%|████████▉ | 89/***00 [***4:28<0***:46,  9.65s/it]
Rendering Email:  89%|████████▉ | 89/***00 [***4:46<0***:49,  9.96s/it]
Traceback (most recent call last):
  File "/home/runner/work/zotero-arxiv-daily/zotero-arxiv-daily/main.py", line ***82, in <module>
    html = render_email(papers)
           ^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/zotero-arxiv-daily/zotero-arxiv-daily/construct_email.py", line ***3***, in render_email
    if p.affiliations is not None:
       ^^^^^^^^^^^^^^
  File "/home/runner/.local/share/uv/python/cpython-3.***.***0-linux-x86_64-gnu/lib/python3.***/functools.py", line ***00***, in __get__
    val = self.func(instance)
          ^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/zotero-arxiv-daily/zotero-arxiv-daily/paper.py", line 2***0, in affiliations
    affiliations = llm.generate(
                   ^^^^^^^^^^^^^

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions