64 lines
2.0 KiB
Python
64 lines
2.0 KiB
Python
import json
|
|
import os
|
|
import logging
|
|
import httpx
|
|
|
|
log = logging.getLogger(__name__)
|
|
|
|
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"))
|
|
|
|
|
|
def carregar_prompt_base() -> str:
|
|
caminho = os.path.join(os.path.dirname(__file__), "ordens12.json")
|
|
with open(caminho, "r", encoding="utf-8") as f:
|
|
dados = json.load(f)
|
|
if isinstance(dados, list) and len(dados) > 0:
|
|
return dados[0]
|
|
return ""
|
|
|
|
|
|
async def gerar_ordem_ia() -> str:
|
|
prompt_base = carregar_prompt_base()
|
|
|
|
if not OPENROUTER_API_KEY:
|
|
log.error("OPENROUTER_API_KEY nao configurada no .env")
|
|
return "[ERRO: API key nao configurada. Configure OPENROUTER_API_KEY no .env]"
|
|
|
|
headers = {
|
|
"Authorization": f"Bearer {OPENROUTER_API_KEY}",
|
|
"Content-Type": "application/json",
|
|
}
|
|
|
|
payload = {
|
|
"model": OPENROUTER_MODEL,
|
|
"messages": [
|
|
{
|
|
"role": "system",
|
|
"content": prompt_base,
|
|
},
|
|
{
|
|
"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.",
|
|
},
|
|
],
|
|
"max_tokens": 2048,
|
|
"temperature": 0.9,
|
|
}
|
|
|
|
try:
|
|
async with httpx.AsyncClient(timeout=OPENROUTER_TIMEOUT) as client:
|
|
resp = await client.post(
|
|
f"{OPENROUTER_BASE_URL}/chat/completions",
|
|
headers=headers,
|
|
json=payload,
|
|
)
|
|
resp.raise_for_status()
|
|
data = resp.json()
|
|
ordem = data["choices"][0]["message"]["content"].strip()
|
|
return ordem
|
|
except Exception as e:
|
|
log.error("Erro ao gerar ordem com IA: %s", e)
|
|
return f"[ERRO ao gerar ordem: {e}]" |