Spaces:
Runtime error
Runtime error
import openai | |
import numpy as np | |
import pandas as pd | |
from sentence_transformers import SentenceTransformer, CrossEncoder | |
import re | |
import gradio as gr | |
import json | |
import ast | |
from llm import OpenAILLM | |
from qa import QuestionAnswerer | |
df = pd.read_csv("carotid_embeddings_sentence_transformers_061123.csv") | |
df["embeddings"] = df.embeddings.apply(ast.literal_eval) | |
qa = QuestionAnswerer(df, SentenceTransformer('thenlper/gte-base'), OpenAILLM('gpt-3.5-turbo-1106'), CrossEncoder('cross-encoder/ms-marco-TinyBERT-L-2-v2')) | |
def gradio_answer(input): | |
return qa.answer_question(input, n=5) | |
desc_string = """ | |
In dieser Demo kannst du einer KI Fragen zum Inhalt der ['S3-Leitlinie Diagnostik, Therapie und Nachsorge der extracraniellen Carotisstenose'](https://register.awmf.org/de/leitlinien/detail/004-028) stellen. Ein paar Beispiel-Fragen findest du unten. | |
## Wie funktioniert das? | |
1. Die Frage wird durch ein neuronalen Netzwerk in eine Vektor-Repräsentation ('Embedding') umgewandelt. | |
2. Die Ähnlichkeit des 'Frage-Vektors' wird mit den genauso erzeugten Vektoren von Textpassagen der Leitlinie verglichen. | |
3. Ein ‚Large Language Model (LLM)‘ beantwortet nun mit Hilfe der ähnlichsten Textpassagen die gestellte Frage. | |
Diese Technik heißt [‚Retrieval-augmented Generation (RAG)'](https://research.ibm.com/blog/retrieval-augmented-generation-RAG). Hierdurch kann verhindert werden, dass LLMs Fakten einfach erfinden. | |
""" | |
demo = gr.Interface( | |
fn=gradio_answer, | |
inputs=gr.Textbox(lines=1, placeholder="Frage hier...", label="Frage"), | |
outputs=gr.Textbox(lines=4, placeholder="Antwort hier...", label="Antwort"), | |
title="🧠 Q&A S3 Leitlinie Carotisstenose", | |
description=desc_string, | |
examples=[ | |
"Welche Sensitivität hatte die Transcranielle Doppler-Sonographie (TCD) bei der Detektion eines perioperativen Schlaganfalls?", | |
"Ist eine ambulante Therapie der Carotisstenose mittels CEA oder CAS möglich und sinnvoll?", | |
"Wie viele zerebrale Ischämien in Deutschland werden durch >50%ige Stenosen oder Verschlüsse der extracraniellen A. carotis verursacht?", | |
"Welche Symptome können durch Stenosen der A. carotis verursacht werden?" | |
] | |
) | |
demo.launch() |