File size: 1,772 Bytes
60b7bd7 568dd36 ac264f6 568dd36 2ddd03c ac264f6 568dd36 ac264f6 568dd36 ac264f6 568dd36 ac264f6 568dd36 ac264f6 568dd36 ac264f6 |
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 |
import gradio as gr
import requests
import os
# --- Flowise endpoint ---
# Nếu bạn chạy Flowise cục bộ: ngrok http 3000
FLOWISE_API = os.getenv("FLOWISE_API", "https://kimberlee-homonymous-zora.ngrok-free.dev/api/v1/prediction/c7fbe69c-9c1e-45f8-8e94-c2c619886cae")
def chat_with_bot(message, history):
"""
Gửi câu hỏi người dùng đến Flowise API và nhận câu trả lời.
"""
payload = {"question": message}
try:
response = requests.post(FLOWISE_API, json=payload, timeout=60)
data = response.json()
answer = data.get("text", "Keine Antwort gefunden.")
sources = data.get("sourceDocuments", [])
if sources:
refs = "\n\n**Quellen:**\n" + "\n".join([
f"- {src.get('metadata', {}).get('source', 'Unbekannt')}"
for src in sources
])
else:
refs = ""
return answer + refs
except Exception as e:
return f"Fehler: {e}"
with gr.Blocks(theme=gr.themes.Soft()) as demo:
gr.Markdown("# 🤖 Chatbot für Prüfungsrecht")
gr.Markdown("Fragen Sie zur Prüfungsordnung oder zum Hochschulgesetz NRW. "
"Der Chatbot zitiert direkt aus den Quellen (PDF & Webseite).")
chat = gr.ChatInterface(
fn=chat_with_bot,
title="Prüfungsrecht RAG-Chatbot",
examples=[
"Was steht in §10 über Wiederholungsprüfungen?",
"Welche Regel gilt laut Hochschulgesetz für Prüfungsanspruch?",
]
)
gr.HTML("""
<h3>📄 Quellen anzeigen</h3>
<iframe src="https://recht.nrw.de/lmi/owa/br_text_anzeigen?v_id=10000000000000000654" width="100%" height="400"></iframe>
""")
if __name__ == "__main__":
demo.launch()
|