feat: add reasoning and reasoning_content fields to OpenAI message types

Add support for reasoning fields in OpenAI-compatible chat completion
messages to enable compatibility with vLLM reasoning parsers.

Changes:
- Add `reasoning_content` and `reasoning` fields to OpenAIAssistantMessageParam
- Add `reasoning` field to OpenAIChoiceDelta (reasoning_content already existed)

Both field names are supported for maximum compatibility:
- `reasoning_content`: Used by vLLM ≤ v0.8.4
- `reasoning`: New field name in vLLM ≥ v0.9.x

vLLM documentation recommends migrating to the shorter `reasoning` field
name, but maintains backward compatibility with `reasoning_content`.

These fields allow reasoning models to return their chain-of-thought
process alongside the final answer, which is crucial for transparency
and debugging with reasoning models.

References:
- vLLM Reasoning Outputs: https://docs.vllm.ai/en/stable/features/reasoning_outputs/
- vLLM Issue #12468: https://github.com/vllm-project/vllm/issues/12468

Signed-off-by: Charlie Doern <cdoern@redhat.com>
This commit is contained in:
Charlie Doern 2025-11-26 12:04:56 -05:00
parent 618c03405c
commit b1851dc9ef
6 changed files with 162 additions and 1 deletions

View file

@ -859,6 +859,16 @@ components:
type: array
- type: 'null'
nullable: true
reasoning_content:
anyOf:
- type: string
- type: 'null'
nullable: true
reasoning:
anyOf:
- type: string
- type: 'null'
nullable: true
title: OpenAIAssistantMessageParam
type: object
OpenAIChatCompletionContentPartImageParam:
@ -1588,6 +1598,11 @@ components:
- type: string
- type: 'null'
nullable: true
reasoning:
anyOf:
- type: string
- type: 'null'
nullable: true
title: OpenAIChoiceDelta
type: object
OpenAIChunkChoice:
@ -7582,6 +7597,14 @@ components:
$ref: '#/components/schemas/OpenAIChatCompletionToolCall'
type: array
- type: 'null'
reasoning_content:
anyOf:
- type: string
- type: 'null'
reasoning:
anyOf:
- type: string
- type: 'null'
type: object
title: OpenAIAssistantMessageParam
description: A message containing the model's (assistant) response in an OpenAI-compatible chat completion request.
@ -7611,6 +7634,14 @@ components:
$ref: '#/components/schemas/OpenAIChatCompletionToolCall'
type: array
- type: 'null'
reasoning_content:
anyOf:
- type: string
- type: 'null'
reasoning:
anyOf:
- type: string
- type: 'null'
type: object
title: OpenAIAssistantMessageParam
description: A message containing the model's (assistant) response in an OpenAI-compatible chat completion request.