Post Image

استفاده از هوش مصنوعی در چت AJAX و PHP با ذخیره‌سازی داده‌ها در پایگاه داده MySQL

سلام! برای استفاده از هوش مصنوعی در چت با استفاده از AJAX و PHP و ذخیره‌سازی داده‌ها در پایگاه داده MySQL، مراحل زیر را می‌توانید دنبال کنید:

مراحل کلی:

  1. ساخت پایگاه داده MySQL: ابتدا باید یک پایگاه داده MySQL برای ذخیره‌سازی داده‌های چت ایجاد کنید. این داده‌ها می‌توانند شامل پیام‌ها، تاریخ و زمان ارسال، و وضعیت پیام‌ها (خوانده شده یا نشده) باشند.

  2. ایجاد API برای ارتباط با PHP و MySQL: برای ارتباط بین چت (که به طور معمول از AJAX استفاده می‌کند) و پایگاه داده، باید یک API در PHP طراحی کنید که داده‌ها را از پایگاه داده خوانده و در صورت لزوم، پیام‌ها را ذخیره کند.

  3. پیاده‌سازی هوش مصنوعی در چت: می‌توانید از سرویس‌های هوش مصنوعی مانند OpenAI، GPT-3 یا GPT-4، یا حتی مدل‌های خاص خودتان استفاده کنید تا چت را هوشمندتر کنید. این مدل‌ها می‌توانند پاسخ‌های خودکار به پیام‌های کاربر بدهند.

  4. پیاده‌سازی AJAX برای ارسال و دریافت پیام‌ها: از AJAX برای ارسال و دریافت داده‌ها به صورت غیر همزمان استفاده می‌کنید. به این ترتیب، صفحه چت بدون نیاز به بارگذاری مجدد به روز می‌شود.

1. ساخت پایگاه داده MySQL

ابتدا یک پایگاه داده و جدول برای ذخیره پیام‌ها بسازید:

CREATE DATABASE chat_db;

USE chat_db;

CREATE TABLE messages (
    id INT AUTO_INCREMENT PRIMARY KEY,
    user_message TEXT,
    bot_response TEXT,
    timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

2. کدنویسی PHP برای ذخیره و خواندن پیام‌ها

ایجاد یک فایل PHP برای ذخیره پیام‌های کاربر و پاسخ‌های هوش مصنوعی:

save_message.php

<?php
$servername = "localhost";
$username = "root"; // نام کاربری MySQL
$password = ""; // رمز عبور MySQL
$dbname = "chat_db";

// ایجاد اتصال به دیتابیس
$conn = new mysqli($servername, $username, $password, $dbname);

// بررسی اتصال
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$user_message = $_POST['user_message'];
$bot_response = $_POST['bot_response'];

// ذخیره پیام‌ها در پایگاه داده
$sql = "INSERT INTO messages (user_message, bot_response) VALUES ('$user_message', '$bot_response')";

if ($conn->query($sql) === TRUE) {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

$conn->close();
?>

get_messages.php

<?php
$servername = "localhost";
$username = "root"; // نام کاربری MySQL
$password = ""; // رمز عبور MySQL
$dbname = "chat_db";

// ایجاد اتصال به دیتابیس
$conn = new mysqli($servername, $username, $password, $dbname);

// بررسی اتصال
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

// خواندن پیام‌ها از دیتابیس
$sql = "SELECT user_message, bot_response FROM messages ORDER BY timestamp ASC";
$result = $conn->query($sql);

$messages = [];
if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        $messages[] = $row;
    }
}

echo json_encode($messages);

$conn->close();
?>

3. پیاده‌سازی هوش مصنوعی (مانند OpenAI GPT)

برای اینکه بتوانید از GPT-3 یا GPT-4 برای پاسخ به پیام‌های کاربران استفاده کنید، باید یک درخواست به API OpenAI ارسال کنید.

chat_with_ai.php

<?php
$api_key = "YOUR_OPENAI_API_KEY";
$api_url = "https://api.openai.com/v1/completions";

