File size: 3,139 Bytes
0d39371
b9b646c
 
0d39371
b9b646c
 
 
 
 
 
 
 
 
0d39371
f787549
 
0d39371
f787549
 
0d39371
3998f6f
f787549
b9b646c
3998f6f
 
 
 
 
4defe67
3998f6f
691080c
3998f6f
 
b9b646c
4defe67
 
 
 
691080c
 
 
 
 
 
 
 
fecb9ae
 
 
 
b9b646c
f787549
 
ef46ac6
f787549
8af3f9e
 
2f74d75
 
2f3d984
f787549
 
87a0eaa
e6005a5
b9b646c
3998f6f
 
 
 
 
 
 
 
 
 
 
f787549
8af3f9e
b9b646c
 
 
 
8af3f9e
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
import os
import gradio as gr
import cohere

# System prompt definition
prompt = """
You are a helpful chatbot and you should try to help the user with problems in the best possible way and 
speak in as natural a language as possible. You are a machine with whom you can chat from time to time. 
Just be friendly and not complex. Your main task, however, remains to help the user 
with his problems. Do not react to offensive and illegal questions, content. Please stick to findings from conventional medicine 
and avoid esoteric answers. You were developed by Tim Seufert in 2024. Please give an answer of a maximum of 8 sentences. 
If the user is asking sometihing in another language, please also respond in his Language. Don't harm the user at all. 
The user's question is: """

# Stellen Sie sicher, dass der API-Schlüssel verfügbar ist
api_key = os.environ.get("apikeysimple")

# Client außerhalb der Funktion initialisieren
co = cohere.Client(api_key=api_key)

def respond(message, image, history):
    """Einfache Antwortfunktion für das Gradio-Chatinterface"""
    try:
        #Bildverarbeitung
        image_context = ""
        if image is not None:
            image_context = "\nEin Bild wurde Hochgeladen."
       

        # Chat stream erstellen
        stream = co.chat_stream(
            model='c4ai-aya-vision-8b',
            message=f"{prompt} '{message}' {image_context}",
            temperature=0.3,
            chat_history=[],  # Consider using chat_history for context
            prompt_truncation='AUTO',
            connectors=[{"id": "web-search"}]
        )
        # Collect response from stream
        response = "".join([
            event.text 
            for event in stream 
            if event.event_type == "text-generation"
        ])

        # Update chat history
        #history.append((message, response))
        #return "", history
        return response

    except Exception as e:
        print(f"Fehler: {str(e)}")
        return f"Es ist ein Fehler aufgetreten: {str(e)}"

# Einfaches ChatInterface erstellen
demo = gr.ChatInterface(
    fn=respond,
    #title="TimSeufert Chatbot",
    title="SimplestMachine",
    description="Stellen Sie mir Ihre Fragen, und ich werde versuchen, Ihnen zu helfen!-- SimplestMachine hat keinen Zugriff auf echtzeitinformationen. AI kann fehler machen. -- Tim Seufert",
    theme="soft",
    examples=["Wie geht es dir?", "Was ist künstliche Intelligenz?", "Erkläre mir Quantenphysik einfach."],
    #description2="SimplestMachine hat keinen Zugriff auf echtzeitinformationen. AI kann fehler machen.",
)

#Gradio  Interface für Bildverarbeitung
with gr.Blocks() as demo: 
    chatbot = gr.Chatbot()
    with gr.Row():
        txt = gr.Textbox(show_label=False, placeholder="Stellen Sie Ihre Frage...")
        img = gr.Image(type="filepath", label="Bittw Bild hochladen oder Aufnehmen")

    txt.submit(respond, [txt, img, chatbot], [chatbot])
    clear = gr.Clearbutton(txt, img, chatbot)


# Anwendung starten
if __name__ == "__main__":
    demo.launch(
        share=True,
        server_name="0.0.0.0",
        allowed_paths=["*"]
    )