Spaces:
Sleeping
Sleeping
File size: 2,401 Bytes
5ee9504 ec8945e ecf6a70 2d241c5 ec8945e 5ee9504 3019023 5ee9504 3019023 0945d5a 3019023 5ee9504 3019023 0945d5a 3019023 5ee9504 3019023 5ee9504 0945d5a 5ee9504 3019023 5ee9504 acf6305 3019023 5ee9504 3019023 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
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, )
|