Spaces:
Runtime error
Runtime error
File size: 2,355 Bytes
86cf89c 2f68a4d 86cf89c 2d100fa 86cf89c 2d100fa 86cf89c 2f68a4d 7cdb4a4 2f68a4d 7cdb4a4 2f68a4d 86cf89c 2f68a4d 86cf89c 2d100fa 2f68a4d 86cf89c 90bb6d8 2f68a4d 2d100fa 2f68a4d 2d100fa 90bb6d8 2f68a4d 2d100fa 7cdb4a4 86cf89c 2d100fa 2f68a4d 86cf89c 2d100fa 7b77c74 86cf89c 2f68a4d 2d100fa |
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 |
import json
from huggingface_hub import InferenceClient
import gradio as gr
import os
# Laden der Prompts aus der JSON-Datei
def load_prompts_from_json(file_path):
with open(file_path, 'r') as file:
return json.load(file)
# Laden der Prompts aus 'prompts.json'
prompts = load_prompts_from_json('prompts.json')
# Inference client
client = InferenceClient("mistralai/Mixtral-8x7B-Instruct-v0.1")
# Secret prompt from environment variable
secret_prompt = os.getenv("SECRET_PROMPT")
def format_prompt(new_message, history, prompt_type='default'):
prompt = prompts.get(prompt_type, secret_prompt)
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, prompt_type='default'):
# Konfiguration der Parameter
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, prompt_type)
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, history + [(prompt, output)] # Speichere die Konversation
# Chatbot ohne Avatare und mit transparentem Design
samir_chatbot = gr.Chatbot(bubble_full_width=True, show_label=False, show_copy_button=False, likeable=False)
# Dropdown für Prompt-Typen
prompt_type_dropdown = gr.Dropdown(choices=list(prompts.keys()), label="Prompt Type", value='default')
# Minimalistisches Theme und Gradio Demo Konfiguration
theme = 'syddharth/gray-minimal'
demo = gr.Interface(
fn=generate,
inputs=[
gr.Textbox(lines=2, label="Eingabe"),
"state" # State input for conversation history
],
outputs=[samir_chatbot],
title="Tutorial Master",
theme=theme
)
# Launch the demo with the queue
demo.queue().launch(show_api=False) |