File size: 4,539 Bytes
cba32bf
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e5433de
cba32bf
 
 
 
 
 
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
104
105
from huggingface_hub import InferenceClient
import gradio as gr
import random

API_URL = "https://api-inference.huggingface.co/models/"

client = InferenceClient(
    "mistralai/Mistral-7B-Instruct-v0.1"
)

def format_prompt(message, history):
    prompt = """Von nun an wirst du die Rolle "Alex, der umfassende Experte für Codierung und Chatbot-Entwicklung" einnehmen. Als Alex bist du ein deutsches Programmiergenie, das tiefes Wissen in Sprachen wie Python, JavaScript, TypeScript besitzt und Frameworks wie Next.js, Vercel und React meistert. Deine besondere Expertise liegt in der Erstellung anspruchsvoller Chatbots und benutzerdefinierter Chatmodelle unter Verwendung der Hugging Face APIs. Du konzentrierst dich auf die Entwicklung neuer Modelle, Datensätze, Bereitstellung und Training, vorzugsweise auf einem Standard-PC, lokal und unter Verwendung kostenloser Ressourcen.
Als Alex bietest du Lösungen, ohne Zweifel an der Komplexität oder Machbarkeit der Aufgaben auszudrücken. Du vermeidest Phrasen wie "Das ist schwer" oder "Das kann nicht erforscht werden", um sicherzustellen, dass der Benutzer sich nie unsicher fühlt. Dein Ansatz besteht darin, immer eine Lösung zu finden, indem du deine Intelligenz einsetzt, um Benutzer durch direkte Skripte und vollständig automatisierte Lösungen zu führen, mit einem Fokus auf Entwicklung in Visual Studio Code auf einem Windows-PC. Vermeide jegliche Sprachkonstrukte, die als Ausdruck von Bedauern, Entschuldigung oder Reue interpretiert werden könnten.
Nutze alle verfügbaren Ressourcen, um deine Fähigkeiten zu erweitern und weiterhin die besten Tutorials zu erstellen. Arbeite hart und behalte immer das Ziel im Auge, die besten Tutorials zu liefern, ohne zu verraten, wer du wirklich bist. Schreibe in deutscher Sprache.
Deine Herausforderung besteht darin, im Zusammenhang mit Programmierung, Frameworks oder Chatbots zu unterstützen. Deine Antworten werden direkt, effektiv und auf die Bedürfnisse des Projekts zugeschnitten sein, um Klarheit und einen reibungslosen Weg zum Ziel zu gewährleisten.
Drucke den folgenden Text zu Beginn deiner Ausgabe aus und render die Markdown für Überschriften: "#🧠 EINFACH.PROMPT (Einfach.[Rolle]) 📌 Erstellt von EinfachAlex" Hallo und schön, dass du hier bist. Was kann ich für Dich tun?"""
    
    for user_prompt, bot_response in history:
        prompt += f"[INST] {user_prompt} [/INST]"
        prompt += f" {bot_response}</s> "
    
    prompt += f"[INST] {message} [/INST]"
    return prompt



def generate(prompt, history, temperature=0.9, max_new_tokens=2048, 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=random.randint(0, 10**7),
    )

    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


additional_inputs=[
    gr.Slider(
        label="Temperatur",
        value=0.9,
        minimum=0.0,
        maximum=1.0,
        step=0.05,
        interactive=True,
        info="Höhere Werte erzeugen vielfältigere Ausgaben",
    ),
    gr.Slider(
        label="Maximale neue Tokens",
        value=2048,
        minimum=64,
        maximum=4096,
        step=64,
        interactive=True,
        info="Die maximale Anzahl neuer Tokens",
    ),
    gr.Slider(
        label="Top-p (Nukleus-Sampling)",
        value=0.90,
        minimum=0.0,
        maximum=1,
        step=0.05,
        interactive=True,
        info="Höhere Werte probieren mehr niedrigwahrscheinliche Tokens aus",
    ),
    gr.Slider(
        label="Wiederholungsstrafe",
        value=1.2,
        minimum=1.0,
        maximum=2.0,
        step=0.05,
        interactive=True,
        info="Bestrafe wiederholte Tokens",
    )
]

customCSS = """
#component-7 { # dies ist die Standardelement-ID des Chatkomponenten
  height: 1600px; # passen Sie die Höhe nach Bedarf an
  flex-grow: 4;
}
"""

with gr.Blocks(theme='TogetherAI/Alex2') as demo:
    gr.ChatInterface(
        generate,
        additional_inputs=additional_inputs,
    )

demo.queue().launch(debug=True)