0Pricing
AI Prompt Engineering · Ders

Hiyerarşik Özetleme

Aşamalı sıkıştırma uygulayın: bölümler → kısımlar → belge özeti.

Hiyerarşik Özetleme, CoddyKit'te ücretsiz bir AI Prompt Engineering dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, AI Prompt Engineering öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. AI Prompt Engineering kursu toplamda 4 dersten oluşur.

Hiyerarşik Özetleme Nedir

Hiyerarşik özetleme, belgenin kendi yapısını yansıtır. Tüm parçalara eşit davranmak yerine içeriği düzey düzey sıkıştırır:

  • Sayfalar → alt bölüm özetleri
  • Alt bölümler → bölüm özetleri
  • Bölümler → belge özeti

Her düzey, kendisinden aşağıdaki düzeyin sıkıştırılmış bir gösterimidir. İnsanların kitapları özetleme biçimi de budur — bölümleri okur, zihinsel özetler oluşturur ve ardından bunları birleştirirler.

Hiyerarşik Özetleme Ne Zaman Kullanılır

Hiyerarşik özetleme şu durumlar için doğru tercihtir:

  • Kitaplar: Açık bölüm yapısına sahip 200'den fazla sayfalık kitaplar
  • Araştırma makaleleri: özet, giriş, yöntemler, bulgular, tartışma
  • Hukuki sözleşmeler: belirli başlıklara sahip bölümler (tanımlar, yükümlülükler, fesih)
  • Teknik raporlar: yönetici özeti → bulgular → ekler

Kısa makaleler için gereğinden fazladır. Belgenin doğal bir ağaç yapısına sahip olduğu durumlarda özellikle etkilidir.

Belge Ağacı Yapısı

Belgeyi bir ağaç olarak modelleyin:

  • Kök: son özet
  • 1. düzey düğümleri: bölüm özetleri
  • 2. düzey düğümleri: alt bölüm özetleri
  • Yapraklar: ham sayfa veya parça metni

Özetleme aşağıdan yukarıya ilerler: yapraklar → 2. düzey → 1. düzey → kök. Her düğümün özeti yalnızca çocuklarının özetlerinden türetilir.

from dataclasses import dataclass, field
from typing import List, Optional

@dataclass
class DocNode:
    title: str
    content: str = ''
    summary: str = ''
    children: List['DocNode'] = field(default_factory=list)

# Example: book with 3 chapters, each with 3 sections
book = DocNode(
    title='My Book',
    children=[
        DocNode('Chapter 1', children=[
            DocNode('Section 1.1', content='...raw text...'),
            DocNode('Section 1.2', content='...raw text...'),
        ]),
        DocNode('Chapter 2', children=[
            DocNode('Section 2.1', content='...raw text...'),
        ])
    ]
)

Aşağıdan Yukarıya Özetleme

Ağacı aşağıdan yukarıya dolaşın. Yaprak düğümler ham içeriklerinden özetlenir. İç düğümler çocuklarının özetlerinden özetlenir.

import openai
client = openai.OpenAI(api_key='sk-...')

def summarize_text(text, role='section'):
    resp = client.chat.completions.create(
        model='gpt-4o',
        messages=[
            {'role': 'system',
             'content': f'Summarize this {role} in 3-5 sentences.'},
            {'role': 'user', 'content': text}
        ]
    )
    return resp.choices[0].message.content

def summarize_tree(node, depth=0):
    role = ['document', 'chapter', 'section', 'page'][min(depth, 3)]
    if not node.children:
        node.summary = summarize_text(node.content, role)
    else:
        for child in node.children:
            summarize_tree(child, depth + 1)
        combined = '\n\n'.join(
            f'{c.title}:\n{c.summary}' for c in node.children
        )
        node.summary = summarize_text(combined, role)
    return node.summary

Aşamalı Sıkıştırma

Aşamalı sıkıştırma, her düzeyin bilgi yoğunluğunu azaltması anlamına gelir. Pratik bir kural:

  • Sayfa (2000 belirteç) → alt bölüm özeti (200 belirteç) — 10 kat sıkıştırma
  • Alt bölüm özeti (200 belirteç) → bölüm özeti (100 belirteç) — 2 kat sıkıştırma
  • Bölüm özetleri (5 × 100 belirteç) → belge (150 belirteç) — 3 kat sıkıştırma

