From 06df51abe9930c6ae40c82b65724cbea70e080bb Mon Sep 17 00:00:00 2001 From: Marco Costa Date: Sat, 10 Oct 2026 08:27:19 -0300 Subject: [PATCH] ytrtrt --- .env | 5 ++++- .env.example | 21 ++++++++++++++++----- __pycache__/dados_ia.cpython-311.pyc | Bin 3741 -> 4217 bytes __pycache__/main.cpython-311.pyc | Bin 13003 -> 12781 bytes dados_ia.py | 13 ++++++++++--- iniciar.sh | 10 ++++++++-- main.py | 8 ++------ ordens12.json => prompt_ia.json | 0 8 files changed, 40 insertions(+), 17 deletions(-) rename ordens12.json => prompt_ia.json (100%) 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 ef78919d9546719671919e002a80d4fae2fe1097..a55e251bce3708ad2a60914f665626064092b532 100644 GIT binary patch delta 1554 zcmZ`(O>7%g5PolW?Oog1^$-3FcA6#WPeMowX-ZStCbAPJF*HAQ(u#1v7{A4Jh~xC_ zHi=T3RstbfAwl#GvD#SVR0Iv85*GxwD7|p9k&(hmMZk$uiG(=7iMLMdGyz7QdEd^A z-pqVE>tfSivh=AaS^<>>`Mc?P%d+HW-hj((KY1CT*r>v3-iR84tjMgY=wc$VL7Tu`yz6 zJ!6e~BB2g7I{)%x?_du6>prob1abheh+8+^V`)vQJ8}x-p=Pf=(W(MjVWRe@_B=U8 zbCchh0Q3<>uD1J@suH9RCkWY#zw{`+G%m7J83^s;X0S6Fia}AErzGj#B6Ovea9VdT$OH zuGB{}w`Yo7tEWHdyVLhYPdU(C33NY5?WB-y?sLbpp0JJGuyJ8Kzu|&mJ9*6c;LpTt z%G{u13iWOQ;&#W7auAuGjNAptTx6Fhae0V%txi1vcR`Us0QZh19<`r2}usoZUGl|7?CMz!q@=SX6Nk@9Tb)l{$)=Nvs`D8|RTC)%A0xLdeXR~`><>0}T4!gnDcz)CoWZxq-r=lr&}V6No7t;XJ^|jx@~tq-%O~AE?iR;9M7mJe4O-KJ31}&0=Xvm8Ka0q zODAx=Isjd29H!2vsj3U)j`egq2OO_6H-{hb!NS$=dAY>PTY{tHj{R_QnA)9RS%`fg zkdpO`Z!6HcZDK`f8yLoB@mT+K1K)FBwc1K>>P2~=2W)sl=LU|jn=Ti9*gRq#IKgk8 zU=7>_4SceSd#sU8_8}uj+SrFJ(7U~grt_4YRC+dryU7Ky(b8oEj8C0h z6&ufDW6~;VI!j5~A=Mb|Gw=tspgQ~C!nsTqU7JyQ@ypal|ImQi2+6l%@y3=vP+$wu zLU=V=I(q)=`Eqcu5*#f1hbsP|67U=dtL0#SCD>o~4^;dEG`wx*p;Sn219}`Z?oQZg Ngy`|V26Iu`%Rg1FU_Sr= delta 1210 zcmZ`&O>7%Q6n;Cq<5}-|*NGkHw?P4lh}ASwD>bd!0E$S0Dpduk2NXDLjc4Q9t-aCg zwyCN$tppb&F4i2V)L8N<2$~acDhCub6<3frEfO3MS7fOd=mGJ@v6}>`pY+~*@6FE7 z``+w7Gwo^jOUJPQ@!jt~)beJ_9VdT7YxcL7xaB+RgxjAQAGm#6(~CLbM3zT zkW8EF8o(D2fxJgXNQcN>lGpp8Y?-4*WCFDQ8eQeuHUW5uwvQ%6_J9M#zzNrPjBOpi zLEFa}Xlju&hyZF#Uezz&9X`m!B+4B`M^6w_QQ=@NCfj(^hiLoY^tz##Fk`~$L_Z5~ z1$YVzWS8$af#7~4Jau}$76y$(6L;v%X#M0lxoC`0J0U?RuNt3akKs}mE&LJPJ&-n? zWWmqw>M!o9oTFdQ779xX`tE|Ube`?Lp`kB7KMP3;?Gv=89r-VrdtQ@i&NsT=mO;<)_)olJjqUcP3& zJ3Kka0~`l&qRHf`)T~w`WkF%#WDGZ z8OegRCf`rDXcbU0*|5CnJf4%V^0lB^_CuirPFUR!!&1c;FUvozw1BdP|CqM6tmBB*af-bba-7qjvk`^21T(@Y;? zO6}+3DJ9{lw^aA4C2;|hV`$-f(#o8b*E8oPy9AEaNSEr4+Xdz9biwM5z}VEck1{`L zcSmQI$6pnAk5A_?*rV2RmhEMA#dDhC`5qs)Rvdlrm6;V&e?m0mPfUuwI3!dR zLj6k#!wM_aMn%l4C|&WROPKIQVtQVqRQEkk%&D0a&iIX6;-b<;Q03HnO7vaPob1-X`OuXIx>&Angl0uKLoxuSMbP2uoD JC*H=*{sX3?`#b;u diff --git a/__pycache__/main.cpython-311.pyc b/__pycache__/main.cpython-311.pyc index 42d1f45cca01016156376f2c5a17a95799780ef3..8412dc3ec16c22da6d11a936762d24a2076cd747 100644 GIT binary patch delta 1219 zcmZ8gOK%%h6!x8X#`d_AIC0{Vq)8@rQg?9ckXGq~wkoA+0U;UMz=EjA8hj_tH1Gf>e!B4Fhekhp>ziW4uJrS)GdLUPy=(EAUG*66yUk{Xc+MF{ zeHitfsE_c+WNc#GkMSrUaMFB`G|px=40ix*i6ys=Hv4U9S(LVF{gMJ*%uVb#$udJ%Wmxse^5SARLJ5BVXJ*QeNhMY zzkdsV(aMTAmmE+tpDMgtEGGAhiNyHvR6E7v+l#O2t+ZTGLOa&(Xvf=XTWcrU$+rGw z&)p<$i+#II$E>V)CiQM2Ql2{*F;D!ODiyUz@q z1S>5}-AY9X8y1(`i@vDnxoo7lb`|Vp7{H8x&S45qFX|^~0!ho^Exngb8C~zca+Pb27yLEzC}rHb3drM zHmr~~MQ~8;$>-Cw3*-oF@p69T)kUH}K%2rG0v05A-K)7i7OvqqSU9k~x+A~RGGK}F z=-g3iDM0`HN83cHW>BvNXiE#qloW`~e1EP&sh!fO>b7m%hT8Q)QN4<9R>Qr8oW`z- zQ&xrD7uT)BnKhcA)$P`t0~Uj8BC?9=4HUOR?eUKlc3G_NZD!~~fK2UxB@b?hp?y1# z|L0JYI=xbJ7Fw?FNpCC#uF-@hLO{RJqe{k`w(G$iR33(l`_8eRJ#d~9rDbmtTNC%o zEAw*YgA`vOkft9Zc9_5*kQcj)7~O7=2Rut`lz{F?6mPirFHrqK7Q!SZjVCXFJ`(PT mjfo-sYorW&uo3<~af#)7nYLc|D~7}8B{}>b_J_A8E%pzJwlTB- delta 1369 zcmZ8gO>7%Q6y8~To!DDDj^n!d_g@lwNk~%;1*uLWXeu=-O;H1f=FqTsCXUm1*O^@> zAp|vnCF3@^tH}ItA*9BS%v|gHK9iES$ zW`Ot6>`9h+CiH-iqrL0WWS%wCzRNNu%MZyC%kP5qHB#>*5+xJf&~nZ<^0qwWHt2l5 zR$egO0B3fM8%6T3Gt9nc$(tPo1-`&HvBM63l8;(l}V z%7mo(#+Sn;r_8X9y)-y$nTG2t>r5^%FTpWvLl_L1gI2WT8IY2Q26F5S@yOdv0cFVo4Wg{F;w zJMdZYOS(hH%(XCILxBCF+; zYakvt=d~|nvMT=UuZ-cDanIGqYX--4xA`o4_Z?H`bj+|B=e4TM|Lcz%JiSz8Rl95& z+yG~I0b3Zt6xRn53clUP&i4ZsNKE6GQ1@E)AzB-vdvK}U3sgY9hTwI$e&59H!Pb*$ z6jKP^t@E;*K#Hw&{c~k_iFn4`>%Z4(EZ@tU?+S9XD|81qfnojb 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