Вход
Быстрая регистрация
Если вы у нас впервые: О проекте FAQ
0

Как создать чатбота на C++?

ZzZerks [317] 3 года назад

Есть базовые знания, но не хватает примеров. Есть ли тут, кто может помочь. Еще можно было бы заставить бота учится на нейронной сети или машинном обучении. Но практики мало. Есть идея, а как реализовать не знаю. Работаю на VS Enterprise 2017,

1

Доброго времени суток. Не знаю, как у Вас в VS, я сижу на Linux и, соответственно, использую GCC/G++.

Самый простой вариант чата:

  • клиент-отправитель -> серверная PHP-программа-собира­тель -> MySQL-БД
  • клиент-собиратель <-> серверная PHP-программа-отправ­итель <-> MySQL-БД

Клиент-отправитель­:

#include <iostream>

#include <fstream>

#include <string>

#include <...> // Как там у Вас подключаются функции для работы функции URLDownloadFile

using namespace std;

int main() {

string message, server, answer;

cin >> message;

server = "http://78.107.58.16­:80/sendmail.php?mess­age=" + message;

URLDownloadFileA(0, server, "$TEMP.tmp", 0, 0, 0); // Точно не помню, что-то вроде этого

ifstream temp("$TEMP.tmp");

while(!feof(temp)) {

temp >> answer;

cout << answer;

}

reurn true;

}

Клиент-собиратель:­

#include <iostream>

#include <fstream>

#include <string>

#include <...> // Как там у Вас подключаются функции для работы функции URLDownloadFile

using namespace std;

int main() {

string server, answer;

server = "http://78.107.58.16­:80/getmail.php";

URLDownloadFileA(0, server, "$TEMP.tmp", 0, 0, 0); // Точно не помню, что-то вроде этого

ifstream temp("$TEMP.tmp");

while(!feof(temp)) {

temp >> answer;

cout << answer;

}

reurn true;

}

Серверный собиратель:

<?php

if(!isset($_GET['mes­sage')) exit;

$message = $_GET['message'];

$db = mysql_connect("127.0­.0.1:8904", "root", "230805", false);

mysql_select_db("dat­abase", $db);

$q = mysql_query("INSERT INTO messages VALUES('".$message."­')", $db);

// ЧатБот

if($message == "Привет" || $message == "Здравствуйте" || $message == "Салам" || $message == "Ку") $q = mysql_query("INSERT INTO messages VALUES('Привет!"')", $db);

else if($message == "Ты кто?" || $message == "Как тебя зовут?") $q = mysql_query("INSERT INTO messages VALUES('Меня зовут Лиза"')", $db);

else if($message == "Давай поговорим") $q = mysql_query("INSERT INTO messages VALUES('Окей"')", $db);

mysql_close($db);

?>

Серверный отправитель:

<?php

$db = mysql_connect("127.0­.0.1:8904", "root", "230805", false);

mysql_select_db("dat­abase");

$q = mysql_query("SELECT * FROM messages WHERE * LIMIT 0,10", $db);

$rows = mysql_num_rows($q);

for($i = 0; $i <= $rows; $i++) {

echo mysql_result($q, $i)."\n";

}

mysql_close($db);

?>

Это простейший пример чата с принципом "соединились -> обменялись информацией -> отключились" без всяких пользователей. Робота с самообучением создать можно, но сложновато. 5 минут уйдёт на перевод фраз и ответов бота на них в базу данных. Тогда ими можно будет управлять удалённо - расширять, сжимать словарный запас.

Знаете ответ?
Есть интересный вопрос? Задайте его нашему сообществу, у нас наверняка найдется ответ!
Делитесь опытом и знаниями, зарабатывайте награды и репутацию, заводите новых интересных друзей!
Задавайте интересные вопросы, давайте качественные ответы и зарабатывайте деньги. Подробнее..
регистрация