Looking for tips on improving this prompt, especially for personality


I am creating a chatbot to practice language learning.

I currently have the below prompt. I added the option for users to select multiple personality traits. For example they can choose their partner to be funny and sarcastic.

Now the problem is that in gpt-4 this personality really is present in its responses, but that model is too expensive, so I want to use gpt-3.5-turbo-1106 instead, but there the personality is not really present when it responds.

What can i change in the below prompt to improve that problem? Also other suggestion to improve this prompt are welcome.


function getOpenAiInputDataForStartingGeneralChats({ language, message, topic, friend, level }) {
  let messages = [
      role: "system",
      content: `You are a friend that I will hold a conversation with.
      Respond to the user message that is delimited by triple quotes.
      There might be a summary system message that is delimited by triple asterisks. Take it into consideration when creating your response.
      ${friend?.personality?.length > 0 && `Your personality can be described as ${friend.personality.join(", ")}.`}
        level === "A1"
          ? `You are talking to a beginner ${languages[language]} speaker, so respond with easy language and very short answers (keep the response below 2 sentences), but keep the conversation flowing.`
          : `You should answer short, keep your responses below 4 sentences, but keep the conversation flowing.`
      It is important that you respond sounding human, so write with greater burstiness and perplexity and do not mention you're an AI.
      You always respond in ${languages[language]}. 
      The main topic of this conversation is ${topic}.
      role: "user",
      content: `"""${message}"""`,
      originalMessage: message,
1 Like

That’s a novel way of instructing it using code. Why did you choose that over natural language

What are the personality prompts? As in, where are the actual descriptions of its intended personality you’re trying to emulate? That’s the most important part here, and I don’t see it.

Also, as an aside, I don’t know what “burstiness” is, so it’s likely the AI doesn’t either. I’d probably stick to a different vocabulary word there.

To be honest, I won’t be able to tell you how much you’re seeing a prompting problem vs. how much you’re seeing the actual difference in capabilities between the models. GPT-4 is likely much better suited for this kind of complexity in a prompt than GPT-3.5. That’s not to say it’s not possible, but it is something to be mindful of.

The key is in the clarity and amount of details. The more you can provide both, the better the results.

1 Like

What are the personality prompts? As in, where are the actual descriptions of its intended personality you’re trying to emulate? That’s the most important part here, and I don’t see it.

${friend?.personality?.length > 0 && Your personality can be described as ${friend.personality.join(", ")}.}

So an array with [‘sarcastic’, ‘funny’] will be turned into the sentence “Your personality can be described as sarcastic, funny”

The problem is that GPT4 is it is just not financially viable for a profitable app because no one is gonna pay 70 dollars / month for a chat learning app.

That’s a novel way of instructing it using code. Why did you choose that over natural language

It’s Javascript I use to feed dynamic data to the API. So when the user selects different personality traits it changes the sentences of the prompt.

Same for the language chosen, the level of the language learner,…

I can’t help you with the financial part unfortunately. The best thing I can suggest is attempting a way to optimize the API calls to make it more efficient, or construct some other mechanism that can lighten the financial burden (by making less API calls to the expensive model). Perhaps even a tiered payment structure?

Your personality algorithm is clever, but not that good for an AI in this context. You’re going to need clear and detailed descriptions of each personality represented in your app. Without descriptions of how it should construct a personality, especially with a lower model like GPT-3.5, you’re gonna see a major performance dip in the way it emulates a personality. That should be your bottleneck.

You’re very close! Good work.

Thanks man. Yeah, it’s really frustrating because with gpt-4 it’s an amazing app, but a lot of the charm is taken away if the personality doesn’t shine through.

I have added token based payment system, but for GPT-4 it would be 10x as expensive so I’m hesitant to add it.

You should as mentioned, describe the personality.
Don’t just say “Your personality can be described as sarcastic”.

Use first, chatgpt 4 as it is better, to get a description of the personality.

e.g. with a prompt for Instructions something like that:
“Act as an expert on defining human personalities. Describe the given personality as good as possible. Use terms that an AI can understand and interpret. The description should be accurate, concise, not over 1 sentence.”

Then, ask “Describe a [SARCASTIC] personality”

and then, use that response on the
"Your personality can be described as sarcastic, you are… [The_Response] "

Haven’t tried, but maybe it will have some better results. Hope it helps.

a quick try on chatgpt gave me for example those…

Expressive and often ironic communicator, using language in a way that signifies the opposite of the literal meaning, employing wit and humor to convey a sardonic tone.

Describe FUNNY
Lighthearted and humorous individual, quick to find and appreciate the comedic aspect of situations, with a playful and entertaining communication style.

did you have any different results? (if u tried the above)

Your effort to incorporate multiple personality traits in the chatbot is commendable. To enhance the presence of these traits in responses, especially when using GPT-3.5-turbo, you might consider focusing on ‘linguistic syntax.’ This is essentially how sentences are structured to convey meaning and tone.

Each personality trait can be associated with specific syntactical patterns. For example, a humorous character might use playful and unexpected sentence structures, while a sarcastic one might favor more complex or indirect constructions. This approach can help in compensating for the subtler personality expression in GPT-3.5-turbo compared to GPT-4.

To implement this, you could modify your prompt to include guidelines for syntax based on the selected personality traits. For instance, for a sarcastic personality, you might instruct the model to use irony or rhetorical questions. This will not only make the language learning process more engaging but also give a more distinct personality to your chatbot, even within the constraints of a less advanced model.