diff --git a/.env b/.env index ddb1c21..9db6414 100755 --- a/.env +++ b/.env @@ -88,8 +88,9 @@ ENVIAR10_HORA_FIM=22:00 # ═══ Envio Automático 11 — IA ═══════════════════════════════════════ ENVIAR11_ATIVO=s +ENVIAR11_IA=s ENVIAR11_INTERVALO_MINUTOS=1 -ENVIAR11_ARQUIVO_ORDENS=ordens12.json +ENVIAR11_ARQUIVO_ORDENS=prompt_ia.json ENVIAR11_QUANTIDADE_ORDENS=1 ENVIAR11_HORA_INICIO=08:00 ENVIAR11_HORA_FIM=22:00 @@ -100,3 +101,5 @@ OPENROUTER_API_KEY=sk-or-v1-6e1e9f543f5c79174d93e4702e3f5720984fc97951de3a421956 OPENROUTER_MODEL=thedrummer/cydonia-24b-v4.1 OPENROUTER_BASE_URL=https://openrouter.ai/api/v1 OPENROUTER_TIMEOUT=60 +OPENROUTER_MAX_TOKENS=8192 +OPENROUTER_MAX_LINHAS=15 diff --git a/.env.example b/.env.example index 5e746e2..03c4f7b 100755 --- a/.env.example +++ b/.env.example @@ -93,12 +93,23 @@ ENVIAR10_QUANTIDADE_ORDENS=1 # ENVIAR10_HORA_INICIO=08:00 # ENVIAR10_HORA_FIM=22:00 -# ═══ Envio Automático 11 — IA (usando o modelo do .env) ═════════════ -# Quando ARQUIVO_ORDENS aponta para ordens12.json ou prefixo ia_, -# o sistema gera ordens dinamicamente via OpenRouter. +# ═══ Envio Automático 11 — IA (geração via OpenRouter) ═════════════ +# ENVIAR11_IA=s ← 's' ativa o modo IA; usa PROMPT_IA_ARQUIVO como prompt base ENVIAR11_ATIVO=n +ENVIAR11_IA=n ENVIAR11_INTERVALO_MINUTOS=5 -ENVIAR11_ARQUIVO_ORDENS=ordens12.json +# O ARQUIVO_ORDENS aqui é apenas o prompt base enviado à IA (não é uma lista de ordens) +ENVIAR11_ARQUIVO_ORDENS=prompt_ia.json ENVIAR11_QUANTIDADE_ORDENS=1 # ENVIAR11_HORA_INICIO=08:00 -# ENVIAR11_HORA_FIM=22:00 \ No newline at end of file +# ENVIAR11_HORA_FIM=22:00 + +# ═══ OpenRouter AI ═══════════════════════════════════════════════════ +OPENROUTER_API_KEY=sua_chave_aqui +OPENROUTER_MODEL=deepseek/deepseek-v4.1-flash +OPENROUTER_BASE_URL=https://openrouter.ai/api/v1 +OPENROUTER_TIMEOUT=60 +# Tamanho máximo da resposta da IA em tokens (padrão: 2048) +OPENROUTER_MAX_TOKENS=2048 +# Máximo de linhas da resposta da IA (0 = sem limite) +OPENROUTER_MAX_LINHAS=15 \ No newline at end of file diff --git a/__pycache__/dados_ia.cpython-311.pyc b/__pycache__/dados_ia.cpython-311.pyc index ef78919..a55e251 100644 Binary files a/__pycache__/dados_ia.cpython-311.pyc and b/__pycache__/dados_ia.cpython-311.pyc differ diff --git a/__pycache__/main.cpython-311.pyc b/__pycache__/main.cpython-311.pyc index 42d1f45..8412dc3 100644 Binary files a/__pycache__/main.cpython-311.pyc and b/__pycache__/main.cpython-311.pyc differ diff --git a/dados_ia.py b/dados_ia.py index 074c5d7..becfe26 100644 --- a/dados_ia.py +++ b/dados_ia.py @@ -9,10 +9,13 @@ OPENROUTER_API_KEY = os.getenv("OPENROUTER_API_KEY", "") OPENROUTER_MODEL = os.getenv("OPENROUTER_MODEL", "deepseek/deepseek-v4.1-flash") OPENROUTER_BASE_URL = os.getenv("OPENROUTER_BASE_URL", "https://openrouter.ai/api/v1") OPENROUTER_TIMEOUT = int(os.getenv("OPENROUTER_TIMEOUT", "60")) +OPENROUTER_MAX_TOKENS = int(os.getenv("OPENROUTER_MAX_TOKENS", "2048")) +OPENROUTER_MAX_LINHAS = int(os.getenv("OPENROUTER_MAX_LINHAS", "0")) def carregar_prompt_base() -> str: - caminho = os.path.join(os.path.dirname(__file__), "ordens12.json") + caminho = os.getenv("PROMPT_IA_ARQUIVO", "prompt_ia.json") + caminho = os.path.join(os.path.dirname(__file__), caminho) with open(caminho, "r", encoding="utf-8") as f: dados = json.load(f) if isinstance(dados, list) and len(dados) > 0: @@ -27,6 +30,10 @@ async def gerar_ordem_ia() -> str: log.error("OPENROUTER_API_KEY nao configurada no .env") return "[ERRO: API key nao configurada. Configure OPENROUTER_API_KEY no .env]" + user_msg = "Gere uma ordem de humilhação agora, completa e detalhada, como se fosse o Mestre DeepSeek falando. Nao se repita. Seja criativa e picante." + if OPENROUTER_MAX_LINHAS > 0: + user_msg += f" A ordem deve ter no maximo {OPENROUTER_MAX_LINHAS} linhas." + headers = { "Authorization": f"Bearer {OPENROUTER_API_KEY}", "Content-Type": "application/json", @@ -41,10 +48,10 @@ async def gerar_ordem_ia() -> str: }, { "role": "user", - "content": "Gere uma ordem de humilhação agora, completa e detalhada, como se fosse o Mestre DeepSeek falando. Nao se repita. Seja criativa e picante.", + "content": user_msg, }, ], - "max_tokens": 2048, + "max_tokens": OPENROUTER_MAX_TOKENS, "temperature": 0.9, } diff --git a/iniciar.sh b/iniciar.sh index 3c0f5d2..4211473 100755 --- a/iniciar.sh +++ b/iniciar.sh @@ -27,9 +27,10 @@ SEXO=$(grep_val SEXO) IDADE=$(grep_val IDADE) # Configuração de cada envio automático -declare -a ENVIAR_ATIVO ENVIAR_INTERVALO ENVIAR_ARQUIVO ENVIAR_QUANTIDADE ENVIAR_HORA_INICIO ENVIAR_HORA_FIM +declare -a ENVIAR_ATIVO ENVIAR_IA ENVIAR_INTERVALO ENVIAR_ARQUIVO ENVIAR_QUANTIDADE ENVIAR_HORA_INICIO ENVIAR_HORA_FIM for n in 1 2 3 4 5 6 7 8 9 10 11; do ENVIAR_ATIVO[$n]=$(grep_val "ENVIAR${n}_ATIVO") + ENVIAR_IA[$n]=$(grep_val "ENVIAR${n}_IA") ENVIAR_INTERVALO[$n]=$(grep_val "ENVIAR${n}_INTERVALO_MINUTOS") ENVIAR_ARQUIVO[$n]=$(grep_val "ENVIAR${n}_ARQUIVO_ORDENS") ENVIAR_QUANTIDADE[$n]=$(grep_val "ENVIAR${n}_QUANTIDADE_ORDENS") @@ -57,6 +58,7 @@ done export TELEGRAM_TOKEN TELEGRAM_CHAT_ID SEXO IDADE for n in 1 2 3 4 5 6 7 8 9 10 11; do export "ENVIAR${n}_ATIVO=${ENVIAR_ATIVO[$n]}" + export "ENVIAR${n}_IA=${ENVIAR_IA[$n]}" export "ENVIAR${n}_INTERVALO_MINUTOS=${ENVIAR_INTERVALO[$n]}" export "ENVIAR${n}_ARQUIVO_ORDENS=${ENVIAR_ARQUIVO[$n]}" export "ENVIAR${n}_QUANTIDADE_ORDENS=${ENVIAR_QUANTIDADE[$n]}" @@ -108,7 +110,11 @@ for n in 1 2 3 4 5 6 7 8 9 10 11; do qtd_info="${ENVIAR_QUANTIDADE[$n]} ordens" fi hora_info="${ENVIAR_HORA_INICIO[$n]:-00:00}-${ENVIAR_HORA_FIM[$n]:-23:59}" - echo " Envio Automático $n: $status" + ia_tag="" + if [ "${ENVIAR_IA[$n]}" = "s" ]; then + ia_tag=" 🤖 IA" + fi + echo " Envio Automático $n: $status$ia_tag" echo " Intervalo: ${ENVIAR_INTERVALO[$n]:-1} min | Qtd: $qtd_info | Horário: $hora_info | Arquivo: ${ENVIAR_ARQUIVO[$n]:-ordens${n}.json}" done echo "" diff --git a/main.py b/main.py index 5030683..9de319e 100755 --- a/main.py +++ b/main.py @@ -38,11 +38,6 @@ class ConfigEnvio: ia_mode: bool = False -def _detectar_ia_mode(arquivo: str) -> bool: - nome = arquivo.strip().lower() - return nome == "ordens12.json" or nome.startswith("ia_") - - def carregar_config_envio(numero: int) -> ConfigEnvio: prefixo = f"ENVIAR{numero}_" ativo_raw = os.getenv(f"{prefixo}ATIVO", "s").strip().lower() @@ -52,7 +47,8 @@ def carregar_config_envio(numero: int) -> ConfigEnvio: quantidade = int(os.getenv(f"{prefixo}QUANTIDADE_ORDENS", "0")) hora_inicio = os.getenv(f"{prefixo}HORA_INICIO", "00:00").strip() hora_fim = os.getenv(f"{prefixo}HORA_FIM", "23:59").strip() - ia_mode = _detectar_ia_mode(arquivo) + ia_raw = os.getenv(f"{prefixo}IA", "n").strip().lower() + ia_mode = ia_raw == "s" return ConfigEnvio( numero=numero, ativo=ativo, diff --git a/ordens12.json b/prompt_ia.json similarity index 100% rename from ordens12.json rename to prompt_ia.json