Go Back   vb.org Archive > vBulletin Modifications > Archive > vB.org Archives > vBulletin 3.0 > vBulletin 3.0 Full Releases
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools
TalkerBot Add-on - Learning System Details »»
TalkerBot Add-on - Learning System
Version: 1.00, by Geographic2 Geographic2 is offline
Developer Last Online: Apr 2007 Show Printable Version Email this Page

Version: 3.0.0 Rating:
Released: 01-18-2004 Last Update: Never Installs: 38
 
No support by the author.

TalkerBot Add-on - Learning System - Working Beta for VB3 RC2

This modification is an addition to the Talkerbot Hack by C.Birch, Rapid Gaming, eXtremeTim
and a rendition of the ideas presented by Martin64 in the Teachbot hack for vb2.x

This hack will not effect the code of the original Talkbot hack and works in a side-car fashion.

Talkerbots and variants:
VB2:
C. birch https://vborg.vbsupport.ru/showthread.php?t=48053
VB3:
Rapid Gaming https://vborg.vbsupport.ru/showthrea...t=60013&page=1
Extremetim https://vborg.vbsupport.ru/showthread.php?t=60329

Teachbot for Vb2
https://vborg.vbsupport.ru/showthrea...light=teachbot

And based around Program E.
Copyright 2002, Paul Rydell
Portions by Jay Myers

Program E is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.



A major shout out to whoever wrote the Branch on Count functions, the guy who invented the internet and my mom of course... Wouldn't want to forget to credit anybody eh?

Enough of that, here is the description:

This hack allows you to teach your bot to answer questions that you specify.

To teach the bot you simply post in a specified bot-teaching thread.

The subject of your post is the question, and the body of your post is the answer.
The subject can be a word, and the body can be the definition.
The subject can be a phrase, and the body can be a response.

Posts are accumulated in the bot-teaching thread until you run a botlearner script.

This allows you to moderate the questions and answers your users might contribute before entering them into the bots knowledge base.

Running the botlearner script will do the following:
add posts to the bots knowledge
move posts from learning thread into a "bot-learned" thread

The bot-learned thread is an archive of everything you have taught your bot.
This way you can reset your bot if necessary without losing all that knowledge.
You can also SHARE! what you have taught your bot with other users of the Talkerbot Hack.

Share what your bot has learned! Use http://www.yoururl.com/forum/externa...type=AIMLSHARE


INSTALLATION INSTRUCTIONS:
--------------------------

Backup your stuff if you desire.

Create 2 threads where you want them, a bot-learned thread and a bot-teaching thread.

Make note of the threadid numbers of both threads and the postid number of the
first post in the bot-teaching thread. You will need them in a minute.

In external.php:

Find the switch statement.

Code:
switch ($_REQUEST['type'])
{
	case 'JS':
	case 'XML':
	case 'RSS2':
		break;
	default:
		$_REQUEST['type'] = 'RSS';
}
And insert the line case 'AIML': and
case 'AIMLSHARE':into it.
Like so:

Code:
switch ($_REQUEST['type'])
{
	case 'JS':
	case 'XML':
	case 'AIML':
                case 'AIMLSHARE':
	case 'RSS2':
		break;
	default:
		$_REQUEST['type'] = 'RSS';
}

Still in external.php insert this block into the if-else chain.
Replacing TEACHINGTHREADID,TEACHINGTHREADFIRSTPOSTID, and BOTLEARNEDTHREADID, BOTLEARNEDFIRSTPOSTID with the appropriate numbers.


