User Tools

Site Tools


comentarios_de_openai_a_partir_de_un_.csv

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
comentarios_de_openai_a_partir_de_un_.csv [2023/11/25 20:43] osocomentarios_de_openai_a_partir_de_un_.csv [2024/10/17 21:42] (current) – external edit 127.0.0.1
Line 15: Line 15:
 === Crear las variables de entorno durante la sesión === === Crear las variables de entorno durante la sesión ===
  
-</code>export OPENAI_API_KEY=sk-tuClaveSecretaAqui</code>+<code>export OPENAI_API_KEY=sk-tuClaveSecretaAqui</code>
  
 ==== Configuración Permanente de Variables de Entorno: ==== ==== Configuración Permanente de Variables de Entorno: ====
Line 31: Line 31:
 <code>env</code> <code>env</code>
  
-<insertar el script del main.py>+ 
 +==== El programa en sí ==== 
 + 
 +El código genera un comentario corto en base a las últimas 14 líneas de un archivo .csv con la cotización del dolar paralelo, que encuentra en internet (es de otro servicio que corre en otra VM y queda accesible desde internet). 
 + 
 +Lo piola es que uno podría por ejemplo pasarle otros resultados y decirle "redactame un párrafo en base a estos resultados" y enviarlo por mail. Lo interesante acá es poder hacer datos --> openai --> app 
 + 
 +Este es el código: 
 + 
 +<code python = main.py> 
 +import requests 
 +from openai import OpenAI 
 + 
 +client = OpenAI() 
 + 
 +# Obtener los últimos 14 valores del archivo CSV desde la URL 
 +url = "https://repo.facundoitest.space/usdPagano/historial.csv" 
 +response = requests.get(url) 
 +lines = response.text.splitlines()[-14:
 + 
 +# Formatear las líneas y truncar los números a un entero 
 +formatted_lines = [] 
 +for line in lines: 
 +    date, value = line.split(','
 +    # Truncar los números a enteros 
 +    value = int(float(value)) 
 +    formatted_line = f"{date},{value}" 
 +    formatted_lines.append(formatted_line) 
 + 
 +# Unir las líneas formateadas con punto y coma y espacio 
 +last_14_lines = "; ".join(formatted_lines) 
 + 
 +# Crear el prompt con el contenido del archivo CSV 
 +prompt = f"crea un breve comentario (menos de 140 caracteres) sobre el comportamiento de la devaluada moneda local (peso argentino) frente al dólar. En lo posible abusa de emojis y hashtags. Necesito que el sentimiento surja del valor más reciente, el de hoy, y que lo mencione en el mensaje, tipo 'wow, dolar a 1000, quien lo hubiera pensado'. Si la cotizacion baja, debería expresar cierto alivio y esperanza. Si la cotización sube, al contrario. Estos son los valores de la última semana {last_14_lines}" 
 + 
 +# Llamada a la API de OpenAI 
 +apiresponse = client.chat.completions.create( 
 +    model="gpt-3.5-turbo", 
 +    messages=[ 
 +        {"role": "system", "content": "You are a somewhat angry but hopeful Twitter user."}, 
 +        {"role": "user", "content": prompt} 
 +    ], 
 +    max_tokens=200,  # Ajusta este valor según tus necesidades 
 +
 +# Guardar la respuesta en un archivo de texto 
 +with open("output.txt", "w", encoding="utf-8") as file: 
 +    file.write(apiresponse.choices[0].message.content + '\n'
 +</code> 
 + 
 +<WRAP center round info 60%> 
 +''"role": "system"'' le da contexto al LLM de openai 
 +</WRAP> 
  
 === Ejecutar el script Python === === Ejecutar el script Python ===
  
 <code>python3 main.py</code> <code>python3 main.py</code>
 +
 +La respuesta se parece a esto:
 +
 +
 +<code>facundo@openai:~/weeklyPost$ cat output.txt</code>
 +
 +<WRAP center round box 100%>
 +¡El peso argentino sigue luchando contra el dólar! 😡 Hoy, la cotización sigue bajita, ¡un alivio y una esperanza para todos! 💪🇦🇷 #PesoArgentinoDevaluado #DólarEnDescenso 😌✨
 +</WRAP>
  
 ==== Configuración de Crontab: ==== ==== Configuración de Crontab: ====
Line 64: Line 125:
 ==== Integración con Telegram: ==== ==== Integración con Telegram: ====
  
-<code bash> +=== Crear el script para enviar mensajes a Telegram ===
-Crear el script para enviar mensajes a Telegram +
-nano sendmsg.sh +
-</code>+
  
 +<code>nano sendmsg.sh</code>
  
 **Contenido de ''sendmsg.sh'':** **Contenido de ''sendmsg.sh'':**
Line 83: Line 142:
 curl -s -X POST $URL -d chat_id=$ID -d text="$MSG" curl -s -X POST $URL -d chat_id=$ID -d text="$MSG"
 </code> </code>
 +
 +<WRAP center round info 60%>
 +
 +''$(cat /home/facundo/weeklyPost/output.txt)'' le pasa el contenido del archivo de texto a la variable.
 +</WRAP>
 +
 +<WRAP center round info 60%>
 +El parámetro ''?v=${current_date}-${current_time}'' es para que Telegram no traiga el thumbnail desde el caché y de esta forma lo fuerza a generarlo de nuevo. Podría tener un valor random. Es más práctico esto que generar el archivo con un nombre distinto cada vez. Puedo linkearlo como ''latest.jpg'' desde cualquier lado.
 +</WRAP>
  
  
comentarios_de_openai_a_partir_de_un_.csv.1700944994.txt.gz · Last modified: 2024/10/17 21:42 (external edit)