from machine import Pin, ADC, I2C
import network, time
from utime import sleep, sleep_ms
import ujson
import urequests
OPENROUTER_API_KEY = 'su api key'
def conectaWifi (red, password):
global miRed
miRed = network.WLAN(network.STA_IF)
if not miRed.isconnected(): #Si no está conectado…
miRed.active(True) #activa la interface
miRed.connect(red, password) #Intenta conectar con la red
print('Conectando a la red', red +"…")
timeout = time.time ()
while not miRed.isconnected(): #Mientras no se conecte..
if (time.ticks_diff (time.time (), timeout) > 10):
return False
return True
if conectaWifi ("Wokwi-GUEST", ""):
print ("Conexión exitosa!")
print('Datos de la red (IP/netmask/gw/DNS):', miRed.ifconfig())
def chat_with_openrouter(prompt, model="openai/gpt-3.5-turbo"):
# URL de la API de OpenRouter
url = "https://openrouter.ai/api/v1/chat/completions"
# Encabezados de la solicitud
headers = {
"Authorization": f"Bearer {OPENROUTER_API_KEY}",
"Content-Type": "application/json"
}
# Cuerpo de la solicitud
data = {
"model": model, # Modelo que deseas utilizar
"messages": [{"role": "user", "content": prompt}]
}
# Convertir el cuerpo a JSON
json_data = ujson.dumps(data)
# Enviar la solicitud POST a la API
response = urequests.post(url, headers=headers, data=json_data)
# Verificar si la solicitud fue exitosa
if response.status_code == 200:
# Extraer y devolver la respuesta del chatbot
response_json = response.json()
response.close() # Cerrar la conexión
return response_json['choices'][0]['message']['content']
else:
# Si la solicitud falla, devolver un mensaje de error
error_message = f"Error: {response.status_code}, {response.text}"
response.close() # Cerrar la conexión
return error_message
def main():
print("Bienvenido ESP_Bot_AI. Escribe 'salir' para terminar la conversación.")
while True:
# Obtener la entrada del usuario
user_input = input("Tú: ")
# Salir del bucle si el usuario escribe 'salir'
if user_input.lower() == 'salir':
print("ESP_Bot_AI: ¡Hasta luego!")
break
# Obtener la respuesta del chatbot
response = chat_with_openrouter(user_input, model="openai/gpt-3.5-turbo")
# Mostrar la respuesta del chatbot
print(f"ESP_Bot_AI: {response}")
if __name__ == "__main__":
main()
else:
print ("Imposible conectar")
miRed.active (False)