When you're trying to create a "next generation" NPC, usually the method is to make it so that the NPC thinks about relationships in a more complicated way than "I like you X amount", and can therefore respond in a way more complicated than "I'll give you the quest".
I've discussed a lot of difficulties with this, ranging from a need for a wide variety of actions with nuance to the need for a detailed world to offer fodder for interaction. Today I'd like to assume those and talk a little bit about an easy way to do the actual personality calculations.
The problem with the majority of "advanced personality models" is that they still default to flat numbers. For example, they have a stat as to how much they like you. The urge most designers feel is to simply add more flat numbers: this is how much they like you, that's how much they trust you, that's how attracted they are too you, that's how much they respect or fear you...
I think it's more important to have fewer, deeper numbers rather than more, shallow numbers. The basics of deep gameplay are to have a few rules that produce complex situations, not to have a lot of rules that produce complex situations. The latter is inherently limited, inefficient, and flat-out inferior.
So let's say we've got only one number: how much they like you.
The way to make it more interesting and realistic is to also have the derivatives and integrals of that number. Basically, we turn that number into:
Their long-term relationship with you. (area)
How much they like you. (position)
How respectable/fun you've been recently. (velocity)
How charming you're being. (acceleration)
All of these numbers change with everything the character does, but they are all deeply intertangled. Each character can then have a personality designed to weight those factors differently.
For example, a suspicious aristocrat might have a low maximum acceleration threshold, and therefore innately distrust anyone being especially charming. This doesn't affect the end result in terms of how the acceleration changes the velocity changes the position: it just changes how they act towards you right now.
On the other hand, an honorable knight might weight almost all his interactions based on area rather than position. How charming you're being right now won't affect his decisions much.
You can also split up their actions into action and demeanor, or even into long-term, short-term, and demeanor. For example, the aristocrat will be charming right back to anyone who's being charming, but he won't believe a word of it when they say that they'll pay you back next Friday.
A knight, on the other hand, might have a demeanor based almost entirely on charm and fun (acceleration and velocity) but make his long-term decisions based entirely on area (long-term relationship). IE, "You're an ass, but you're my brother, so I'll do it."
It's not so complex. Easy, in fact. And more realistic than trying to decide on what four or five kinds of relationships a person can have. Instead, a given NPC will interpret their emotions into whatever makes sense for their personality, and the "kinds of relationships" will emerge naturally.
For extra fun, let players define their character's personality. :D