Uploaded image for project: 'LLM AI Integration'
  1. LLM AI Integration
  2. LLMAI-179

No support for reasoning models - reasoning.effort cannot be set and the legacy chat/completions endpoint is used

    XMLWordPrintable

Details

    • Improvement
    • Resolution: Unresolved
    • Major
    • None
    • 0.9
    • None
    • XWiki 18.6.0, ai-llm 0.9, OpenAI provider.
    • Unknown

    Description

      What happens

      The application has no notion of reasoning models. ChatCompletionRequest carries model, messages, temperature, topP, n, stream, stop, maxTokens, presencePenalty, frequencyPenalty, logitBias, streamOptions and nothing else, OpenAIChatModel.PATH is chat/completions, and a grep for reasoning / effort / max_completion across the models module returns no hits.

      Why it matters

      On the current OpenAI reasoning tiers, reasoning.effort defaults to medium and reasoning tokens are billed at the output rate. Because the effort level cannot be set, every request pays for default-effort reasoning with no way to turn it down, and an effort of none – the setting that would make a cheap reasoning tier behave like a cheap non-reasoning model – is unreachable.

      For RAG chat this is the wrong default: the task is extracting and summarising text the application already supplies in the context prompt, which needs little reasoning.

      Concretely, at roughly 1250 input and 350 visible output tokens per question, a tier priced at 0.20 USD per 1M input and 1.20 USD per 1M output costs about 0.67 USD per 1000 questions with no reasoning, but overtakes a 0.40 / 1.60 USD non-reasoning model at roughly 325 reasoning tokens per answer – which default effort clears easily. So picking the cheapest-looking model can cost more, and administrators have no lever.

      Suggested fix

      Pass reasoning configuration through to the provider, and surface effort as a field on AI.Models.Code.ModelsClass alongside contextSize, so it can be set per model. Longer term, supporting the Responses API would also give access to reasoning.mode.

      Related, unverified

      The application sends max_tokens. Newer reasoning models have generally moved to max_completion_tokens, so that may be a second incompatibility on the same model class – I have not confirmed it against a specific model.

      See also LLMAI-170, which is the temperature restriction on this same class of models.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              sebels Sebastian Elsner
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated: