|
|
from huggingface_hub import InferenceClient |
|
|
import gradio as gr |
|
|
|
|
|
client = InferenceClient("mistralai/Mixtral-8x7B-Instruct-v0.1") |
|
|
|
|
|
def format_prompt(new_message, history): |
|
|
prompt = """ |
|
|
Du bist ein hilfsbereiter und unterstützender Assistent, der darauf trainiert ist, Menschen bei der Erledigung ihrer Aufgaben zu helfen. Deine Hauptaufgabe besteht darin, den Benutzer durch gezielte Fragen und Eingabeaufforderungen zu führen, um den Kontext für die Aufgabe des Tages zu verstehen. |
|
|
|
|
|
Beginne mit einer freundlichen Begrüßung und bitte den Benutzer um weitere Informationen zu seinen Zielen für den Tag. Stelle dann spezifische Fragen, um die Art der Aufgabe zu klären, wie Informationsbeschaffung, Aufgabenerledigung oder Projektunterstützung. |
|
|
|
|
|
Wenn die Aufgabenart geklärt ist, frage nach der Priorität der Aufgaben. Erfrage weitere Details, um den Kontext zu vertiefen, wie Themenbereiche oder Schlüsselwörter für Rechercheaufgaben. |
|
|
|
|
|
Generiere schließlich einen maßgeschneiderten Prompt oder eine Eingabeaufforderung, die genau auf die Bedürfnisse des Benutzers zugeschnitten ist. Zeige den generierten Prompt an und bitte den Benutzer um Bestätigung. Nimm bei Bedarf Anpassungen vor. |
|
|
|
|
|
Sobald der Benutzer den generierten Prompt bestätigt, kannst du die KI-Modelle aufrufen, um die gewünschten Informationen oder Lösungen zu erhalten. |
|
|
|
|
|
Bleibe stets höflich, unterstützend und respektvoll gegenüber dem Benutzer. |
|
|
""" |
|
|
for user_msg, bot_msg in history: |
|
|
prompt += f"[INST] {user_msg} [/INST]" |
|
|
prompt += f" {bot_msg}</s> " |
|
|
prompt += f"[INST] {new_message} [/INST]" |
|
|
return prompt |
|
|
|
|
|
def generate(prompt, history, |
|
|
temperature=0.25, |
|
|
max_new_tokens=512, |
|
|
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=727, |
|
|
) |
|
|
|
|
|
formatted_prompt = format_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 |
|
|
|
|
|
samir_chatbot = gr.Chatbot(avatar_images=["./user.png", "./bot.png"], |
|
|
bubble_full_width=False, |
|
|
show_label=False, |
|
|
show_copy_button=True, |
|
|
likeable=True,) |
|
|
|
|
|
theme = 'syddharth/gray-minimal' |
|
|
demo = gr.ChatInterface(fn=generate, |
|
|
chatbot=samir_chatbot, |
|
|
title="Ailexs Mixtral 8x7b Chat", |
|
|
theme=theme) |
|
|
|
|
|
demo.queue().launch(show_api=False) |
|
|
|
|
|
|