Skip to content

Fix/fix finish reason in empty response - #290

Merged
Kotaro-Aono merged 4 commits into
mainfrom
fix/fix-finish-reason-in-empty-response
Jul 16, 2026
Merged

Fix/fix finish reason in empty response#290
Kotaro-Aono merged 4 commits into
mainfrom
fix/fix-finish-reason-in-empty-response

Conversation

@Kotaro-Aono

@Kotaro-Aono Kotaro-Aono commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

概要

LanguageModelで、APIリトライを使い果たした際のダミーレスポンス(empty_response)が、finish_reason"stop"になっており、正常応答と見分けがつかない形で下流に流れてしまっていた問題を修正

  • OpenAICompletionAPIOpenAIChatBatchAPIでは、上記に加えてダミーレスポンスの形が実際のレスポンス型と一致しておらず、失敗時にAttributeError/TypeErrorでクラッシュする経路も存在(by claude)

変更

flexeval/core/language_model/openai_api.py

  • OpenAIChatAPI._batch_complete_text / _batch_generate_chat_response: 応答がself.empty_response(=リトライを使い果たした結果)の場合、finish_reason"error"にするよう変更
  • OpenAICompletionAPI._batch_complete_text: 同様にfinish_reason="error"を設定
    • 加えて、empty_responseがchat API用の形(messageのみでtext属性を持たない)で構築されているため、そのままres.choices[0].textにアクセスするとAttributeErrorになっていたバグを修正
  • OpenAIChatAPI._batch_compute_chat_log_probs: empty_responselogprobs=Noneのまま構築されているため、res.choices[0].logprobs.content[0]AttributeErrorになっていたバグを修正。

flexeval/core/language_model/openai_batch_api.py

  • OpenAIChatBatchAPI._batch_complete_text / _batch_generate_chat_response: Batch APIでリクエストが失敗した項目は""(空文字列)のまま残る実装になっており、res["choices"]でインデックスアクセスするとTypeError: string indices must be integersになっていたバグを修正。isinstance(res, str)で失敗分を判定し、LMOutput(text="", finish_reason="error")を返すよう変更
  • OpenAIChatBatchAPI._batch_compute_chat_log_probs: 同様に失敗分("")へのインデックスアクセスによるTypeErrorを修正し、log_prob=Noneにフォールバックするよう変更

@Kotaro-Aono
Kotaro-Aono requested a review from a team July 14, 2026 02:05

@junya-takayama junya-takayama left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

今後ほかの種類のエラーに遭遇するかもしれないので、 finish_reason = "empty" とかがわかりやすいかも?と思いました

@Kotaro-Aono

Copy link
Copy Markdown
Contributor Author

emptyに変更しました!

@junya-takayama
junya-takayama self-requested a review July 16, 2026 07:07
@Kotaro-Aono
Kotaro-Aono merged commit 94b4631 into main Jul 16, 2026
8 checks passed
@Kotaro-Aono
Kotaro-Aono deleted the fix/fix-finish-reason-in-empty-response branch July 16, 2026 08:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants