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.
Prompt:
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,
},
];
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.
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.
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.
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.
Hi!
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.
âedit
a quick try on chatgpt gave me for example thoseâŚ
Describe SARCASTIC
ChatGPT
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
ChatGPT
Lighthearted and humorous individual, quick to find and appreciate the comedic aspect of situations, with a playful and entertaining communication style.
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.