The caching chat client doesn't work great when dealing with an OpenAI Assistant-like entity, where the ConversationId is non-null and remains the same across all operations. In such cases, the provided chat messages and options are insufficient to uniquely identify state in the cache.
We should:
- Disable caching by default when ChatOptions.ConversationId is set
- Provide either virtual methods or delegate properties that allow determining on a per-call basis whether to check the cache or cache a result