API-Verbindungen Interface (Gradio)
ManEs kannist möglich schnell mit Python und Gradio leicht einen Interface zu bauen um die API-Schnittstelle zu der KI-Toolbox zu nutzen.
Hier kann man ein Beispiel sehen:
Alles zusammen sieht so aus:Code:
import gradio as gr
import os
import requests
import json
def generate_chat_response(user_message):
url = "https://ki-toolbox.tu-braunschweig.de/api/v1/chat/send"
api_key = os.getenv("API_KEY")
headers = {
"Accept": "application/json",
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json"
}
data = {
"thread": null,
"prompt": "Hey, this is going to be shown on TV. Is there anything you want to say?",user_message,
"model": "gpt-4o"
}
# Sending the POST request
response = requests.post(url, headers=headers, data=json.dumps(data))
if response.status_code == 200:
# If the request was successful, return the reply from the model
resultfinal_response = {}
for line in response.json(iter_lines(decode_unicode=True):
chunk = json.loads(line)
if chunk.get("type") == "done":
final_response = chunk
break
return result.final_response.get('choices'"response", [{}])[0].get('message', {}).get('content', 'No response content found.'"")
else:
# If there was an error, return the status code and error message
return f"Error: {response.status_code}, {response.text}"
demo = gr.Interface(
fn=generate_chat_response,
inputs=gr.Textbox(label="Prompt", lines=10),
outputs=gr.Textbox(label="Antwort", lines=30),
title="Chatbot",
description="Hier können Sie den Chatbot eine Frage stellen:",
)
demo.launch()
Zeilen 1 - 4: nötige Imports
Zeile 7: hier kann die API-Adresse eingegeben werden
Zeile 8: der API-Schlüssel wird aus den environment Variablen geladen (vorher muss der Schlüssel exportiert werden, z.B. mit dem Kommando "export API_KEY=<API-Schlüssel>"
Zeilen 10 - 14: Headers (nach Bedarf anpassen)
Zeilen 16 - 19: Request Body (nach Bedarf anpassen)
Zeilen 21 - 37: Den Response einlesen und bearbeiten (nach Bedarf anpassen)
Zeilen 39 - 45: Interface (nach Bedarf anpassen und erweitern, z.B. mehr Felder hinzufügen)