Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Chat bot
Forum PHP.pl > Forum > Gotowe rozwiązania > Algorytmy, klasy, funkcje
Speedy
Skrypt umożliwiający rozmowę z chat botem. Można go zaimplementować np. w IRC BOCIE itp.
Korzysta on z bazy haseł w pliku *.ini. Sposób jego działania możecie poznać analizując algorytm.
Napisałem to jakiś czas temu, ale teraz sobie pomyślałem, że można to tutaj umieścić smile.gif.

  1. <form method="post">
  2. <input type="text" name="q" />
  3. <br/>
  4. <input type="submit" value="ok" />
  5. </form>
  6.  
  7. <?
  8.  
  9. $chat_file = 'chat.ini';
  10.  
  11. if(isset($_POST['q']))
  12. {  
  13.  
  14. $baza = parse_ini_file($chat_file, true);
  15.  
  16. $baza_keys = array_keys($baza);
  17.  
  18. $baza_val = array_values($baza);
  19.  
  20. $string = strtolower($_POST['q']);
  21.  
  22. $tablica  = explode(" ", $string);
  23.  
  24. $i = 0;
  25.  
  26. $count_tab = count($tablica);
  27.  
  28. while($i<$count_tab) 
  29. {
  30.  
  31. $klucz = array_search($tablica[$i], $baza_keys);
  32.  
  33. $i++;
  34.  
  35. if($klucz == true) 
  36. {
  37.  
  38. $found_v = $baza_val[$klucz];
  39.  
  40. }
  41. }
  42.  
  43.  
  44. if(empty($found_v))
  45. {
  46. $found_v = $baza['alternative'];
  47. }
  48.  
  49. $count_v = count($found_v) - 1;
  50.  
  51. $rand = rand(0, $count_v);
  52.  
  53. $odp = $found_v[$rand]; 
  54.  
  55. echo $odp;  
  56. }
  57.  
  58. ?>


Przykładowy plik chat.ini
Kod
; ta opcja jest pusta , ponieważ bot nie interpretuje pierwszego klucza
[undefined]
0 = "undefined"

[czesc]
0 = "czesc"
1 = "Witam Ciebie"
2 = "cze"
3 = "Dzien dobry"

[oko]
0 = "jakie oko? o co Ci chodzi?"
1 = "moje oko?"

[banan]
0 = "tez lubie owoce"
1 = "a moze jablko?"

[pa]
0 = "pa"
1 = "papa"
2 = "na razie"

[alternative]
0 = "mhm... to bardzo interesujące"
1 = "może rozwiniesz swoją myśl?"
2 = "chyba nie rozumiem o co Ci chodzi"
3 = "lubisz francuskie filmy?"
morph
Możesz rozbudować swojego bota - mógłby pamiętać wątek i prowadzić rozmowy w danym wątku - do realizacji tego zadania proponuję wykorzystać automat skończony (http://www.pear.php.net/package/FSM).
Speedy
Cytat(morph @ 2005-11-05 13:21:42)
Możesz rozbudować swojego bota - mógłby pamiętać wątek i prowadzić rozmowy w danym wątku - do realizacji tego zadania proponuję wykorzystać automat skończony (http://www.pear.php.net/package/FSM).

Pomysł fajny.
Dzięki za tę uwagę winksmiley.jpg.
mike
Proszę zapoznać się z zasadami panującymi na forum Algorytmy, klasy, funkcje i przesłac mi na PW poprawną propozycję tematu dla tego wątku wraz z linkiem do niego.

Do tego czasu zamykam.

----edit----
Otwarte.
Fipaj
Przypominam się z http://en.wikipedia.org/wiki/AIML winksmiley.jpg
mwm
bardzo fajny chat może dało by się rozbudować go by wyglądał jak prawdziwy questionmark.gif smile.gif

----edit----
To jest algorytm.
Możesz ubrać go w co chcesz.
I proszę nie nabijać postów

~mike_mech

(nienabijam się! zainteresował mnie poprostu ale niewiem jak go rozbudować by miał historie rozmowy która kasuje się po zmianie strony, by wyglądał jak prawdziwe chaty )
Speedy
mwm, jak już zostało wspomniane, jest to tylko algorytm.
Wygląd możesz sobie wprawić jaki Ci się podoba. Wykorzystać to też możesz gdzie chcesz (w obrębie serwera z obsługą php tongue.gif).
Całą rozmowę możesz zapisywać sobie do bazy/pliku, po czym dynamicznie ją wyświetlać - osobną dla każdego nowego użytkownika. Możesz skorzystać z AJAX-u, żeby wszystko działało szybciej i sprawniej.
Sam chętnie rozwinąłbym ten pomysł, ale niestety z powodu braku czasu obecnie jest to niemożliwe.

Pozdrawiam!
ona_15
Hejka, powiedzcie jak zrobic aby bot stal sobie na kanale IRC'a ?
grzegorz_w
Cytat(ona_15 @ 16.07.2006, 16:02 ) *
Hejka, powiedzcie jak zrobic aby bot stal sobie na kanale IRC'a ?


epoka irca już powoli przechodzi, niestety. A może to i lepiej, bo to co się teraz dzieje to kompetna porażka.
Speedy
ona_15: ja zaimplementowałem to w ircbocie o nazwie Slavee.
Ów bota wraz z moimi modyfikacjami możesz sobie ściągnąć stąd.
Więcej o jego obsłudze poczytaj na stronie tego skryptu (najlepiej ściągnij też normalną wersję i przejrzyj plik readme).
michmin
Speedy albo ktoś inny dajcie nowe linki to tej zmodyfikowanej wersji będę wdzięczny.
Speedy
Mailem to wysłałem przedmówcy.
Jeśli ktoś jeszcze będzie tym zainteresowany, to można napisać na PW.
luki.mati
ale w jakim programie zrobić chat bota
worriedsmiley.gif

piszcie zależy mi na czasie
co_jest.gif
thekoks
wie ktoś może jak do tego dodać logi questionmark.gif żeby pokazywało całą rozmowę winksmiley.jpg
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.