• 22-12-2022, 21:17:28
    #1
    ChatGPT'ye karşı bir hayranlığım oldu açıkçası.
    Soru sorma kabiliyetinize göre bir çok işi yaptırmak mümkün.

    Belki hatırlayanlarınız vardır yıllar öne mIRC kanallarında Soru Cevap botları vardı şu şekilde;



    Çalışan halini test edebilirsiniz


    ChatGPT'ye sorum şu şekildeydi;

    Ona sorduğum bazı düzeltmeler;







    Bana sunduğu kodlar;


    index.html
    <!DOCTYPE html>
    <html lang="tr">
      <head>
        <meta charset="utf-8">
        <title>Soru Cevap Botu</title>
        <!-- CSS dosyamız -->
        <link rel="stylesheet" href="style.css">
      </head>
      <body>
        <!-- Sohbet ekranı -->
        <div id="chat">
          <div id="messages"></div>
          <form id="chat-form">
            <input type="text" id="message-input" autocomplete="off" placeholder="Cevabınızı yazın ve Enter tuşuna basın...">
            <button id="send-button">Gönder</button>
          </form>
        </div>
        <!-- JavaScript dosyamız -->
        <script src="script.js"></script>
      </body>
    </html>
    script.js
    // Sohbet sınıfı
    class Chat {
      // Constructor
      constructor() {
        // Soru ve Cevaplar
        this.questions = [
          {
            question: "Türkiye'nin başkenti neresidir?",
            answer: "Ankara"
          },
          {
            question: "Arpanın en az üretildiği bölgemiz hangisidir?",
            answer: "Karadeniz"
          }
        ];
    
        this.askQuestions = this.questions;
        this.startTime = 0;
    
        this.finishMessage = null;
    
        // İpucu ayarları
        this.revealedLetters = [];
        this.hintCount = 3;
        this.hintInterval = 3000; // 3 saniye
        this.hintIntervalTimer = null;
        this.nextQuestionTimer = null;
    
        // Öğrenci ismi
        this.studentName = "";
    
        // Mesajları tutan dizi
        this.messages = [];
    
        // HTML elementlerini al
        this.chat = document.getElementById("chat");
        this.messagesDiv = document.getElementById("messages");
        this.form = document.getElementById("chat-form");
        this.input = document.getElementById("message-input");
        this.sendButton = document.getElementById("send-button");
    
        this.displayMessage("SoruCevapBotu", "Lütfen adınızı yazın...");
        this.input.placeholder = "Adınız";
        this.input.addEventListener("keydown", e => {
          // Enter tuşuna basıldı
          if (e.keyCode === 13) {
            if ( ! this.studentName) {
              this.studentName = e.target.value;
              this.displayMessage("SoruCevapBotu", `Merhaba ${this.studentName}, soruları cevaplamaya başlayabiliriz.`);
              this.input.placeholder = "Cevabınızı yazın ve Enter tuşuna basın...";
              this.askQuestion();
            } else {
              // İçerik kontrolü
              if (this.input.value.trim() === "") {
                return;
              }
    
              this.displayMessage(this.studentName, e.target.value);
    
              // Cevabı kontrol et
              if (e.target.value.toLowerCase() === this.currentQuestion.answer.toLowerCase()) {
                clearTimeout(this.hintIntervalTimer);
    
                // Cevaplandığı süreyi hesapla
                var elapsedTime = (Date.now() - this.startTime) / 1000;
    
                // Doğru cevap, tebrik et
                this.displayMessage("SoruCevapBotu", `Bravo ${this.studentName}! Doğru cevap "${this.currentQuestion.answer}". Soruyu ${elapsedTime} saniyede bildiniz.`);
                clearTimeout(this.hintIntervalTimer);
                this.input.value = "";
    
                if (this.nextQuestionTimer) clearTimeout(this.nextQuestionTimer);
                this.nextQuestionTimer = setTimeout(() => {
                    this.askQuestion();
                }, 3000);
              }
            }
            this.input.value = "";
          }
        });
    
        // Form gönderme event'ini ekle
        this.form.addEventListener("submit", e => {
          e.preventDefault();
        });
      }
    
      // Bir soru sor
      askQuestion() {
        if ( ! this.askQuestions.length) {
          if ( ! this.finishMessage) {
            // Sorular bitti, oyunu bitir
            this.finishMessage = "Tüm soruları cevapladınız. Tebrikler!";
            this.displayMessage("SoruCevapBotu", this.finishMessage);
          }
          return;
        }
    
        // Rastgele bir soru seç
        const index = Math.floor(Math.random() * this.askQuestions.length);
        this.currentQuestion = this.askQuestions.splice(index, 1)[0];
    
        // Soruyu ekrana yazdır
        this.displayMessage("SoruCevapBotu", this.currentQuestion.question);
    
        // İpucu harflerini sıfırla
        this.revealedLetters = [];
    
        // Soruyu sormanın zamanını kaydet
        this.startTime = Date.now();
    
        // İpucuları göster
        this.displayHint();  
      }
    
      displayHint() {
        this.hintIntervalTimer = setTimeout(() => {
          let hint = this.getHint();
          this.displayMessage("SoruCevapBotu", `İpucu: ${hint}`);
    
          if (this.revealedLetters.length >= this.hintCount) {
            this.nextQuestionTimer =  setTimeout(() => {
              this.displayMessage("SoruCevapBotu", `Cevap yok! Cevap "${this.currentQuestion.answer}". Bakalım sonrakini bilecek misiniz..`);
              this.askQuestion();
            }, 5000);
          } else {
            this.displayHint();
          }
        }, this.hintInterval);
      }
    
      // İpucuları göster
      getHint() {
        let hint = "";
        let answer = this.currentQuestion.answer;
        for (let i = 0; i < answer.length; i++) {
          if (this.revealedLetters.includes(i)) {
            hint += answer[i];
          } else if (/[^a-zA-Z0-9]/.test(answer[i])) {
            // cevap içinde özel karakterler varsa, açılır
            hint += answer[i];
          } else {
            hint += "*";
          }
        }
    
        let index;
        if (this.revealedLetters.length === 0) {
          // ilk ipucu, ilk veya son harf açılır
          index = Math.random() < 0.5 ? 0 : answer.length - 1;
        } else {
          // diğer ipuçlarında rastgele bir harf açılır
          do {
            index = Math.floor(Math.random() * answer.length);
          } while (this.revealedLetters.includes(index) || /[^a-zA-Z0-9]/.test(answer[index]));
        }
        this.revealedLetters.push(index);
        return hint.substring(0, index) + answer[index] + hint.substring(index + 1);
      }
    
      // Mesajı sohbet ekranına ekle
      displayMessage(sender, message) {
        // Mesaj objesi oluştur
        const messageObject = {
          sender: sender,
          message: message,
          date: new Date()
        };
    
        // Mesajı diziye ekle
        this.messages.push(messageObject);
    
        // Mesajı ekrana yazdır
        const messageElement = document.createElement("div");
        messageElement.classList.add("message");
        if (sender === "Oyuncu") {
          messageElement.classList.add("right");
        }
        messageElement.innerHTML = `
          <div class="text">
            <div class="sender">${sender}:</div>
            ${message}
          </div>
        `;
        this.messagesDiv.appendChild(messageElement);
    
        // Ekranı en aşağıya scrolle
        this.messagesDiv.scrollTop = this.messagesDiv.scrollHeight;
      }
    }
    
    // Sınıfı kullan
    const chat = new Chat();
    style.css
    /* Genel stiller */
    body {
      font-family: sans-serif;
      background-color: #f2f2f2;
      margin: 0;
      padding: 0;
    }
    
    /* Sohbet ekranı */
    #chat {
      width: 500px;
      margin: 0 auto;
      margin-top: 20px;
      background-color: #fff;
      border-radius: 5px;
      box-shadow: 0 2px 3px rgba(0, 0, 0, 0.1);
      overflow: hidden;
    }
    
    /* Mesajlar */
    #messages {
      overflow-y: scroll;
      height: 300px;
      padding: 10px;
    }
    #messages .message {
      margin-bottom: 10px;
      display: flex;
    }
    #messages .message.left {
      justify-content: flex-start;
    }
    #messages .message.right {
      justify-content: flex-end;
    }
    #messages .message .text {
      background-color: #ddd;
      color: #666;
      padding: 10px;
      border-radius: 5px;
      font-size: 0.9em;
    }
    #messages .message.right .text {
      background-color: #007bff;
      color: #fff;
    }
    
    /* Form */
    #chat-form {
      display: flex;
      padding: 10px;
    }
    #chat-form input {
      flex-grow: 1;
      height: 40px;
      border: none;
      padding: 0 10px;
      font-size: 0.9em;
    }
    #chat-form button {
      height: 40px;
      border: none;
      background-color: #007bff;
      color: #fff;
      font-size: 0.9em;
      cursor: pointer;
    }
  • 22-12-2022, 21:23:20
    #2
    Çok güzel bir uygulama ama yazılımcıların baya başı ağrıyacak gibi
  • 22-12-2022, 21:24:18
    #3
    Üyeliği durduruldu
    Sadece yazılım sektörü değil makale ve tüm sektörleri bitiriyor be ve çok büyük bir sistem
  • 22-12-2022, 21:27:17
    #4
    Üyeliği durduruldu
    chatgpt botu yazdırmıştım siteme kurmuştum
  • 22-12-2022, 21:30:30
    #5
    Kesinlikle. İçerik hazırlama konusunda çok başarılı. Başarılı olmadığı bir alan henüz görmedim Soru sorma şeklimizde çok önemli, her konuyu çözmek çözdürmek mümkün.
    Saitama adlı üyeden alıntı: mesajı görüntüle
    Sadece yazılım sektörü değil makale ve tüm sektörleri bitiriyor be ve çok büyük bir sistem
  • 22-12-2022, 21:59:36
    #6
    O değilde kullandığı dil çok güzel, okumaya doyamıyorsun
  • 22-12-2022, 22:07:34
    #7
    Barış Özcan'ın chatgpt için yaptığı videoyu izlemenizi öneririm. Chatgptde nasıl soru soracağınıza göre cevapta mükemmelleşiyor. Barış Özcan bunu belirtmişti.


    https://youtu.be/-WSQEyT2Mu0
  • 22-12-2022, 22:13:54
    #8
    Öyle indikatör bile yazıyor sağolsun

    can44 adlı üyeden alıntı: mesajı görüntüle
    O değilde kullandığı dil çok güzel, okumaya doyamıyorsun
  • 23-12-2022, 15:50:32
    #9
    QuarkChain adlı üyeden alıntı: mesajı görüntüle
    Öyle indikatör bile yazıyor sağolsun
    Ben denedim ama indikatör yazacak bilgim yok diyor hocam