Arduino nano esp32 chatbot with websearch sentences help

Dear Arduino forum members,
I have programmed a chatbot with some sentence, but i would like to add sentences that answer with a wifi connection to a web search motor like google or dogpile or bing, can you help me develop this code?
Here the coding

void setup() {
  Serial.begin(9600);
  Serial.println("Benvenuto! Inserisci un messaggio:");
}


void loop(){
    if (Serial.available() > 0) {
    String inputMessage = Serial.readStringUntil('\n');
    inputMessage.trim();

    if (inputMessage.length() > 0) {
      String response = getChatbotResponse(inputMessage);
      Serial.println("Arduino: " + response);
    }
  }
}

String getChatbotResponse(String userMessage) {
  userMessage.toLowerCase();  // Converti il messaggio in minuscolo per facilitare la gestione delle risposte

  if (userMessage.equals("ciao")) {
    return "Ciao! Come stai?";
  } else if (userMessage.equals("bene") || userMessage.equals("sto bene")) {
    return "Mi fa piacere!";
  } else if (userMessage.equals("male") || userMessage.equals("non bene")) {
    return "Mi dispiace sentirlo. Posso aiutarti in qualche modo?";
  } else if (userMessage.equals("va male") || userMessage.equals("non va bene")) {
    return "Oh no! Spero che le cose migliorino presto.";
  } else if (userMessage.equals("come va")) {
    return "Va tutto bene, grazie!";
  } else if (userMessage.equals("cosa fai")) {
    return "Sto chattando con te!";
  } else if (userMessage.equals("chi sei")) {
    return "Sono un semplice chatbot su Arduino Uno.";
  } else if (userMessage.equals("aiuto")) {
    return "Posso rispondere a domande come 'ciao', 'come va', 'cosa fai', 'chi sei' e altro.";
  } else if (userMessage.equals("addio")) {
    return "Arrivederci! Torna presto.";
    } else if (userMessage.equals("grazie")) {
    return "Prego! Se hai altre domande, chiedi pure.";
  } else if (userMessage.equals("informazioni")) {
    return "Certo, Sono un chatbot creato da Matteo Trevisan e chat GPT su board Arduino Uno R4 wifi.";
  } else if (userMessage.equals("random")) {
    return "Ecco una risposta casuale!";
     } else if (userMessage.equals("come sei nato")) {
    return "Sono nato da arduino ide";
     } else if (userMessage.equals("cosa sei")) {
    return "Sono un chatbot con il cervello piu sviluppato di una formica";
     } else if (userMessage.equals("ok")) {
    return "Molto bene, Grazie";
     } else if (userMessage.equals("lavori")) {
    return "No faccio il Maker con il mio programmatore a tempo perso!";
    } else if (userMessage.equals("grazie")) {
    return "Prego, sei molto gentile!";
    } else if (userMessage.equals("no")) {
    return "Scusami, sono stato scortese!";
    } else if (userMessage.equals("si")) {
    return "Molto bene, mi metto all opera!";
    } else if (userMessage.equals("prego")) {
    return "figurati!!!";
    } else if (userMessage.equals("cos e arduino")) {
    return "Arduino e un microcontrollore, il mio cervello e un arduino nano esp32!!!";
  } else {
    return "Non ho capito. Puoi ripetere?";
  }
}

Thank you
Toolkitman

Da mie istruzioni su chat gpt ho avuto in risposta questo codice ma non so se provarlo in quanto non vorrei violare la polizza di utilizzo del motore di ricerca questo e il codice se vi va di provarlo per me e implementarlo vi ringrazio se lo postate qui.

#include <WiFi.h>
#include <WiFiClientSecure.h>

const char* ssid = "IlTuoSSID";
const char* password = "LaTuaPassword";
const char* googleHost = "www.google.com";
const int googlePort = 443;

void setup() {
  Serial.begin(115200);
  connectToWiFi();
}

void loop() {
  if (Serial.available() > 0) {
    String userQuery = Serial.readStringUntil('\n');
    String googleResponse = searchGoogle(userQuery);

    Serial.println("Risposta da Google: ");
    Serial.println(googleResponse);
  }
}

void connectToWiFi() {
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connessione al WiFi...");
  }

  Serial.println("Connessione WiFi stabilita");
}

String searchGoogle(String query) {
  WiFiClientSecure client;

  if (!client.connect(googleHost, googlePort)) {
    Serial.println("Connessione a Google fallita");
    return "Errore di connessione";
  }

  String request = "GET /search?q=" + query + " HTTP/1.1\r\n" +
                   "Host: " + String(googleHost) + "\r\n" +
                   "Connection: close\r\n\r\n";

  client.print(request);

  while (client.connected() || client.available()) {
    if (client.available()) {
      String line = client.readStringUntil('\n');
      if (line == "\r") {
        break;
      }
    }
  }

  String response = "";
  while (client.available()) {
    response += client.readString();
  }

  return response;
}

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.