No te habrás perdido el frenesí de emoción en torno a ChatGPT (Chat Generative-Pre-Trained Transformer). Puede crear imágenes, escribir código, canciones, poesía y tratar de resolver nuestros problemas, grandes o pequeños. Puede que no sepa cómo vencer a la simulación Kobayashi Maru de Star Trek, pero puede escribir fácilmente código Python y Bash. Con una simple pulsación, también se puede utilizar para escribir código G para el mejores impresoras 3d aunque todavía tenemos que probarlo en nuestro Creality Ender 2 Pro.
Por lo general, interactuamos con ChatGPT a través del navegador, pero en esta guía usaremos una biblioteca especial de Python que conectará nuestros humildes pastel de frambuesa a la poderosa IA y nos proporciona una herramienta para responder a casi cualquier pregunta. Este proyecto no es exclusivo de Raspberry Pi; también se puede usar con PC con Windows, macOS y Linux. Si puede ejecutar Python en él, es probable que ese proyecto también funcione.
Si usa una Raspberry Pi, puede usar casi cualquier modelo con este proyecto porque solo estamos realizando solicitudes a través de una conexión a Internet. Sin embargo, para obtener el mejor rendimiento general, recomendamos un frambuesa pi 4 o Raspberry Pi 3B+.
Configuración de la clave API de ChatGPT para Raspberry Pi
Antes de que podamos usar ChatGPT con nuestra Raspberry Pi y Python, primero debemos configurar una clave API. Esta clave permitirá que nuestro código se conecte a nuestra cuenta de OpenAI y use IA para responder consultas, escribir código, escribir poesía o crear la próxima canción exitosa.
1. Inicie sesión en su cuenta de OpenAI.
2. Haga clic en el menú y seleccione Mostrar claves API.
3. Haga clic en Crear nueva clave secreta para generar una clave de API. Asegúrese de copiar y pegar esta clave en un lugar seguro, ya no se mostrará. Nunca comparta sus claves API, son exclusivas de su cuenta, todos los cargos incurridos provendrán de su cuenta.
Instalación de la API Python de ChatGPT en Raspberry Pi
Con nuestra clave API en la mano, ahora podemos configurar nuestra Raspberry Pi y específicamente Python para usar la API a través de la biblioteca openAI Python.
1. Abra una terminal y actualice el software de su Raspberry Pi. Este mandato es doble. Primero ejecuta una actualización, verificando que la lista de repositorios de software en nuestra Pi esté actualizada. De lo contrario, descarga los últimos detalles. El "&&" significa que si el primer comando (actualizar) se ejecuta con éxito, se iniciará el segundo comando donde actualizamos el software. El indicador "-y" se usa para aceptar la instalación sin la intervención del usuario.
sudo apt update && sudo apt upgrade -y
2. Instale la biblioteca openai Python usando el administrador de paquetes pip.
pip3 install openai
3. Abra el archivo bashrc oculto en su directorio de inicio. Este archivo es donde necesitamos establecer una ruta, una ubicación donde Raspberry Pi OS y Python pueden buscar archivos ejecutables/de configuración.
nano ~/.bashrc
4. Con el teclado, desplácese hasta la parte inferior del archivo y agregue esta línea.
export PATH="$HOME/.local/bin:$PATH"
5. Guarde el archivo presionando CTRL + X, luego Y y Enter.
6. Vuelva a cargar la configuración bashrc para completar la configuración. Luego cierre la terminal.
source ~/.bashrc
Crear un chatbot ChatGPT para Raspberry Pi
El propósito de nuestro chatbot es responder a las preguntas planteadas por el usuario. Siempre que la respuesta pueda estar en formato de texto, este código de proyecto funcionará. Cuando el usuario termina, puede escribir una palabra para salir o presionar CTRL+C para detener el código. Lo probamos con hechos y preguntas triviales, luego le pedimos que escribiera Python, Bash y algo de código G para una impresora 3D.
1. lanzamiento thonyun editor Python integrado. Puede encontrarlo en el menú de Raspberry Pi, en Programación >> Thonny.
2. Importa la biblioteca openai. Esto permite que nuestro código Python entre en línea y ChatGPT.
import openai
3. Crea un objeto, model_engine y almacena tu modelo favorito en él. davinci-003 es el más capaz, pero también podemos usar (en orden de capacidad) "text-curie-001", "text-babbage-001" y "text-ada-001". El modelo ada tiene el costo de token más bajo.
model_engine = "text-davinci-003"
4. Cree un objeto, abra .api_key y almacene su clave API. Pegue su clave API entre las comillas.
openai.api_key = "YOUR API KEY HERE”
5. Cree una función, GPT() que tome la solicitud del usuario (pregunta) como argumento. Esto significa que podemos reutilizar la función para cualquier pregunta.
def GPT(query):
6. Cree un objeto de respuesta que pasará los detalles de nuestra solicitud a ChatGPT. Utiliza nuestro modelo elegido y la consulta para hacer la pregunta. Hemos establecido el gasto máximo de tokens en 1024, pero en realidad gastaremos mucho menos, por lo que esto se puede cambiar. La "temperatura" controla la creatividad de las respuestas. Cuanto más alto sea el valor, digamos 0,9, más intentará el modelo ser creativo. 0.5 es una buena mezcla de creatividad y hechos.
response = openai.Completion.create(
engine=model_engine,
prompt=query,
max_tokens=1024,
temperature=0.5,
)
7. Devuelva los datos de ChatGPT, eliminando el texto de respuesta y la cantidad de tokens utilizados. Los datos devueltos están en formato de diccionario/JSON, por lo que debemos apuntar específicamente a los datos correctos mediante claves. Estas claves devuelven los valores asociados.
return str.strip(response['choices'][0]['text']), response['usage']['total_tokens']
8. Cree una tupla y úsela para almacenar una lista de cadenas que se pueden usar para salir del chat. Las tuplas son inmutables, lo que significa que pueden crearse y destruirse, pero no actualizarse mediante código en ejecución. Hacen configuraciones perfectas para "establecer y olvidar".
exit_words = ("q","Q","quit","QUIT","EXIT")
9. Use un intento, seguido de un tiempo verdadero: para decirle a Python que intente ejecutar nuestro código y que lo haga para siempre.
try:
while True:
diez. Imprimir una instrucción para el usuarioen este caso como salir del chat.
print("Type q, Q, quit, QUIT or EXIT and press Enter to end the chat session")
11 Capture la consulta del usuario mediante un aviso personalizado y guárdela en un objeto denominado consulta.
query = input("What is your question?> ")
12 Use una prueba condicional para verificar si alguna de las palabras de salida solo está presente en la solicitud. Podemos usar estas palabras en una consulta, pero si son las únicas palabras, el chat terminará.
if query in exit_words:
13 Ponlo de modo que, si exit_words están presentes, el código imprimirá "TERMINAR CHAT" y luego use break para detener el código.
print("ENDING CHAT")
break
14 Crea otra condición. Esta condición siempre se ejecutará si no se encuentran exit_words.
else:
15. Ejecute la consulta ChatGPT y guarde la salida en dos objetos, res (respuesta) y uso (tokens usados).
(res, usage) = GPT(query)
dieciséis. Imprima la respuesta de ChatGPT en el shell de Python.
print(res)
17 Imprima 20 = en una fila para crear una barrera entre el texto ChatGPT, luego imprima la cantidad de tokens utilizados.
print("="*20)
print("You have used %s tokens" % usage)
print("="*20)
18 Cree un controlador de excepciones que se activará si el usuario presiona CTRL+C. Imprimirá un mensaje de salida en el shell de Python antes de que salga el código.
except KeyboardInterrupt:
print("\nExiting ChatGPT")
19 Guarde el código como ChatGPT-Chatbot.py y haga clic en Ejecutar para comenzar. Haga sus preguntas al chatbot y, cuando haya terminado, escriba una de las palabras de salida o presione CTRL+C para salir.
Lista completa de códigos.
import openai
model_engine = "text-davinci-003"
openai.api_key = "YOUR API KEY HERE"
def GPT(query):
response = openai.Completion.create(
engine=model_engine,
prompt=query,
max_tokens=1024,
temperature=0.5,
)
return str.strip(response['choices'][0]['text']), response['usage']['total_tokens']
exit_words = ("q","Q","quit","QUIT","EXIT")
try:
while True:
print("Type q, Q, quit, QUIT or EXIT and press Enter to end the chat session")
query = input("What is your question?> ")
if query in exit_words:
print("ENDING CHAT")
break
else:
(res, usage) = GPT(query)
print(res)
print("="*20)
print("You have used %s tokens" % usage)
print("="*20)
except KeyboardInterrupt:
print("\nExiting ChatGPT")
Deja una respuesta