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 “web design”), 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.
- 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.
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.
Common Issues
No text is returned
OpenAI enforces strict rate limits on their API, depending on your OpenAI account type:
Account Type | Rate Limit |
---|---|
Free trial users | 3 requests per minute 150,000 tokens per minute |
Pay as you go users | 3,500 requests per minute (GPT-4: 200 requests per minute) 350,000 tokens per minute (GPT-4: 40,000 tokens per minute) |
If a rate limit has been reached (whether that be requests per minute or tokens per minute), 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:
- Use a pay as you go OpenAI account, to increase the rate limits
- 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.
With basic debugging performed, other steps that may assist include:
- 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,
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.