This commit is contained in:
2026-10-10 08:27:19 -03:00
parent fa5e0fa156
commit 06df51abe9
8 changed files with 40 additions and 17 deletions
+4 -1
View File
@@ -88,8 +88,9 @@ ENVIAR10_HORA_FIM=22:00
# ═══ Envio Automático 11 — IA ═══════════════════════════════════════ # ═══ Envio Automático 11 — IA ═══════════════════════════════════════
ENVIAR11_ATIVO=s ENVIAR11_ATIVO=s
ENVIAR11_IA=s
ENVIAR11_INTERVALO_MINUTOS=1 ENVIAR11_INTERVALO_MINUTOS=1
ENVIAR11_ARQUIVO_ORDENS=ordens12.json ENVIAR11_ARQUIVO_ORDENS=prompt_ia.json
ENVIAR11_QUANTIDADE_ORDENS=1 ENVIAR11_QUANTIDADE_ORDENS=1
ENVIAR11_HORA_INICIO=08:00 ENVIAR11_HORA_INICIO=08:00
ENVIAR11_HORA_FIM=22: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_MODEL=thedrummer/cydonia-24b-v4.1
OPENROUTER_BASE_URL=https://openrouter.ai/api/v1 OPENROUTER_BASE_URL=https://openrouter.ai/api/v1
OPENROUTER_TIMEOUT=60 OPENROUTER_TIMEOUT=60
OPENROUTER_MAX_TOKENS=8192
OPENROUTER_MAX_LINHAS=15
+16 -5
View File
@@ -93,12 +93,23 @@ ENVIAR10_QUANTIDADE_ORDENS=1
# ENVIAR10_HORA_INICIO=08:00 # ENVIAR10_HORA_INICIO=08:00
# ENVIAR10_HORA_FIM=22:00 # ENVIAR10_HORA_FIM=22:00
# ═══ Envio Automático 11 — IA (usando o modelo do .env) ═════════════ # ═══ Envio Automático 11 — IA (geração via OpenRouter) ═════════════
# Quando ARQUIVO_ORDENS aponta para ordens12.json ou prefixo ia_, # ENVIAR11_IA=s ← 's' ativa o modo IA; usa PROMPT_IA_ARQUIVO como prompt base
# o sistema gera ordens dinamicamente via OpenRouter.
ENVIAR11_ATIVO=n ENVIAR11_ATIVO=n
ENVIAR11_IA=n
ENVIAR11_INTERVALO_MINUTOS=5 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_QUANTIDADE_ORDENS=1
# ENVIAR11_HORA_INICIO=08:00 # ENVIAR11_HORA_INICIO=08:00
# ENVIAR11_HORA_FIM=22:00 # 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
Binary file not shown.
Binary file not shown.
+10 -3
View File
@@ -9,10 +9,13 @@ OPENROUTER_API_KEY = os.getenv("OPENROUTER_API_KEY", "")
OPENROUTER_MODEL = os.getenv("OPENROUTER_MODEL", "deepseek/deepseek-v4.1-flash") 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_BASE_URL = os.getenv("OPENROUTER_BASE_URL", "https://openrouter.ai/api/v1")
OPENROUTER_TIMEOUT = int(os.getenv("OPENROUTER_TIMEOUT", "60")) 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: 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: with open(caminho, "r", encoding="utf-8") as f:
dados = json.load(f) dados = json.load(f)
if isinstance(dados, list) and len(dados) > 0: 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") log.error("OPENROUTER_API_KEY nao configurada no .env")
return "[ERRO: API key nao configurada. Configure OPENROUTER_API_KEY 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 = { headers = {
"Authorization": f"Bearer {OPENROUTER_API_KEY}", "Authorization": f"Bearer {OPENROUTER_API_KEY}",
"Content-Type": "application/json", "Content-Type": "application/json",
@@ -41,10 +48,10 @@ async def gerar_ordem_ia() -> str:
}, },
{ {
"role": "user", "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, "temperature": 0.9,
} }
+8 -2
View File
@@ -27,9 +27,10 @@ SEXO=$(grep_val SEXO)
IDADE=$(grep_val IDADE) IDADE=$(grep_val IDADE)
# Configuração de cada envio automático # 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 for n in 1 2 3 4 5 6 7 8 9 10 11; do
ENVIAR_ATIVO[$n]=$(grep_val "ENVIAR${n}_ATIVO") 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_INTERVALO[$n]=$(grep_val "ENVIAR${n}_INTERVALO_MINUTOS")
ENVIAR_ARQUIVO[$n]=$(grep_val "ENVIAR${n}_ARQUIVO_ORDENS") ENVIAR_ARQUIVO[$n]=$(grep_val "ENVIAR${n}_ARQUIVO_ORDENS")
ENVIAR_QUANTIDADE[$n]=$(grep_val "ENVIAR${n}_QUANTIDADE_ORDENS") ENVIAR_QUANTIDADE[$n]=$(grep_val "ENVIAR${n}_QUANTIDADE_ORDENS")
@@ -57,6 +58,7 @@ done
export TELEGRAM_TOKEN TELEGRAM_CHAT_ID SEXO IDADE export TELEGRAM_TOKEN TELEGRAM_CHAT_ID SEXO IDADE
for n in 1 2 3 4 5 6 7 8 9 10 11; do 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}_ATIVO=${ENVIAR_ATIVO[$n]}"
export "ENVIAR${n}_IA=${ENVIAR_IA[$n]}"
export "ENVIAR${n}_INTERVALO_MINUTOS=${ENVIAR_INTERVALO[$n]}" export "ENVIAR${n}_INTERVALO_MINUTOS=${ENVIAR_INTERVALO[$n]}"
export "ENVIAR${n}_ARQUIVO_ORDENS=${ENVIAR_ARQUIVO[$n]}" export "ENVIAR${n}_ARQUIVO_ORDENS=${ENVIAR_ARQUIVO[$n]}"
export "ENVIAR${n}_QUANTIDADE_ORDENS=${ENVIAR_QUANTIDADE[$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" qtd_info="${ENVIAR_QUANTIDADE[$n]} ordens"
fi fi
hora_info="${ENVIAR_HORA_INICIO[$n]:-00:00}-${ENVIAR_HORA_FIM[$n]:-23:59}" 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}" echo " Intervalo: ${ENVIAR_INTERVALO[$n]:-1} min | Qtd: $qtd_info | Horário: $hora_info | Arquivo: ${ENVIAR_ARQUIVO[$n]:-ordens${n}.json}"
done done
echo "" echo ""
+2 -6
View File
@@ -38,11 +38,6 @@ class ConfigEnvio:
ia_mode: bool = False 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: def carregar_config_envio(numero: int) -> ConfigEnvio:
prefixo = f"ENVIAR{numero}_" prefixo = f"ENVIAR{numero}_"
ativo_raw = os.getenv(f"{prefixo}ATIVO", "s").strip().lower() 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")) quantidade = int(os.getenv(f"{prefixo}QUANTIDADE_ORDENS", "0"))
hora_inicio = os.getenv(f"{prefixo}HORA_INICIO", "00:00").strip() hora_inicio = os.getenv(f"{prefixo}HORA_INICIO", "00:00").strip()
hora_fim = os.getenv(f"{prefixo}HORA_FIM", "23:59").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( return ConfigEnvio(
numero=numero, numero=numero,
ativo=ativo, ativo=ativo,
View File