Toplamda 10.000 belirteçlik bir belge, ana sav korunarak yaklaşık 150 belirtece sıkıştırılır. Her düzeyde modele sıkıştırma oranını korumasını isteyen bir istem verin.

PAGE_PROMPT = 'Summarize this page in 2-3 sentences (under 80 words).'
SECTION_PROMPT = 'Given these page summaries, write a section summary in 3-4 sentences (under 120 words).'
CHAPTER_PROMPT = 'Given these section summaries, write a chapter summary in 4-5 sentences (under 150 words).'
DOC_PROMPT = 'Given these chapter summaries, write an executive summary of the entire document (under 200 words).'

Düzeyler Arasında Tutarlılığı Koruma

Hiyerarşik özetlemenin bir riski, aynı düzeydeki özetlerin birbiriyle çelişebilmesi veya birbirini tekrarlayabilmesidir; bu hatalar üst düzeylere çıktıkça birikir. Tutarlılığı koruma stratejileri:

  • Modelin bağlamı bilmesi için isteme üst bölüm başlığını ekleyin
  • Modelden önceki bölüm özetlerinde zaten belirtilen olguları tekrarlamamasını isteyin
  • Son birleştirme aşamasında modelden tüm çelişkileri açıkça çözmesini isteyin
def summarize_sections_for_chapter(chapter_title, section_summaries):
    content = '\n\n'.join(
        f'Section: {s["title"]}\n{s["summary"]}'
        for s in section_summaries
    )
    prompt = (
        f'Chapter: {chapter_title}\n\n'
        'Below are summaries of each section. '
        'Write a unified chapter summary without repeating '
        'the same facts from multiple sections.\n\n' + content
    )
    resp = client.chat.completions.create(
        model='gpt-4o',
        messages=[{'role': 'user', 'content': prompt}]
    )
    return resp.choices[0].message.content

Araştırma Makalesi Hiyerarşisi

Araştırma makaleleri doğal bir hiyerarşiye sahiptir: Özet → Giriş → Yöntemler → Bulgular → Tartışma → Sonuç. Her bölümün farklı bir rolü vardır; bu nedenle bölüme özgü istemler kullanın:

SECTION_PROMPTS = {
    'abstract': 'Summarize the paper abstract: what problem, method, and result?',
    'introduction': 'Summarize the introduction: what gap does the paper address?',
    'methods': 'Summarize the methods: what approach was used?',
    'results': 'Summarize the results: what were the key findings and metrics?',
    'discussion': 'Summarize the discussion: what do the results mean?',
    'conclusion': 'Summarize the conclusion and future work.'
}

def summarize_paper(sections_dict):
    section_summaries = {}
    for section, text in sections_dict.items():
        prompt = SECTION_PROMPTS.get(section, 'Summarize this section.')
        section_summaries[section] = call_llm(prompt, text)
    return section_summaries

Hukuki Sözleşme Hiyerarşisi

Hukuki sözleşmeler bir hüküm hiyerarşisini izler: tanımlar → yükümlülükler → hukuki çözümler → fesih → uygulanacak hukuk. Hiyerarşik özetleme şunları korumalıdır:

  • Kesin rakamlar (ödeme tutarları, son tarihler)
  • Taraf adları (müşteri, tedarikçi, lisans veren)
  • Koşullu ifadeler (olmadıkça, şu durum hariç, koşuluyla)

Modelden, özetlediği her sayısal tutarı veya koşullu ifadeyi içeren hükmü işaretlemesini isteyin; böylece bunlar yanlışlıkla atlanmaz.

LEGAL_PROMPT = '''Summarize this contract clause in plain English.
Preserve: all monetary amounts, dates, party names, and conditionals.
Flag any obligation with [OBLIGATION] and any amount with [AMOUNT].'''

def summarize_clause(clause_text):
    resp = client.chat.completions.create(
        model='gpt-4o',
        messages=[
            {'role': 'system', 'content': LEGAL_PROMPT},
            {'role': 'user', 'content': clause_text}
        ]
    )
    return resp.choices[0].message.content

Hiyerarşik Özetleri Depolama

