Spaces:
Sleeping
Sleeping
| 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, ) | |