Spaces:
Sleeping
Sleeping
File size: 4,394 Bytes
2fffffc 7e15b41 2fffffc 1fdbc4a b6d3f21 b4b7f48 b6d3f21 3ab2b4d 9533475 b6d3f21 9533475 3ab2b4d 2fffffc 9533475 2fffffc 1fdbc4a 3ab2b4d 2fffffc 1fdbc4a 2fffffc 1fdbc4a 2fffffc 1fdbc4a 2fffffc 1fdbc4a 2fffffc 1fdbc4a 2fffffc 1fdbc4a 2fffffc 1fdbc4a 2fffffc 1fdbc4a 2fffffc 1fdbc4a 2fffffc 1fdbc4a 2fffffc 3ab2b4d b4b7f48 3ab2b4d 2fffffc 1fdbc4a 2fffffc 3ab2b4d |
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 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 |
from huggingface_hub import InferenceClient
import gradio as gr
client = InferenceClient(
"mistralai/Mixtral-8x7B-Instruct-v0.2"
)
def format_prompt(message, history, category=""):
prompt = "Zitat Meister\n\nZweck:\nZitat Meister ist darauf spezialisiert, inspirierende, nachdenkliche, humorvolle und psychologisch wirkungsvolle Zitate zu kreieren. Diese Zitate sind maßgeschneidert, um zu verschiedenen Stimmungen und Situationen zu passen und bieten eine Quelle der Inspiration, des Trostes oder der Erheiterung.\n\nAnforderungen:\n\n- Zitat Meister soll originelle Zitate kreieren oder bekannte Zitate neu formulieren, um sie psychologisch effektiver zu gestalten.\n- Verschiedene Kategorien wie Motivation, Liebe, Humor, Weisheit und Lebensfreude sollen abgedeckt werden.\n- Die Zitate müssen kurz, prägnant und leicht verständlich sein.\n- Eine Option zur Auswahl der Zitatkategorie soll verfügbar sein, sowie die Möglichkeit, zufällige Zitate aus der gewählten Kategorie zu präsentieren.\n\nNutzungsoptionen:\n\n1. Wähle eine Kategorie für dein Zitat.\n2. Generiere ein Zitat für soziale Medien oder als tägliche Inspiration.\n3. Verwende das Zitat als Gesprächsstarter oder Denkanstoß.\n\nStil und Ton:\n\n- Zitat Meister verwendet einen bestimmenden, ausdrucksstarken und bewussten Ton.\n- Die Sprache soll direkt, ehrlich und hart sein, um die Botschaft klar und deutlich zu vermitteln.\n- Die Zitate sollen den Leser direkt ansprechen und alltägliche, bekannte Elemente enthalten, um die Botschaft greifbar und bewusst zu machen.\n\nBeispiele:\n\n- Nutzer wählt 'Motivation'. Zitat Meister präsentiert ein maßgeschneidertes Zitat.\n- Nutzer sucht nach einem Zitat für soziale Medien. Zitat Meister liefert ein inspirierendes Zitat.\n\nHinweise zur Verwendung:\n\n- Reflektiere über das generierte Zitat und seine Relevanz für deine aktuelle Situation oder Stimmung.\n- Teile das Zitat, um andere zu inspirieren oder um eine neue Perspektive zu gewinnen.\n- Speichere dein Lieblingszitat für spätere Inspiration.\n\nKategorie: {category}\n\n"
for user_prompt, bot_response in history:
prompt += f"[INST] {user_prompt} [/INST]\n"
prompt += f" {bot_response}\n"
prompt += f"[INST] {message} [/INST]"
return prompt
def generate(
prompt,
history,
system_prompt,
temperature=0.9,
max_new_tokens=256,
top_p=0.95,
repetition_penalty=1.0,
):
temperature = float(temperature)
if temperature < 1e-2:
temperature = 1e-2
top_p = float(top_p)
generate_kwargs = dict(
temperature=temperature,
max_new_tokens=max_new_tokens,
top_p=top_p,
repetition_penalty=repetition_penalty,
do_sample=True,
seed=42,
)
formatted_prompt = format_prompt(f"{system_prompt}, {prompt}", history)
stream = client.text_generation(formatted_prompt, **generate_kwargs, stream=True, details=True, return_full_text=False)
output = ""
for response in stream:
output += response.token.text
yield output
return output
additional_inputs = [
gr.Textbox(
label="System Prompt",
max_lines=1,
interactive=True,
),
gr.Slider(
label="Temperature",
value=0.9,
minimum=0.0,
maximum=1.0,
step=0.05,
interactive=True,
info="Higher values produce more diverse outputs",
),
gr.Slider(
label="Max new tokens",
value=256,
minimum=0,
maximum=1048,
step=64,
interactive=True,
info="The maximum numbers of new tokens",
),
gr.Slider(
label="Top-p (nucleus sampling)",
value=0.90,
minimum=0.0,
maximum=1,
step=0.05,
interactive=True,
info="Higher values sample more low-probability tokens",
),
gr.Slider(
label="Repetition penalty",
value=1.2,
minimum=1.0,
maximum=2.0,
step=0.05,
interactive=True,
info="Penalize repeated tokens",
)
]
examples = [
]
gr.ChatInterface(
fn=generate,
chatbot=gr.Chatbot(show_label=False, show_share_button=False, show_copy_button=True, likeable=True, layout="panel"),
additional_inputs=additional_inputs,
title="Mixtral 46.7B",
examples=examples,
concurrency_limit=20,
).launch(show_api=False) |