FastBots: Vytvořte si vlastní WordPress XML Sitemap pro školení vašeho AI bota
Martech Zone má tisíce článků, přičemž mnohé z nich jsou zastaralé. Pracoval jsem na webu několik let na odstranění nebo aktualizaci stovek článků, ale stále jich mám mnohem víc. Zároveň bych chtěl svým obsahem trénovat přirozeného jazykového bota, ale to poslední, co chci, je trénovat ho na zastaralých článcích.
FastBots je ChatGPT-výkonný tvůrce botů, kterého můžete zpočátku trénovat pomocí mapy webu (nebo jiných možností). Potřeboval jsem filtrovanou mapu webu, která obsahovala všechny články upravené od určitého data. Navíc jsem chtěl zahrnout své stránky a zkratky (vlastní typ příspěvku). Nechtěl jsem zahrnout archivní stránky pro kategorie a značky nebo mít svou domovskou stránku, protože je to také archiv.
Pomocí kódu, který uvádím na konci tohoto článku; Vytvořil jsem vlastní plugin WordPress, který vytváří vlastní XML mapa webu, která se dynamicky obnovuje pokaždé, když publikuji příspěvek. FastBots nemá automatizovanou metodu rekvalifikace, když publikuji každý článek, ale je to skvělý výchozí bod pro používání platformy.
Mapa webu importuje všechny odkazy k trénování AI Bot na:
Všechny stránky jsou nyní importovány a můžete svého robota trénovat na příslušných datech. Máte také možnost odebrat konkrétní stránky. FastBots mi také umožnily přizpůsobit značku mého AI bota a dokonce do mé odpovědi zahrnout odkaz na relevantní článek. V platformě je také zabudován požadavek na zájemce.
Platforma fungovala bezchybně... zde můžete vyzkoušet mého robota:
zahájit Martech ZoneTo je Bot, Marty Sestavte si svého robota FastBots AI
Vlastní soubor Sitemap XML
Spíše než přidat tuto funkci do mého tématu jsem vytvořil vlastní WordPress plugin pro vytvoření souboru Sitemap. Stačí přidat adresář do složky pluginů a poté a PHP soubor s následujícím kódem:
<?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');