FastBots: crie um sitemap XML WordPress personalizado para treinar seu bot de IA
Martech Zone tem milhares de artigos, muitos deles desatualizados. Trabalhei no site durante vários anos para remover ou atualizar centenas de artigos, mas ainda tenho muitos mais. Ao mesmo tempo, gostaria de treinar um bot de linguagem natural com meu conteúdo, mas a última coisa que quero fazer é treiná-lo em artigos desatualizados.
Bots rápidos é um ChatGPT-construtor de bot que você pode treinar inicialmente usando o mapa do site (ou outras opções). Eu precisava de um mapa do site filtrado que incluísse todos os artigos modificados desde uma data específica. Além disso, eu queria incluir minhas páginas e acrônimos (um tipo de postagem personalizado). Eu não queria incluir páginas de arquivo para categorias e tags ou ter minha página inicial, pois ela também é um arquivo.
Usando o código que forneço no final deste artigo; Eu construí um plugin WordPress personalizado que cria um custom XML mapa do site que é atualizado dinamicamente cada vez que publico uma postagem. FastBots não possui um método de reciclagem automatizado à medida que publico cada artigo, mas este é um excelente ponto de partida para usar a plataforma.
O mapa do site importa todos os links para treinar o AI Bot ligado:
Todas as páginas agora são importadas e você pode treinar seu bot nos dados aplicáveis. Você também tem a oportunidade de remover páginas específicas. Os FastBots também me permitiram personalizar a marca do meu bot de IA e até incluir um link para um artigo relevante em minha resposta. Há também uma solicitação de lead incorporada à plataforma.
A plataforma funcionou perfeitamente… você pode fazer um test drive no meu bot aqui:
Apresentação livro Martech ZoneO bot, Marty Construa seu bot de IA FastBots
Sitemap XML personalizado
Em vez de adicionar essa funcionalidade ao meu tema, criei um personalizado WordPress plugin para construir um Sitemap. Basta adicionar um diretório na sua pasta de plugins e, em seguida, um PHP arquivo com o seguinte código:
<?php
/*
Plugin Name: Bot Sitemap
Description: Dynamically generates an XML sitemap including posts modified since a specific date and updates it when a new article is added.
Version: 1.0
Author: Your Name
*/
// Define the date since when to include modified posts (format: Y-m-d)
$mtz_modified_since_date = '2020-01-01';
// Register the function to update the sitemap when a post is published
add_action('publish_post', 'mtz_update_sitemap_on_publish');
// Function to update the sitemap
function mtz_update_sitemap_on_publish($post_id) {
// Check if the post is not an auto-draft
if (get_post_status($post_id) != 'auto-draft') {
mtz_build_dynamic_sitemap();
}
}
// Main function to build the sitemap
function build_bot_sitemap() {
global $mtz_modified_since_date;
$args = array(
'post_type' => 'post',
'date_query' => array(
'column' => 'post_modified',
'after' => $mtz_modified_since_date
),
'posts_per_page' => -1 // Retrieve all matching posts
);
$postsForSitemap = get_posts($args);
// Fetch all 'acronym' custom post type posts
$acronymPosts = get_posts(array(
'post_type' => 'acronym',
'posts_per_page' => -1,
));
// Fetch all pages except the home page
$pagesForSitemap = get_pages();
$home_page_id = get_option('page_on_front');
$sitemap = '<?xml version="1.0" encoding="UTF-8"?>';
$sitemap .= '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';
foreach($postsForSitemap as $post) {
setup_postdata($post);
if ($post->ID != $home_page_id) {
$sitemap .= '<url>'.
'<loc>'. get_permalink($post) .'</loc>'.
'<lastmod>'. get_the_modified_date('c', $post) .'</lastmod>'.
'<changefreq>weekly</changefreq>'.
'</url>';
}
}
foreach($acronymPosts as $post) {
setup_postdata($post);
if ($post->ID != $home_page_id) {
$sitemap .= '<url>'.
'<loc>'. get_permalink($post) .'</loc>'.
'<lastmod>'. get_the_modified_date('c', $post) .'</lastmod>'.
'<changefreq>weekly</changefreq>'.
'</url>';
}
}
foreach($pagesForSitemap as $page) {
setup_postdata($page);
if ($page->ID != $home_page_id) {
$sitemap .= '<url>'.
'<loc>'. get_permalink($page) .'</loc>'.
'<lastmod>'. get_the_modified_date('c', $page) .'</lastmod>'.
'<changefreq>monthly</changefreq>'.
'</url>';
}
}
wp_reset_postdata();
$sitemap .= '</urlset>';
file_put_contents(get_home_path().'bot-sitemap.xml', $sitemap);
}
// Activate the initial sitemap build on plugin activation
register_activation_hook(__FILE__, 'build_bot_sitemap');