- 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