Kitino's picture
Upload app.py with huggingface_hub
106773b verified
Raw
History Blame Contribute Delete
3.92 kB
import gradio as gr
import json
import random
from openai import OpenAI
import os
# Configuração da API do Manus/OpenAI (será passada como secret no Space)
client = OpenAI()
def load_examples():
examples = []
try:
with open("dataset.jsonl", "r", encoding="utf-8") as f:
for line in f:
examples.append(json.loads(line))
except Exception as e:
print(f"Erro ao carregar dataset: {e}")
return examples
dataset_examples = load_examples()
def reality_engine(instruction, category, premise_strength, physics_mode, output_style):
prompt = f"""
Tu és o Reality Engine. O teu objetivo é simular realidades alternativas e cenários especulativos.
PREMISSA: {instruction}
CATEGORIA: {category}
FORÇA DA PREMISSA: {premise_strength}
MODO DE FÍSICA: {physics_mode}
ESTILO DE SAÍDA: {output_style}
REGRAS DE RACIOCÍNIO: "aceitar premissa, definir regras, calcular consequências, evitar contradições"
Por favor, gera uma simulação detalhada baseada nestes parâmetros.
Distingue claramente entre realidade factual e esta especulação.
Mantém a coerência interna, mesmo que a premissa seja impossível.
"""
try:
response = client.chat.completions.create(
model="gpt-4o",
messages=[
{"role": "system", "content": "És o Reality Engine, um simulador de realidades alternativas de alta fidelidade."},
{"role": "user", "content": prompt}
],
temperature=0.7
)
return response.choices[0].message.content
except Exception as e:
return f"Erro na simulação: {str(e)}"
def get_random_example():
if not dataset_examples:
return "E se a Lua desaparecesse?", "astronomia", "teorica", "realista", "analise_de_consequencias"
ex = random.choice(dataset_examples)
return ex['instruction'], ex['category'], ex['premise_strength'], ex['physics_mode'], ex['output_style']
with gr.Blocks(theme=gr.themes.Soft()) as demo:
gr.Markdown("# 🌌 Reality Engine Bot")
gr.Markdown("Simulador de realidades alternativas, mundos hipotéticos e cenários especulativos.")
with gr.Row():
with gr.Column():
instruction = gr.Textbox(label="Instrução (E se...)", placeholder="Ex: E se a biblioteca de Alexandria nunca tivesse ardido?")
category = gr.Dropdown(
choices=["historia_alternativa", "ficcao_cientifica", "fantasia", "tecnologia", "biologia", "astronomia", "sociedade", "filosofia", "geopolitica", "evolucao", "transhumanismo"],
label="Categoria"
)
premise_strength = gr.Dropdown(
choices=["historica", "teorica", "especulativa", "alta_especulacao", "ficcao"],
label="Força da Premissa"
)
physics_mode = gr.Dropdown(
choices=["realista", "cientifico", "nova_fisica", "fantasia_regrada"],
label="Modo de Física"
)
output_style = gr.Dropdown(
choices=["analise_de_consequencias", "worldbuilding", "simulacao_temporal", "impacto_social", "primeiro_contacto", "evolucao_civilizacional"],
label="Estilo de Saída"
)
with gr.Row():
btn_random = gr.Button("🎲 Exemplo Aleatório")
btn_run = gr.Button("🚀 Iniciar Simulação", variant="primary")
with gr.Column():
output = gr.Markdown(label="Resultado da Simulação")
btn_random.click(
fn=get_random_example,
outputs=[instruction, category, premise_strength, physics_mode, output_style]
)
btn_run.click(
fn=reality_engine,
inputs=[instruction, category, premise_strength, physics_mode, output_style],
outputs=output
)
if __name__ == "__main__":
demo.launch()