• Add RequestResponseAdvisor interface with adviseReqeust and adviseResponse methods. The adviseRequest method takes and returns AdvisedRequest. The adviseResponse method takes and returns ChatRequest.
  • Add ChatClient#ChatClientRequets advisor(...) methods to register advisros. ChatClient call the registered advisors in order before sealing the ChatClientRequest into a Prompt and call the model and after the model response.
  • Implement PromptChatMemoryAdvisor that uses the ChatMemory and the systemem prompt.
  • Implement MessageChatMemoryAdvisor that usees the ChatMemory and the prompt messages.
  • Implement VectorStoreChatMemoryAdvisor that uses VecrStore for long term message history.
  • Add tests.

Comment From: markpollack

merged in c4784a070f13e0f8714e5ac71f358980bcdb3e82