apak commited on
Commit
97d6cf0
·
verified ·
1 Parent(s): 769a6b4

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +2 -47
app.py CHANGED
@@ -6,6 +6,7 @@ import re
6
  import gradio as gr
7
  from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline
8
  from labels_config import custom_labels
 
9
 
10
  # --- 1. MODELLERİN HAZIRLANMASI ---
11
  ner_pipe = pipeline("ner", model="xlm-roberta-large-finetuned-conll03-english", aggregation_strategy="simple", device=-1)
@@ -50,53 +51,7 @@ def refine_label_with_llm(entity_text, full_sentence, wiki_context, custom_label
50
  label_rules += f"### {k}\n- TANIM: {v['tanim']}\n- ANAHTARLAR: {', '.join(v['anahtar_kelimeler'])}\n\n"
51
 
52
  # 2. Sistematik CoT ve Kuralların Tanımlanması
53
- prompt = f"""Sen yüksek hassasiyetli bir semantik analiz uzmanısın.
54
- Görevin, '[[{entity_text}]]' varlığını aşağıdaki 4 adımlı Sistematik CoT protokolüne göre sınıflandırmaktır.
55
-
56
- ETİKET TANIMLARI:
57
- {label_rules}
58
-
59
- SİSTEMATİK CoT ADIMLARI:
60
- 1. **Sentaktik İnceleme:** Cümle içinde varlığın sağındaki ve solundaki kelimeleri (niteleyicileri) tespit et. Varlık bir fiille mi (yazıldı, vizyona girdi) yoksa bir isimle mi (yazılımı, ödülü) ilişkili?
61
- 2. **Bilgi Entegrasyonu:** Wikipedia verisindeki genel tanımı oku. Varlığın tarihsel veya teknik kimliğini belirle.
62
- 3. **Çelişki ve Hiyerarşi Denetimi:** Wikipedia bilgisi ile cümledeki kullanım amacı çelişiyor mu? (Örn: Wiki 'film' diyor ama cümle 'kitap' diyorsa, cümledeki kullanım esastır).
63
- 4. **Etiket Eşleşmesi:** Elde edilen nihai kanıtları, 'ETİKET TANIMLARI'ndaki en yakın kategoriyle eşleştir ve son kararı ver.
64
-
65
- REFERANS ANALİZLER (FEW-SHOT):
66
- Örnek 1 (Tam Uyum):
67
- VARLIK: 'Inception'
68
- CÜMLE: "Dün gece Inception filmini tekrar izledim."
69
- WIKI: "Inception, Christopher Nolan tarafından yönetilen 2010 yapımı bilimkurgu filmidir."
70
- ANALİZ:
71
- - Adım 1: Cümlede 'film' ve 'izlemek' kelimeleri görsel esere işaret ediyor.
72
- - Adım 2: Wiki verisi varlığın bir film olduğunu doğruluyor.
73
- - Adım 3: Kaynaklar arasında çelişki yok.
74
- - Adım 4: MOVIE etiketi uygundur.
75
- CEVAP: MOVIE
76
-
77
- Örnek 2 (Kritik Çelişki):
78
- VARLIK: 'Gizli Bahçe'
79
- CÜMLE: "Yazar son romanı 'Gizli Bahçe' ile ödül aldı."
80
- WIKI: "Gizli Bahçe: 1993 yapımı bir dram filmidir."
81
- ANALİZ:
82
- - Adım 1: Cümlede 'roman' ve 'yazar' kelimeleri varlığı doğrudan kitap olarak niteliyor.
83
- - Adım 2: Wiki verisi bu ismi bir film (movie) olarak gösteriyor.
84
- - Adım 3: ÇELİŞKİ TESPİT EDİLDİ. Kaynak hiyerarşisi gereği cümledeki 'roman' ifadesi Wikipedia'dan daha önceliklidir.
85
- - Adım 4: BOOK etiketi uygundur.
86
- CEVAP: BOOK
87
-
88
- GÜNCEL GÖREV:
89
- - HEDEF VARLIK: {entity_text}
90
- - ORİJİNAL CÜMLE: "{full_sentence}"
91
- - HARİCİ BİLGİ (Wikipedia): "{wiki_context}"
92
-
93
- ÇIKTI KURALLARI:
94
- - Cevabında asla yıldız (*) veya markdown kullanma.
95
- - Analiz adımlarını yukarıdaki 4 adımlı protokole göre yaz.
96
-
97
- ÇIKTI FORMATI:
98
- Analiz: [4 Adımlı CoT Analizi]
99
- Cevap: [SADECE_ETIKET_ADI]"""
100
 
101
  messages = [{"role": "user", "content": prompt}]
102
  text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
 
6
  import gradio as gr
7
  from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline
8
  from labels_config import custom_labels
9
+ from prompts import prompt
10
 
11
  # --- 1. MODELLERİN HAZIRLANMASI ---
12
  ner_pipe = pipeline("ner", model="xlm-roberta-large-finetuned-conll03-english", aggregation_strategy="simple", device=-1)
 
51
  label_rules += f"### {k}\n- TANIM: {v['tanim']}\n- ANAHTARLAR: {', '.join(v['anahtar_kelimeler'])}\n\n"
52
 
53
  # 2. Sistematik CoT ve Kuralların Tanımlanması
54
+
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
55
 
56
  messages = [{"role": "user", "content": prompt}]
57
  text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)