The OpenAI Dynamic Element inserts dynamic, OpenAI researched content for each generated Page.
It’s different from the Research tool:
Feature | Dynamic Element | Research |
---|---|---|
Content | Queries OpenAI when Test or Generate is used, inserting the text result into the generated Page. | Queries OpenAI immediately when used, inserting the text result into the Content Group that is being edited on screen. |
Keywords | Supports the use of Keywords in the Topic field | Does not support the use of Keywords in the Topic field |
Spintax | Does not insert text as spintax into the generated Page. | Provides the option to insert the text result in spintax format into the Content Group, which is then processed when Test or Generate is used. |
Performance | Slow. Queries OpenAI for every single generated page, given that the Topic might include a Keyword. | Fast. Queries OpenAI immediately when used, with the text result saved in the Content Group. No queries are made to OpenAI during generation. |
Use case | You want to use OpenAI generated text for parts of each generated page, and/or use a Keyword in the Topic. | You want to use OpenAI as a starting point, possibly to generate spintax, and then make edits to OpenAI’s content before generating content. |
Adding: Classic Editor / TinyMCE
To add OpenAI content within the Classic Editor:
- Ensure that you’re using the Visual Editor by clicking the Visual tab:
- Click the OpenAI icon in the Visual Editor toolbar:
Adding: Classic Editor / TinyMCE: Text Editor
If you’re using the Text editor instead of the TinyMCE Visual Editor above:
- Click the OpenAI button in the toolbar:
Adding: Gutenberg
To add OpenAI content within Gutenberg:
- Click the plus icon between two existing blocks, or towards the top left corner of the Gutenberg editor
- Start typing OpenAI into the Search for a block field, and click the OpenAI option that appears within the Page Generator Pro section
- Follow the Configuration section below for each of the fields displayed in the right hand sidebar’s block panel:
Adding: Page Builders
To add OpenAI content within any Page Builder that supports a Text Editor widget/module using the Classic Editor (sometimes known as TinyMCE), refer to the Classic Editor instructions above.
Refer to the Dynamic Elements Documentation for details specific to your Page Builder.
If your Page Builder does not provide a Text Editor widget/block that uses the Classic Editor, you can still use Dynamic Elements. However, you’ll need to manually build the shortcode, inserting it into your Page Builder’s content – for example:
[page-generator-pro-openai parameter="value" ...]
Parameter | Accepted Value | Description |
---|---|---|
topic | string or keyword | The topic that the content should be written about. |
content_type | string |
|
limit | int |
|
language | string | Two character language code. |
temperature | float | Number between 0 and 2, in 0.1 steps. A higher value will make the output more random. A lower value will make it the output more focused and deterministic. See OpenAI API Docs. |
top_p | float | Number between 0 and 1, in 0.1 steps. Determines the pool of available tokens to choose from, between 0 and 1. An alternative to using Temperature. A higher value will include more, less accurate tokens. A lower value will include fewer, more accurate tokens. See OpenAI API Docs. |
presence_penalty | float | Number between -2.0 and 2.0, in 0.1 steps. Positive values penalize new tokens based on whether they appear in the text so far, increasing the model’s likelihood to talk about new topics. See OpenAI API Docs. |
frequency_penalty | float | Number between -2.0 and 2.0, in 0.1 steps. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model’s likelihood to repeat the same line verbatim. See OpenAI API Docs. |
Configuration: General
Topic
The Topic is the topic that the content should be based on. For example, if the Content Group relates to plumbing services, you might use “how to fix a leak” or “how to find the best plumber”.
Keywords are supported in the Topic field. For example, if your Content Group is for generating Pages for services in locations, and you have Keywords defined for both services and locations, you might use “how to find the best {service} in {location(city_name)}”. For each generated Page, the Keywords will be replaced with a Term, and the query sent to OpenAI to return content (for example, “how to find the best bathroom plumber in Birmingham”).
The more detailed the topic, the better quality content that will be returned. For example, “bathroom plumbing” will generate more generic content vs. “how to find the best bathroom plumber”.
When Content Type is Freeform, the Topic becomes the entire OpenAI prompt. Limit and Language options are ignored, therefore you’re responsible for defining these. For example, you might specify:
Write a 250 word paragraph about how to find the best {service}. The style should be an informative, professional tone, written in French.
Content Type
Content Type determines the form and length of content to produce, depending on how you’re using the Research tool:
- Article: You want to produce a large amount of detailed content on a topic (such as “how to find the best web designer”), that will form the main content of the Content Group (and therefore generated pages). This is useful if you have yet to start writing content, and want a good starting point.
- FAQs: You want to produce a series of questions and answers based on the topic (such as “how to find the best kitchen fitter”), output as the FAQPage structured microdata format compliant with Google.
- Freeform: You want to send a freeform prompt to OpenAI, with full control over output, language, formatting, HTML etc.
- In this setting, the Limit and Language options are ignored. You’re responsible for prompting the OpenAI model to return the applicable language and limit, if required.
- Paragraph: You want to produce a single paragraph or two of content on a more detailed topic (such as “what is the most important quality in a web design company”), that will form part of the content of the Content Group. This is useful if you have built a block based or page builder layout, and want to inject AI generated content into a specific section.
- Review: You want to produce a customer review based on the Topic, that includes Review schema and HTML.
- Review (Plain Text, no schema): You want to produce a short customer review based on the Topic, that contains no schema markup or HTML.
Limit
The maximum length of the content.
- For Articles and Paragraphs, this is a word limit.
- For FAQs, this is the number of questions and answers to generate.
- For Freeform, the limit is ignored. Any limit imposed is a token limit from OpenAI, based on the model chosen.
Language
Language will return the created content, translated into the chosen language.
It’s recommended that the prompt be written in English.
Configuration: Tuning
Temperature
Number between 0 and 2, in 0.1 steps. A higher value will make the output more random. A lower value will make it the output more focused and deterministic. See OpenAI API Docs.
It’s recommended to only change the Temperature or Nucleus Sample, not both.
Nucleus Sample
Number between 0 and 1, in 0.1 steps. Determines the pool of available tokens to choose from, between 0 and 1. An alternative to using Temperature. A higher value will include more, less accurate tokens. A lower value will include fewer, more accurate tokens. See OpenAI API Docs.
It’s recommended to only change the Nucleus Sample or the Temperature, not both.
Presence Penalty
Number between -2.0 and 2.0, in 0.1 steps. Positive values penalize new tokens based on whether they appear in the text so far, increasing the model’s likelihood to talk about new topics. See OpenAI API Docs.
Frequency Penalty
Number between -2.0 and 2.0, in 0.1 steps. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model’s likelihood to repeat the same line verbatim. See OpenAI API Docs.
Performance
The OpenAI Dynamic Element will query OpenAI for every single generated Page. Because OpenAI can take up to 60 seconds per request, generation times will be much slower, as each generated Page must query OpenAI one or more times (depending on the number of OpenAI Dynamic Elements in a Content Group) to dynamically insert content(s).
As such, we do not handle support requests regarding slow generation performance where the OpenAI Dynamic Element is used.
If faster generation times are essential, you’re welcome to use the Research tool, enabling the Return as Spintax option. This will query OpenAI immediately when editing the Content Group, inserting the spintax content result. Each generated page will then produce a spun variation of this content, with no further queries to OpenAI required.
Regenerating / Updating Pages
Sometimes, you’ll want to re-generate Pages from a Content Group, whilst retaining the generated OpenAI Dynamic Elements – that is, not re-running OpenAI Dynamic Elements a second time.
To do this, we recommend using the Custom Field Dynamic Element and following the guide in the documentation.
Common Issues
No text is returned
Rate limit reached for [model] in [organization]
You exceeded your current quota
OpenAI enforces strict rate limits on their API, depending on your OpenAI account tier. Refer to the OpenAI documentation for current limits based on your account tier:
If a rate limit has been reached (whether that be requests per minute, requests per day, tokens per minute or tokens per day), Page Generator Pro will wait one minute, and then try a second time.
If a rate limit is subsequently hit a second time for the same Dynamic Element, no text will be returned, and Page Generator Pro will continue to the next operation. This is deliberate and by design, to ensure that all Pages are generated, and the generation process does not get stuck on one item.
To avoid hitting rate limits and debug issues, it’s strongly recommended to:
- Increase your OpenAI account to from Free to Tier 1 or higher, by paying more (refer to the Usage tiers table). The higher the tier, the higher the rate limits.
- If using a free OpenAI account, consider starting with a Tier 1 or Tier 2 account.
- Consider using the OpenAI Research tool (and applying spintax to the result), where Keywords aren’t necessary for the OpenAI prompt / topic.
- Use a different OpenAI account for each site using Page Generator Pro
- It is not enough to use a different OpenAI key; OpenAI’s rate limits are set across an entire organization (account).
- Generate one Content Group at a time on your server
- If your server has multiple sites installed, each using Page Generator Pro, it’s essential to generate one Content Group at at time for one site at a time.
- Reduce the number of OpenAI Dynamic Elements in a Content Group,
- Enable debug logging per steps at https://www.wpzinc.com/support
- Set Generate Content Items per Request = 1.
- Use Test mode with the specific Resume Index of the generated Page that resulted in blank text.
- This will output any error from OpenAI, allowing you to improve e.g. the prompt / configuration to resolve.
- Inspect the wp-content/debug.log file, observing any errors returned from OpenAI.
[Number] is less than the minimum of 1 – ‘max_tokens’
Each OpenAI model has a maximum token limit, shared between the prompt (topic) and completion (return text).
In this case, the topic’s length is too long, resulting in no tokens remaining for the completion (return text) from OpenAI.
To resolve, ensure that the topic:
- Does not contain newlines
- Is below the maximum token limit – and ideally, a shorter topic, as so not to exhaust the total number of remaining tokens for the response.
Please reduce the length of the messages or completion
The topic must be free of any quotation marks and HTML tags. If using the Classic Editor, use the Text mode to confirm that no inline HTML is included in the request.
The model does not exist or you do not have access to it.
Refer to OpenAI’s Documentation, noting that your account must:
- Pay-As-You-Go accounts must have made a minimum $1 payment
- ChatGPT Plus accounts do not automatically have access to the GPT-4 API
Refer to the OpenAI Documentation. Alternatively, use a GPT-3.5 based model, which all OpenAI customers can use. This can be selected in the Plugin’s Integration Settings.
503 Service Unavailable
Reduce the number of OpenAI Dynamic Elements in the Content Group.
For OpenAI Dynamic Elements that are smaller and repetitive in nature (i.e. the topic is not very different between each generated Page, the request is to generate a short paragraph), consider use the Research Tool, to generate e.g. a paragraph, ensuring Return as Spintax is enabled. This content will then be stored in the Content Group, in spintax format.