stats_generator / app.py
DviantDses's picture
Update app.py
3019023 verified
import gradio as gr
from huggingface_hub import InferenceClient
MODEL = "mlabonne/gemma-3-27b-it-abliterated:featherless-ai"
SYSTEM_PROMPT = """
You are an erotic writer assistant, who responds to the user requests in plain text, not markdown
Your responses are very short and direct
Your responses must be worded as if they were the statistics in an RPG game, with item and character descriptions as if they were part of the game
"""
DEFAULT_TOKENS = 300
DEFAULT_TEMPERATURE = 0.7
DEFAULT_TOP_P = 0.95
def respond(
message,
history: list[dict[str, str]],
system_message,
max_tokens,
temperature,
top_p,
hf_token: gr.OAuthToken,
):
"""
For more information on `huggingface_hub` Inference API support, please check the docs: https://huggingface.co/docs/huggingface_hub/v0.22.2/en/guides/inference
"""
client = InferenceClient(token=hf_token.token, model=MODEL)
messages = [{"role": "system", "content": system_message}]
messages.extend(history)
messages.append({"role": "user", "content": message})
completion = client.chat_completion(
messages,
max_tokens=max_tokens,
stream=False,
temperature=temperature,
top_p=top_p,
)
for choice in completion.choices:
response = choice.message.content
if response:
response = response.replace("*", "").replace("_", "")
yield response
"""
For information on how to customize the ChatInterface, peruse the gradio docs: https://www.gradio.app/docs/chatinterface
"""
chatbot = gr.ChatInterface(
respond,
type="messages",
additional_inputs=[
gr.Textbox(value=SYSTEM_PROMPT, label="System message"),
gr.Slider(minimum=1, maximum=2048, value=DEFAULT_TOKENS, step=1, label="Max new tokens"),
gr.Slider(minimum=0.1, maximum=4.0, value=DEFAULT_TEMPERATURE, step=0.1, label="Temperature"),
gr.Slider(
minimum=0.1,
maximum=1.0,
value=DEFAULT_TOP_P,
step=0.05,
label="Top-p (nucleus sampling)",
),
],
# examples=[
# [
# "Provide the stats of the female workers in the local town's brothel, these stats refer to the number of sexual acts (vaginal, anal, etc) executed by each person and their profficiency at it",
# SYSTEM_PROMPT,
# DEFAULT_TOKENS,
# DEFAULT_TEMPERATURE,
# DEFAULT_TOP_P,
# ],
# ],
)
with gr.Blocks() as demo:
with gr.Sidebar():
gr.LoginButton()
chatbot.render()
if __name__ == "__main__":
demo.launch(ssr_mode=False, )