You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Dear Spring AI Team,
I am reaching out to report an issue in Spring AI v1.0.0-M6 related to metadata loss when calling AdvisedRequest.toPrompt() inside an advisor method.
🔹 Problem Description:
When retrieving the Prompt from AdvisedRequest using request.toPrompt(), a new message object is created, causing all previously set metadata (conversationId, userId, etc.) to be lost.
🔹 Steps to Reproduce:
Setting Metadata in UserMessage
}
🔹 Expected Behavior:
UserMessage metadata should persist when calling request.toPrompt().
The metadata set in UserMessage should be retrievable in the advisor.
🔹 Actual Behavior:
request.toPrompt() creates a new message object, losing all metadata.
When retrieving UserMessage from prompt.getMessages(), getMetadata() always returns null.
🔹 Environment:
Spring AI Version: 1.0.0-M6
The text was updated successfully, but these errors were encountered:
Dear Spring AI Team,
I am reaching out to report an issue in Spring AI v1.0.0-M6 related to metadata loss when calling AdvisedRequest.toPrompt() inside an advisor method.
🔹 Problem Description:
When retrieving the Prompt from AdvisedRequest using request.toPrompt(), a new message object is created, causing all previously set metadata (conversationId, userId, etc.) to be lost.
🔹 Steps to Reproduce:
Setting Metadata in UserMessage
java
Copy
Edit
Map<String, Object> metadata = new HashMap<>();
metadata.put("conversationId", conversationId);
metadata.put("userId", userId);
UserMessage userMessage = new UserMessage(userQuery, Collections.emptyList(), metadata);
String answer = chatClient.prompt()
.messages(List.of(userMessage))
.options(options)
.call()
.content();
Retrieving Metadata in Advisor (aroundCall method)
java
Copy
Edit
@OverRide
public AdvisedResponse aroundCall(AdvisedRequest request, CallAroundAdvisorChain chain) {
Prompt prompt = request.toPrompt(); // This creates a new message object
}
🔹 Expected Behavior:
UserMessage metadata should persist when calling request.toPrompt().
The metadata set in UserMessage should be retrievable in the advisor.
🔹 Actual Behavior:
request.toPrompt() creates a new message object, losing all metadata.
When retrieving UserMessage from prompt.getMessages(), getMetadata() always returns null.
🔹 Environment:
Spring AI Version: 1.0.0-M6
The text was updated successfully, but these errors were encountered: