Ejecutando Ventura 13.4 en Intel.
Escribí un script en Python que reemplaza el texto por la versión traducida. Se ve así:
import openai
import sys
# Leer la clave de la API
openai.api_key = 'Aquí-está-mi-clave-de-API'
# Obtener el texto seleccionado
selected_text = sys.stdin.read()
# Llamar a la API de OpenAI para traducir el texto
modelo = "gpt-3.5-turbo"
idioma = "Alemán"
respuesta = openai.ChatCompletion.create(
model=modelo,
messages=[
{
"role": "user",
"content": f"Traduce el siguiente texto al {idioma} sin cambiar el formato: {selected_text}",
}
]
)
# Obtener la respuesta de la API y eliminar los saltos de línea iniciales/finales
texto_traducido = response["choices"][0]["message"]["content"].strip()
# Reemplazar el texto seleccionado con el texto traducido
sys.stdout.write(texto_traducido)
Funciona perfectamente en Automator, si lo pruebo. Se ejecuta según lo esperado, si lo ejecuto a través del servicio cuando estoy escribiendo un texto en Apple Mail. También funciona dentro de Terminal. Pero no puedo hacer que funcione en ningún otro programa (por ejemplo, TextEdit o Word) fuera de estos dos. Intenté dar acceso completo al disco a Automator. También intenté configurar mi Ruta en .zshenv
:
¿El script de shell de Automator no conoce mi RUTA?
Sin embargo, si intento ejecutarlo en TextEdit siempre obtengo algo como esto:
La acción "Ejecutar script de shell" encontró un error: "Traceback (most
llamada reciente (última): Archivo
"/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/urllib3/connection.py",
línea 200, en _new_conn socket = connection.create_connection(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Archivo
"/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/urllib3/util/connection.py",
línea 85, en create_connection raise err Archivo
"/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/urllib3/util/connection.py",
línea 73, en create_connection socket.connect(sa) OSError: [Errno 9] Bad
descriptor de archivo
La excepción anterior fue la causa directa de la siguiente excepción:
llamada reciente (última): Archivo
"/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/urllib3/connectionpool.py",
línea 790, en urlopen respuesta = self._make_request(
^^^^^^^^^^^^^^^^^^^ Archivo
"/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/urllib3/connectionpool.py",
línea 491, en _make_request raise new_e Archivo
"/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/urllib3/connectionpool.py",
línea 467, en _make_request self._validate_conn(conn) Archivo
"/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/urllib3/connectionpool.py",
línea 1092, en _validate_conn conn.connect() Archivo
"/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/urllib3/connection.py",
línea 604, en connect self.socket = socket = self._new_conn()
^^^^^^^^^^^^^^^^ Archivo
"/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/urllib3/connection.py",
línea 215, en _new_conn raise NewConnectionError(
urllib3.exceptions.NewConnectionError:
: Error al
establecer una nueva conexión: [Errno 9] Bad
descriptor de archivo
También si intento ejecutar otro script usando zsh solo la situación es similar con este error:
La acción "Ejecutar script de shell" encontró un error: "gawk: /dev/fd/63:4045: fatal: no se puede abrir la tubería de doble vía `/inet/tcp/0/translate.googleapis.com/80' para entrada/salida: Descriptor de archivo incorrecto"
También intenté ejecutarlo a través de un script de Apple. Sin éxito. ¿Alguna recomendación de qué más podría intentar?