NpcSoldier is a class where I keep everything related to combat, this is from NpcInteractive that inherits from NpcSoldier where I keep everything related to interactivity with the player.
Non-interactive npc (enemies and creatures normally) inherit from soldier, and interactive npc (such as companies for example) inherit from NpcInteractive.
Another option depending on whether you don’t want to be tied to a hierarchy system, would be to put the dialog system in a component and add it to the npc you want.