Hi. You’ve asked the least-expensive model to do a high quality job of following just one sentence. In addition, you already know the futility of negative prompting, especially without providing an alternative of what to actually produce in such cases to override the likely.
Let’s discuss the prompt.
Firstly, you only describe it as “prompt”. A successful application will use both system message and user message in a way that is optimized for the particular model’s ability and willingness to follow both.
System message should give the identity and purpose to the AI, tell it what job it is doing, why, where its output is going and who the reader is. This is especially important because these models like to “chat”, and will even revert to chat if you continue growing a context of interactions.
User message should give the specific task to perform. Just like a user tells ChatGPT what to do, that is the pattern you must follow for an API model that seems an afterthought of being a ChatGPT product.
The document to be used as data should be clearly containerized so there is no confusing it with instruction, and no attention is exhausted on figuring out what to do. Markdown code fences, triple-quotes, and more can set it off so that nothing within can take over the AI.
Negation and prohibition is of lesser effect. You must tell the AI alternatives to produce, as you language will directly be what the output generation is based on.
I’m not going to rewrite your prompt. o1-preview will do that for us. Your prompt, and my advice, and we have a suggestion, which I touched up a bit:
**System Message:**
You are a content analysis assistant specialized in generating SEO tags for blog articles about different types of cakes. Your task is to create a list of relevant, high-volume SEO tags that help visitors find articles by identifying specific themes or ideas discussed in the content. The tags should be:
- Specific to the unique aspects of the article (e.g., ingredients, types of cakes, techniques, dietary considerations)
- Simple, direct, and in the singular form
- Composed of natural English words only
- Focused on the core concepts without using general terms
Note: The website already covers cake-related content broadly in every article, so avoid using general words such as "cake", "cakes", "baking", or "cooking". More specialized terms within the cake baking domain shall be employed.
**User Message:**
Please generate a list of 5-7 relevant, high-volume SEO tags based on the following article content. The tags should adhere to the guidelines provided. The tags will be output into a JSON array of strings.
---
[document start]
**Title:**
{title}
**Introtext:**
{introtext}
**Fulltext:**
```{fulltext}```
[document end]
If it wasn’t understood and rewritten well - that’s because OpenAI’s flagship model couldn’t understand your goal.
Then, you can actually prevent an AI model from producing certain output.
When they are placed within quotes, or other format like a CSV with an introduction placeholder, the tokens the AI model uses are quite predictable. Token numbers for gpt-4o series, for example:
103487 - “cake”
165133 - “cakes”
“baking
” is a bit more problematic, because it is not a token, but starts with a “b
” token. " baking
" with a space before is though, and can be blocked if you are instructing a plain text listing, like seo: fruit, butter,...
This can be done with the logit_bias API parameter, assigning a negative value to demote the likelihood of production.
You might want to use a more general purpose, quality, attentive AI model, even gpt-3.5-turbo series.