Spaces:
Sleeping
Sleeping
Update app.py
Browse files
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 |
-
|
| 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)
|