3838import org .springframework .ai .chat .client .advisor .DefaultAroundAdvisorChain ;
3939import org .springframework .ai .chat .client .advisor .api .Advisor ;
4040import org .springframework .ai .chat .client .advisor .api .BaseAdvisorChain ;
41+ import org .springframework .ai .chat .client .advisor .observation .AdvisorObservationConvention ;
4142import org .springframework .ai .chat .client .observation .ChatClientObservationContext ;
4243import org .springframework .ai .chat .client .observation .ChatClientObservationConvention ;
4344import org .springframework .ai .chat .client .observation .ChatClientObservationDocumentation ;
@@ -615,7 +616,10 @@ public static class DefaultChatClientRequestSpec implements ChatClientRequestSpe
615616
616617 private final ObservationRegistry observationRegistry ;
617618
618- private final ChatClientObservationConvention observationConvention ;
619+ private final ChatClientObservationConvention chatClientObservationConvention ;
620+
621+ @ Nullable
622+ private final AdvisorObservationConvention advisorObservationConvention ;
619623
620624 private final ChatModel chatModel ;
621625
@@ -659,18 +663,36 @@ public static class DefaultChatClientRequestSpec implements ChatClientRequestSpe
659663 this (ccr .chatModel , ccr .userText , ccr .userParams , ccr .userMetadata , ccr .systemText , ccr .systemParams ,
660664 ccr .systemMetadata , ccr .toolCallbacks , ccr .toolCallbackProviders , ccr .messages , ccr .toolNames ,
661665 ccr .media , ccr .chatOptions , ccr .advisors , ccr .advisorParams , ccr .observationRegistry ,
662- ccr .observationConvention , ccr .toolContext , ccr .templateRenderer );
666+ ccr .chatClientObservationConvention , ccr .toolContext , ccr .templateRenderer ,
667+ ccr .advisorObservationConvention );
663668 }
664669
670+ /**
671+ * @deprecated in favor of the other constructor.
672+ */
673+ @ Deprecated (since = "1.1.0" , forRemoval = true )
665674 public DefaultChatClientRequestSpec (ChatModel chatModel , @ Nullable String userText ,
666675 Map <String , Object > userParams , Map <String , Object > userMetadata , @ Nullable String systemText ,
667676 Map <String , Object > systemParams , Map <String , Object > systemMetadata , List <ToolCallback > toolCallbacks ,
668677 List <ToolCallbackProvider > toolCallbackProviders , List <Message > messages , List <String > toolNames ,
669678 List <Media > media , @ Nullable ChatOptions chatOptions , List <Advisor > advisors ,
670679 Map <String , Object > advisorParams , ObservationRegistry observationRegistry ,
671- @ Nullable ChatClientObservationConvention observationConvention , Map <String , Object > toolContext ,
672- @ Nullable TemplateRenderer templateRenderer ) {
680+ @ Nullable ChatClientObservationConvention chatClientObservationConvention ,
681+ Map <String , Object > toolContext , @ Nullable TemplateRenderer templateRenderer ) {
682+ this (chatModel , userText , userParams , userMetadata , systemText , systemParams , systemMetadata , toolCallbacks ,
683+ toolCallbackProviders , messages , toolNames , media , chatOptions , advisors , advisorParams ,
684+ observationRegistry , chatClientObservationConvention , toolContext , templateRenderer , null );
685+ }
673686
687+ public DefaultChatClientRequestSpec (ChatModel chatModel , @ Nullable String userText ,
688+ Map <String , Object > userParams , Map <String , Object > userMetadata , @ Nullable String systemText ,
689+ Map <String , Object > systemParams , Map <String , Object > systemMetadata , List <ToolCallback > toolCallbacks ,
690+ List <ToolCallbackProvider > toolCallbackProviders , List <Message > messages , List <String > toolNames ,
691+ List <Media > media , @ Nullable ChatOptions chatOptions , List <Advisor > advisors ,
692+ Map <String , Object > advisorParams , ObservationRegistry observationRegistry ,
693+ @ Nullable ChatClientObservationConvention chatClientObservationConvention ,
694+ Map <String , Object > toolContext , @ Nullable TemplateRenderer templateRenderer ,
695+ @ Nullable AdvisorObservationConvention advisorObservationConvention ) {
674696 Assert .notNull (chatModel , "chatModel cannot be null" );
675697 Assert .notNull (userParams , "userParams cannot be null" );
676698 Assert .notNull (userMetadata , "userMetadata cannot be null" );
@@ -706,10 +728,11 @@ public DefaultChatClientRequestSpec(ChatModel chatModel, @Nullable String userTe
706728 this .advisors .addAll (advisors );
707729 this .advisorParams .putAll (advisorParams );
708730 this .observationRegistry = observationRegistry ;
709- this .observationConvention = observationConvention != null ? observationConvention
710- : DEFAULT_CHAT_CLIENT_OBSERVATION_CONVENTION ;
731+ this .chatClientObservationConvention = chatClientObservationConvention != null
732+ ? chatClientObservationConvention : DEFAULT_CHAT_CLIENT_OBSERVATION_CONVENTION ;
711733 this .toolContext .putAll (toolContext );
712734 this .templateRenderer = templateRenderer != null ? templateRenderer : DEFAULT_TEMPLATE_RENDERER ;
735+ this .advisorObservationConvention = advisorObservationConvention ;
713736 }
714737
715738 @ Nullable
@@ -786,7 +809,8 @@ public TemplateRenderer getTemplateRenderer() {
786809 @ Override
787810 public Builder mutate () {
788811 DefaultChatClientBuilder builder = (DefaultChatClientBuilder ) ChatClient
789- .builder (this .chatModel , this .observationRegistry , this .observationConvention )
812+ .builder (this .chatModel , this .observationRegistry , this .chatClientObservationConvention ,
813+ this .advisorObservationConvention )
790814 .defaultTemplateRenderer (this .templateRenderer )
791815 .defaultToolCallbacks (this .toolCallbacks )
792816 .defaultToolCallbacks (this .toolCallbackProviders .toArray (new ToolCallback [0 ]))
@@ -1005,14 +1029,14 @@ public ChatClientRequestSpec templateRenderer(TemplateRenderer templateRenderer)
10051029 public CallResponseSpec call () {
10061030 BaseAdvisorChain advisorChain = buildAdvisorChain ();
10071031 return new DefaultCallResponseSpec (DefaultChatClientUtils .toChatClientRequest (this ), advisorChain ,
1008- this .observationRegistry , this .observationConvention );
1032+ this .observationRegistry , this .chatClientObservationConvention );
10091033 }
10101034
10111035 @ Override
10121036 public StreamResponseSpec stream () {
10131037 BaseAdvisorChain advisorChain = buildAdvisorChain ();
10141038 return new DefaultStreamResponseSpec (DefaultChatClientUtils .toChatClientRequest (this ), advisorChain ,
1015- this .observationRegistry , this .observationConvention );
1039+ this .observationRegistry , this .chatClientObservationConvention );
10161040 }
10171041
10181042 private BaseAdvisorChain buildAdvisorChain () {
@@ -1021,7 +1045,10 @@ private BaseAdvisorChain buildAdvisorChain() {
10211045 this .advisors .add (ChatModelCallAdvisor .builder ().chatModel (this .chatModel ).build ());
10221046 this .advisors .add (ChatModelStreamAdvisor .builder ().chatModel (this .chatModel ).build ());
10231047
1024- return DefaultAroundAdvisorChain .builder (this .observationRegistry ).pushAll (this .advisors ).build ();
1048+ return DefaultAroundAdvisorChain .builder (this .observationRegistry )
1049+ .observationConvention (this .advisorObservationConvention )
1050+ .pushAll (this .advisors )
1051+ .build ();
10251052 }
10261053
10271054 }
0 commit comments