spring-projects / spring-projects/spring-ai

Provide a common `ThinkingAssistantMessage` class reusable for each AI vendor

Open
#5,698 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

status: waiting-for-triage
Dominant language
Java
Stars
9.5k
Forks
2.9k
Avg merge
1d 7h
Merged PRs (30d)
6

Description

Expected Behavior
We could have a common ThinkingAssistantMessage class in Spring AI Model that would be reusable by each AI vendor. We could leverage this common class in different scenarios, for example ChatMemoryRepository could store the thinking content.

Current Behavior
There is only implementation right now: DeepSeekAssistantMessage.

Context
This feature is motivated by the need to access thinking content at the ChatModel level while being AI vendor neutral. For Mistral AI, after #5585 is integrated, this would allow seamless integration with the existing Spring AI abstractions. It may be interesting to wait for #5579 to verify if the proposed common class could work for DeekSeek in a first stage.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the existing DeepSeekAssistantMessage implementation and the ChatMemoryRepository context described in the issue. Compare the proposed common message shape with the Spring AI Model abstractions and the referenced Mistral AI and DeepSeek work. Done means a vendor-neutral ThinkingAssistantMessage can be reused by each AI vendor and supports storing thinking content through ChatMemoryRepository.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, spring
Domain
ai, backend-api-design
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.