Spaces:
Sleeping
Sleeping
Create app.py
Browse files
app.py
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import gradio as gr
|
| 2 |
+
from ner_logic import ner_pipe, get_wiki_summary, refine_labels_batch
|
| 3 |
+
from ui_modules import create_ui_layout, format_log_entry
|
| 4 |
+
|
| 5 |
+
def process_ner(text):
|
| 6 |
+
current_logs = ["🚀 <b>Sistem Başlatıldı...</b>"]
|
| 7 |
+
final_results = []
|
| 8 |
+
misc_buffer = []
|
| 9 |
+
|
| 10 |
+
# 1. Aşama: NER ve Wiki
|
| 11 |
+
initial_results = ner_pipe(text)
|
| 12 |
+
for entity in initial_results:
|
| 13 |
+
word = entity['word'].replace(" ", " ").strip()
|
| 14 |
+
label = entity['entity_group']
|
| 15 |
+
|
| 16 |
+
if label in ["PER", "ORG", "LOC"]:
|
| 17 |
+
final_results.append({"Varlık": word, "İlk": label, "Nihai": label, "Kaynak": "Model"})
|
| 18 |
+
elif label == "MISC":
|
| 19 |
+
wiki_text = get_wiki_summary(word)
|
| 20 |
+
current_logs.append(format_log_entry("wiki", word, wiki_text or "Bilgi yok."))
|
| 21 |
+
misc_buffer.append({"word": word, "wiki": wiki_text or "Bilgi yok."})
|
| 22 |
+
yield "<br>".join(current_logs), [[r["Varlık"], r["İlk"], r["Nihai"], r["Kaynak"]] for r in final_results]
|
| 23 |
+
|
| 24 |
+
# 2. Aşama: Batch CoT
|
| 25 |
+
if misc_buffer:
|
| 26 |
+
current_logs.append("🧠 <b>Toplu CoT Analizi Yapılıyor...</b>")
|
| 27 |
+
llm_responses = refine_labels_batch(misc_buffer, text)
|
| 28 |
+
|
| 29 |
+
for item in misc_buffer:
|
| 30 |
+
match = next((res for res in llm_responses if res.get('varlik','').lower() in item['word'].lower()), None)
|
| 31 |
+
f_label = match['karar'] if match else "MISC"
|
| 32 |
+
current_logs.append(format_log_entry("cot", item['word'], match['analiz'] if match else "Hata."))
|
| 33 |
+
|
| 34 |
+
final_results.append({"Varlık": item['word'], "İlk": "MISC", "Nihai": f_label, "Kaynak": "RAG+LLM"})
|
| 35 |
+
yield "<br>".join(current_logs), [[r["Varlık"], r["İlk"], f"<b>{r['Nihai']}</b>", r["Kaynak"]] for r in final_results]
|
| 36 |
+
|
| 37 |
+
current_logs.append("✨ <b>Tamamlandı.</b>")
|
| 38 |
+
yield "<br>".join(current_logs), [[r["Varlık"], r["İlk"], f"<b>{r['Nihai']}</b>", r["Kaynak"]] for r in final_results]
|
| 39 |
+
|
| 40 |
+
# Uygulamayı Başlat
|
| 41 |
+
demo, input_text, log_output, table_output, submit_btn = create_ui_layout()
|
| 42 |
+
submit_btn.click(process_ner, inputs=input_text, outputs=[log_output, table_output])
|
| 43 |
+
|
| 44 |
+
if __name__ == "__main__":
|
| 45 |
+
demo.launch(auth=("admin", "1113"))
|