Files
viralfactory/src/engines/ScriptEngine/ShowerThoughtsScriptEngine.py
2024-02-23 11:07:50 +01:00

38 lines
1.2 KiB
Python

import os
import gradio as gr
from .BaseScriptEngine import BaseScriptEngine
from ...utils.prompting import get_prompt
class ShowerThoughtsScriptEngine(BaseScriptEngine):
name = "Shower Thoughts"
description = "Generate a Shower Thoughts script"
num_options = 1
def __init__(self, options: list[list | tuple | str | int | float | bool | None]):
self.n_sentences = options[0]
super().__init__()
def generate(self):
sys_prompt, chat_prompt = get_prompt(
"shower_thoughts",
location=os.path.join(
os.path.dirname(os.path.abspath(__file__)), "prompts"
),
)
sys_prompt = sys_prompt.format(n_sentences=self.n_sentences)
chat_prompt = chat_prompt.format(n_sentences=self.n_sentences)
self.ctx.script = self.ctx.powerfulllmengine.generate(
system_prompt=sys_prompt,
chat_prompt=chat_prompt,
max_tokens=20 * self.n_sentences,
temperature=1.3,
json_mode=False,
).strip()
@classmethod
def get_options(cls) -> list:
return [gr.Number(label="Number of sentences", value=5, minimum=1)]