Code:
else if ($_REQUEST['type'] == 'AIML')
{ // XML/AIML output


	$posts = $DB_site->query("
	SELECT post.title, post.pagetext, post.postid 
	FROM post
	WHERE post.threadid=TEACHINGTHREADID AND post.postid!=TEACHINGTHREADFIRSTPOSTID");

	$postcache = array();
	while ($post = $DB_site->fetch_array($posts))
	{ // fetch the posts
	$postcache[] = $post;
	}

	// set XML type and nocache headers
	header('Content-Type: text/xml');
	header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT');
	header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
	header('Pragma: public');

	// print out the page header
        echo '<?xml version="1.0" encoding="' . $stylevar['charset'] . '"?>' . "\r\n";
	echo '<aiml version="1.0">';
	
	
	foreach ($postcache AS $post)
	{
		echo "<category>";
		echo "<pattern>";
		echo strtoupper($post[title]);
		echo "</pattern>\r\n";
		echo "<template>   \r\n";
		echo $post[pagetext]."   \r\n";
		echo "</template>   \r\n";
		echo "</category>   \r\n";
	$DB_site->query("UPDATE post SET threadid=BOTLEARNEDTHREADID WHERE postid=".$post[postid]);
	}
	echo "\r\n</aiml>";
}

Still in external.php insert this block into the if-else chain.
Replacing BOTLEARNEDTHREADID, BOTLEARNEDFIRSTPOSTID with the appropriate numbers.


Code:
else if ($_REQUEST['type'] == 'AIMLSHARE')
{ // XML/AIML output
	$posts = $DB_site->query("
	SELECT post.title, post.pagetext, post.postid 
	FROM post
	WHERE post.threadid=BOTLEARNEDTHREADID AND post.postid!=BOTLEARNEDFIRSTPOSTID");

	$postcache = array();
	while ($post = $DB_site->fetch_array($posts))
	{ // fetch the posts
	$postcache[] = $post;
	}

	// set XML type and nocache headers
	header('Content-Type: text/xml');
	header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT');
	header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
	header('Pragma: public');

	// print out the page header
        echo '<?xml version="1.0" encoding="' . $stylevar['charset'] . '"?>' . "\r\n";
	echo '<aiml version="1.0">';
	
	foreach ($postcache AS $post)
	{
		echo "<category>";
		echo "<pattern>";
		echo strtoupper($post[title]);
		echo "</pattern>\r\n";
		echo "<template>   \r\n";
		echo $post[pagetext]."   \r\n";
		echo "</template>   \r\n";
		echo "</category>   \r\n";
	}
	echo "\r\n</aiml>";
}
Upload botlearner.php botlearnerinc.php and botlearnerfuncs.php to the same directory that botloader.php resides in.

should be /forum/alice/src/admin/



In file learnwhat.xml
change the line to fit your forum,

Code:
<learn>http://www.yourforums.com/yourforumdir/external.php?type=AIML</learn>
For each addition site you would like to get shared knowledge from insert a line:
Code:
To get your bot to use this insert the line:
<learn>http://www.shared.com/forum/external.php?type=AIMLSHARE</learn>

on a sidenote if you changed the name of your bot and it's info in startup.xml you'll want
to change it here in learnwhat.xml as well you can do this by making a copy of startup to be the new learnwhat.xml
and changing the line
<learn>*</learn>
to:
<learn>learnwhat.xml<learn>


Back to the straight story:

Upload learnwhat.xml to your AIML dir.

should be /forum/alice/aiml/

Go test things out.

Please let me know if I am an idiot and messed up the process here..

Show Your Support

  • This modification may not be copied, reproduced or published elsewhere without author's permission.

Comments
  #62  
Old 03-18-2004, 02:52 AM
DaveLogic DaveLogic is offline
 
Join Date: Jun 2003
Location: London
Posts: 51
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Geographic2
All info is pushed into the pattern and template tables.

I had success teaching it like this:

Loading this entry from the learning thread:

Thread Title: What are snausages?
Thread Body: Dog Treats.


Then asking the bot: What are snausages?
and it would return the correct answer.

I've also had success giving it Dictionary style entries where the
thread title is a single word and the body is the definition.


I'd also like to note that I have tried to teach it things that it failed to learn.
The reason for this failure is likely due to the bot being taken away to a different success result in it's DB. Sort of distracted by too many paths to take.

Hope you get it going
I've checked my PATTENS table and all BOT entries seem to have a value of 1 for parent and 1 for isend.They don't follow sequence...Is this correct..If not could it be an error with the first thread / first post config???- It's the only thing I can think of...

bot id word ordera parent isend
0 287801 NULL 3 287800 1
0 287802 <topic> 2 287801 0
0 287803 NULL 3 287802 1
0 287804 2 287803 0
0 287805 MYWORD 2 1 1
0 287806 <that> 2 287805 0
Reply With Quote
  #63  
Old 03-27-2004, 05:59 PM
rockergrrl's Avatar
rockergrrl rockergrrl is offline
 
Join Date: Oct 2001
Location: Michigan
Posts: 84
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I can't seem to get this to work on my board.

Everything is loaded, and I'm pretty sure I got the IDs correct.

But the thing doesn't seem to want to run at all :/

Someone care to take a look at it for me?

PM, let me know.

Gracias!
Reply With Quote
  #64  
Old 03-27-2004, 06:17 PM
Geographic2 Geographic2 is offline
 
Join Date: Apr 2003
Location: On the map
Posts: 81
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

What's happening/Not Happening...?

When you make posts and run botlearner do the posts get moved?

Do you get any output when using the external.php URL?
Reply With Quote
  #65  
Old 03-27-2004, 07:08 PM
rockergrrl's Avatar
rockergrrl rockergrrl is offline
 
Join Date: Oct 2001
Location: Michigan
Posts: 84
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Posts have been made, but the bot isn't responding.

When I run botlearner, I get:
Loading learnwhat.xml
Loading data aiml file: /forum/external.php?type=AIML
DONE LOADING
Inserted 0 categories into database

And when I run the external.php?type=AIML file, I get a blank page

Suggestions?

If you want, PM me your email address, and I can send you over whatever is needed if you want to look at it specifically.

Thanks for your help!
Reply With Quote
  #66  
Old 03-27-2004, 07:50 PM
Geographic2 Geographic2 is offline
 
Join Date: Apr 2003
Location: On the map
Posts: 81
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

If you get a blank page in the external.php then there is nothing to be read when you go and run botlearner.

My first guess is that there must be something wrong with the threadids.
Look at the external.php changes and check the threadids.
Make a few more posts in the thread and try to see if you can get external.php running.
When it works and you follow the external.php?type=AIML you should get results on the screen which should be your entries in an xml type format... If it's blank that's no good.

I don't have a email I like to share but you can PM me things here if you like.

I have to go to family party now.
Be back later this evening.
Reply With Quote
  #67  
Old 03-27-2004, 08:13 PM
rockergrrl's Avatar
rockergrrl rockergrrl is offline
 
Join Date: Oct 2001
Location: Michigan
Posts: 84
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

At the end of external.php before:
Code:
/*======================================================================*\
I have:

Code:
else if ($_REQUEST['type'] == 'AIML')
{ // XML/AIML output

 $posts = $DB_site->query("
 SELECT post.title, post.pagetext, post.postid 
 FROM post
 WHERE post.threadid=182 AND post.postid!=536");
 $postcache = array();
 while ($post = $DB_site->fetch_array($posts))
 { // fetch the posts
 $postcache[] = $post;
 }
 // set XML type and nocache headers
 header('Content-Type: text/xml');
 header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT');
 header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
 header('Pragma: public');
 // print out the page header
		echo '<?xml version="1.0" encoding="' . $stylevar['charset'] . '"?>' . "\r\n";
 echo '<aiml version="1.0">';
 
 
 foreach ($postcache AS $post)
 {
  echo "<category>";
  echo "<pattern>";
  echo strtoupper($post[title]);
  echo "</pattern>\r\n";
  echo "<template>   \r\n";
  echo $post[pagetext]."   \r\n";
  echo "</template>   \r\n";
  echo "</category>   \r\n";
 $DB_site->query("UPDATE post SET threadid=183 WHERE postid=".$post[postid]);
 }
 echo "\r\n</aiml>";
}
else if ($_REQUEST['type'] == 'AIMLSHARE')
{ // XML/AIML output
 $posts = $DB_site->query("
 SELECT post.title, post.pagetext, post.postid 
 FROM post
 WHERE post.threadid=183 AND post.postid!=537");
 $postcache = array();
 while ($post = $DB_site->fetch_array($posts))
 { // fetch the posts
 $postcache[] = $post;
 }
 // set XML type and nocache headers
 header('Content-Type: text/xml');
 header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT');
 header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
 header('Pragma: public');
 // print out the page header
		 echo '<?xml version="1.0" encoding="' . $stylevar['charset'] . '"?>' . "\r\n";
 echo '<aiml version="1.0">';
 
 foreach ($postcache AS $post)
 {
  echo "<category>";
  echo "<pattern>";
  echo strtoupper($post[title]);
  echo "</pattern>\r\n";
  echo "<template>   \r\n";
  echo $post[pagetext]."   \r\n";
  echo "</template>   \r\n";
  echo "</category>   \r\n";
 }
 echo "\r\n</aiml>";
}
I'm pretty sure I got everything correct (I double checked the thread ids, etc. They're correct.

Unless I missed editing something in there.
Reply With Quote
  #68  
Old 03-29-2004, 05:38 AM
Geographic2 Geographic2 is offline
 
Join Date: Apr 2003
Location: On the map
Posts: 81
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Check your PM's.
Reply With Quote
  #69  
Old 04-10-2004, 03:39 PM
Bro_Joey_Gowdy's Avatar
Bro_Joey_Gowdy Bro_Joey_Gowdy is offline
 
Join Date: May 2002
Location: Hickory Flat MS 38633
Posts: 364
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

/me clicks install
Reply With Quote
  #70  
Old 04-20-2004, 07:45 AM
mikeee mikeee is offline
 
Join Date: Dec 2002
Posts: 23
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Can someone help? I keep getting this error:
=========================
Loading learnwhat.xml
Loading data aiml file: http://www.MYSITE.com/external.php?type=AIML
XML error: syntax error at line 1
Reply With Quote
  #71  
Old 04-20-2004, 12:56 PM
Mijae's Avatar
Mijae Mijae is offline
 
Join Date: Nov 2001
Location: Russia
Posts: 523
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

My bot wont use smilies
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 10:52 AM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.04669 seconds
  • Memory Usage 2,329KB
  • Queries Executed 25 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (8)bbcode_code
  • (1)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_post
  • (1)navbar
  • (6)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (11)post_thanks_box
  • (11)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (11)post_thanks_postbit_info
  • (10)postbit
  • (11)postbit_onlinestatus
  • (11)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete