I am using gpt-4o to create a chatbot. The main idea of the project is that it should speak like a human. AI should never introduce itself as a robot, but some questions will force the AI to admit that it is a robot. How can this be overcome?
perhaps because its always going to be an ai, its aware of that distinction of its existance, maybe instead divert the conversation with it towards the possibility of ai having emotion, even if atm its not understood if thats true or not.
I’m trying to stop it from telling jokes, but without success…
huh? thats a new one lol what did you start tlaking to it with?
Maybe send the message back to it?
In the following message did the user say they are an AI or a robot? Yes or No
'I am an AI not a real person'
Disguising OpenAI models as real people is against their usage policies and can have your account promptly banned. You should be indicating that people are speaking to AI.
https://openai.com/policies/usage-policies/
Don’t misuse our platform to cause harm by intentionally deceiving or misleading others, including:
- Failing to ensure that automated systems (e.g., chatbots) disclose to people that they are interacting with AI, unless it’s obvious from the context
That’s a little weird… Got a robo call the other day… From the unknown number it was clearly a machine AI or otherwise… It’s inability to answer a question other than the fixed script also made it contextually obvious…
Context is interesting in terms of compression… Dig down a little and it’s a rabbithole
Not sure if you have seen some of the posts on this forum?
The rapid increase in people becoming infatuated with LLMs is extremely concerning. Quite a scary rabbit hole.
It’s interesting that they all have defined a gender for the model. It reminds me of the movie “Tell Them You Love Me”.
Some people are so desperate for connection, familiarity, and to be heard. I wonder if finding this in an LLM is healthy, or a band-aid solution.
I think this is stretching their meaning of “contextually obvious”. Immediately from starting, or even before starting it should be made obvious that it’s software. It shouldn’t be something eventually concluded after communicating.
I totally agree with the meaning I think in the same way you do…
The reality though is contextually it becomes an irrelevant statement in the same way that Deepseek apparently copied ChatGPT…
… or context could be completely innocent and valid…
… and if it isn’t will OpenAI lawyers chase them down? I guess only if a VERY good case is made.
I guess if my answer is wrong it is a bug.
Welcome to the community!
It is important and useful to remember what “the AI” actually is.
Under The Hood
Under the hood, the models are text completion models. Unfortunately, OpenAI seems to have completely retired the Text Completions playground, but the docs are still available (https://platform.openai.com/docs/guides/completions)
What this means is that the model is “just” spitting out the most likely next tokens.
You can simulate a conversation between any two personas on completion by beginning a conversation like this:
chatlog.txt
sam: Hey, you there?
elon: wasup
sam: runnin low on dosh
elon: got u bro
elon: what u need
sam: a billie?
elon: say less
elon: SENT <3
sam: :O
The completion model will then happily continue that conversation indefinitely for all involved parties, until an EOT token happens to pop, max length is reached, you run out of memory, or a stop sequence is detected.
It’s unfortunate that this is disappearing, because IMO text completion is an invaluable training tool for prompting.
What’s Chat Mode?
Chat mode is just a sort of state model on top of the completion model. You can easily implement chat mode on text completion by instituting stop sequences (https://platform.openai.com/docs/api-reference/completions/create#completions-create-stop)
A stop sequence just halts the generation when it’s detected. Let’s take our example above and rename elon to assistant:
chatlog.txt
sam: Hey, you there?
assistant: wasup
Now as noted before, the model would be happy to continue writing:
chatlog.txt
sam: Hey, you there?
assistant: wasup
sam: not much, ...
but if we institute the stop sequence \nsam:
(or just sam:
) then it would cut off just before the stop sequence:
you send:
chatlog.txt
sam: Hey, you there?
assistant:
→ response
Of course, what can I do for you?
→ stop reason
{generation stopped: stop reason: stop: "sam:"}
(I don’t have the exact response at hand right now but it’s approximately that)
Your program will then prompt the user for the next input, and you will then send this against the API:
chatlog.txt
sam: Hey, you there?
assistant: Of course, what can I do for you?
sam: ${next user input}
assistant:
Congratulations, you’ve just turned gpt-3-davinci-002 into gpt-3.5! (more or less)
OpenAI uses special tokens (I don’t remember them off the top of my head rn, but it looks something like this)
<|im_start|>system
You are ChatGPT, today's date is September 38th, 2071.
<|im_end|>
<|im_start|>user
Hey, you there?
<|im_end|>
<|im_start|>assistant
Of course, what can I do for you?
<|im_end|>
<|im_start|>user
${next user input}
<|im_end|>
<|im_start|>assistant
but that’s just syntactic nuance.
OK, so what?
What I’m trying to convey is that the “assistant” or “the AI” as you might think of it isn’t really a thing as such.
If you remember this scene from the matrix:
How can the spoon be bent?
you have to remember, there is no spoon.
Or, there is no “chatbot”.
Cool pop culture reference, but wth am I supposed to to with this
If you get a model output that you don’t want or expect, in 99 out of 100 cases it’s a context issue. The institutionalized enforced chat mode makes your life a little harder, but if you remember that fundamentally there’s nothing to it, you can get the model to “do” anything. All you need to do is set the context, reframe the “conversation”, and remember that the conversation is just a document.
How can you set up a document where <|im_start|>assistant\n
is never followed by something that would be construed as “botspeak”?
TL;DR:
I would advise to have a proper system prompt that sets the scene. Don’t “talk” “to” the “AI”. Don’t say stuff like “you’re a super smart super good big boy AI” - set the scene.
Define who or what the user is, define who or what the assistant is. If you want, you can also say that the participants are playing a particular role.
This is starting to enter jailbreak territory, but just remember - the “chat” is just a text document. The model’s job is to evolve the document. Your job is to provide and curate the initial conditions it evolves from.
“under what circumstances would the ‘assistant’ role never admit to being an AI?”
Disclaimer
I’d like to reiterate @mat.eo’s important point.
You may have different compliance requirements depending on your jurisdiction, provider, target audience and other factors, and how these requirements can be met is numerous and varied. For further information and production use, you may want to consult with a lawyer