It’s totally up to you on how you want to design it. You may use a game instance if that is aligned with your game intentions and direction. If you are asking my recommendation, I would recommend that you create a master Blueprint actor class that contains all the Blueprint functions that are needed. That way, you can spawn this actor class whenever you want to use your conversation functionality and destroy it once your conversation finishes. It will save you some memory usage.
Since a game instance always runs in the background, that will always mean that whatever functions, variables or instances you have in that class will always be loaded into the memory, either unused or used, it will always be loaded and cost you some memory usage.