$user_message = $_POST['user_message'];

$data = [
    "model" => "gpt-4",  // یا gpt-3.5 برای نسخه قدیمی‌تر
    "prompt" => $user_message,
    "max_tokens" => 150,
    "temperature" => 0.7
];

$options = [
    'http' => [
        'header'  => "Content-type: application/json\r\n" .
                     "Authorization: Bearer $api_key\r\n",
        'method'  => 'POST',
        'content' => json_encode($data)
    ]
];

$context  = stream_context_create($options);
$response = file_get_contents($api_url, false, $context);
$response_data = json_decode($response, true);

$bot_response = $response_data['choices'][0]['text'];

echo $bot_response;
?>

4. پیاده‌سازی AJAX برای ارسال و دریافت پیام‌ها

در نهایت، از AJAX برای ارسال پیام‌ها به سرور و دریافت پاسخ استفاده می‌کنید. این کار باعث می‌شود که تجربه کاربری روان و بدون بارگذاری مجدد صفحه باشد.

chat.js

// ارسال پیام به سرور و دریافت پاسخ از هوش مصنوعی
function sendMessage() {
    const userMessage = document.getElementById("userMessage").value;

    // ارسال پیام به PHP و ذخیره در دیتابیس
    $.ajax({
        url: "chat_with_ai.php",
        type: "POST",
        data: { user_message: userMessage },
        success: function(response) {
            const botResponse = response.trim();
            document.getElementById("chatBox").innerHTML += "<p>User: " + userMessage + "</p>";
            document.getElementById("chatBox").innerHTML += "<p>Bot: " + botResponse + "</p>";
            document.getElementById("userMessage").value = "";

            // ذخیره پیام‌ها در دیتابیس
            $.ajax({
                url: "save_message.php",
                type: "POST",
                data: {
                    user_message: userMessage,
                    bot_response: botResponse
                },
                success: function() {
                    console.log("Message saved successfully.");
                }
            });
        }
    });
}

// بارگذاری پیام‌های قبلی از دیتابیس
function loadMessages() {
    $.ajax({
        url: "get_messages.php",
        type: "GET",
        success: function(response) {
            const messages = JSON.parse(response);
            messages.forEach(message => {
                document.getElementById("chatBox").innerHTML += "<p>User: " + message.user_message + "</p>";
                document.getElementById("chatBox").innerHTML += "<p>Bot: " + message.bot_response + "</p>";
            });
        }
    });
}

// بارگذاری پیام‌ها هنگام بارگذاری صفحه
window.onload = loadMessages;

HTML برای نمایش چت:

<!DOCTYPE html>
<html lang="fa">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Chat AI</title>
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
    <script src="/chat.js"></script>
</head>
<body>
    <div id="chatBox"></div>
    <input type="text" id="userMessage" placeholder="پیام خود را وارد کنید...">
    <button onclick="sendMessage()">ارسال</button>
</body>
</html>

توضیحات:

  • chat_with_ai.php از OpenAI API برای دریافت پاسخ هوش مصنوعی استفاده می‌کند.
  • save_message.php پیام‌های کاربر و پاسخ‌های هوش مصنوعی را در پایگاه داده MySQL ذخیره می‌کند.
  • get_messages.php پیام‌ها را از پایگاه داده می‌خواند و به صورت JSON ارسال می‌کند.
  • AJAX به شما این امکان را می‌دهد که بدون بارگذاری مجدد صفحه، پیام‌ها را ارسال و دریافت کنید.

این مراحل یک سیستم چت ساده با استفاده از PHP، MySQL و هوش مصنوعی را ایجاد می‌کند. البته برای استفاده در پروژه‌های بزرگ‌تر، ممکن است نیاز به بهینه‌سازی و امنیت بیشتر داشته باشید (مثل استفاده از prepared statements در PHP برای جلوگیری از SQL injection).

نظرات کاربران
ثبت نظرات
برای ثبت نظر باید عضو سایت باشید!