Yalnızca kök özeti değil, özet ağacının tamamını depolayın. Bu şunları mümkün kılar:

  • Ayrıntıya inme — bölüm özetini, ardından isteğe bağlı olarak alt bölüm özetini gösterme
  • Getirme — kullanıcı sorgusunu yalnızca tam belgeye değil, alt bölüm özetlerine göre de eşleştirme
  • Güncelleme — bir alt bölüm değiştiğinde ağacın yalnızca o dalını yeniden özetleme
import json

def tree_to_dict(node):
    return {
        'title': node.title,
        'summary': node.summary,
        'children': [tree_to_dict(c) for c in node.children]
    }

def save_tree(node, path):
    with open(path, 'w') as f:
        json.dump(tree_to_dict(node), f, indent=2)
    print(f'Saved summary tree to {path}')

Artımlı Güncellemeler

Bir belge güncellendiğinde hiyerarşik yapı, artımlı yeniden özetlemeyi mümkün kılar. Yalnızca değiştirilen düğümü ve atalarını yeniden özetleyin — tüm kardeş dallar geçerliliğini korur.

Bölüm 3'ün gözden geçirildiği 10 bölümlük bir kitap için: bölüm 3'ün alt bölümlerini, ardından bölüm 3'ü ve son olarak kitabı yeniden özetleyin. Tüm düğümler yerine 3 düğümü yeniden hesaplayın.

def update_node(node, updated_child_title):
    # Re-summarize the changed child
    for child in node.children:
        if child.title == updated_child_title:
            summarize_tree(child)  # re-summarize from leaves
            break
    # Re-summarize current node from updated children
    combined = '\n\n'.join(
        f'{c.title}:\n{c.summary}' for c in node.children
    )
    node.summary = summarize_text(combined)
    return node.summary

Düz ve Hiyerarşik Yaklaşımların Karşılaştırılması

Düz eşleştirme-birleştirme ile hiyerarşik özetleme:

  • Düz: daha basit, belge yapısını dikkate almaz, tekdüze belgeler (haber makaleleri) için daha iyidir
  • Hiyerarşik: yapıya uyar, ayrıntıya inmeyi mümkün kılar, yapılandırılmış belgeler için daha tutarlıdır

Uygulamada ikisini birleştirin: her bölüm içinde çok sayıda sayfa için düz eşleştirme-birleştirme kullanın, ardından bölümler arasında hiyerarşik özetleme uygulayın. Gerçek dünyadaki belgeler için en sağlam yaklaşım budur.

Bilginizi Sınayın

Hiyerarşik özetlemede özetleme süreci belge ağacında hangi yönde ilerler?

Özet: Hiyerarşik Özetleme

Hiyerarşik özetleme, daha iyi sonuçlar için belge yapısını yansıtır:

  • Belgeyi bir ağaç olarak modelleyin: sayfalar → alt bölümler → bölümler → belge
  • Aşağıdan yukarıya özetleyin: önce yapraklar, en son kök
  • Tutarlılığı korumak için her düzeyde aşamalı sıkıştırma uygulayın
  • Açık bir hiyerarşik yapıya sahip kitaplar, araştırma makaleleri ve hukuki sözleşmeler için en uygunudur
  • Ayrıntıya inerek bilgi getirmeyi ve artımlı güncellemeleri mümkün kılmak için ağacın tamamını depolayın

Sonraki ders: örtüşme ve devam eden özetlerle parçalar arasındaki bağlamı koruma.

Sıkça Sorulan Sorular

“Hiyerarşik Özetleme” dersi ücretsiz mi?

Evet — “Hiyerarşik Özetleme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve AI Prompt Engineering kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. AI Prompt Engineering kursu toplamda 4 dersten oluşur.

“Hiyerarşik Özetleme” dersinde ne öğreneceğim?

Aşamalı sıkıştırma uygulayın: bölümler → kısımlar → belge özeti. AI Prompt Engineering ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

AI Prompt Engineering öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te AI Prompt Engineering, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“Hiyerarşik Özetleme” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu AI Prompt Engineering dersinde kod yazıp çalıştırabilir miyim?

Evet. Her AI Prompt Engineering dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Uzun Metinler için Parçalama Stratejileri
  2. Map-Reduce Özetleme Kalıbı
  3. Hiyerarşik Özetleme
  4. Parçalar Arasında Bağlamı Koruma
← AI Prompt Engineering Sayfasına Dön