File size: 1,195 Bytes
c4ab5fa
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d234e06
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
"""
Parent Chunk ๋ถ„์„ ํ”„๋กฌํ”„ํŠธ
"""

from typing import Optional


def get_parent_chunk_analysis_prompt(
    content: str,
    max_length: int = 8000
) -> str:
    """
    Parent Chunk ๋ถ„์„์„ ์œ„ํ•œ ํ”„๋กฌํ”„ํŠธ ์ƒ์„ฑ
    
    Args:
        content: ๋ถ„์„ํ•  ์ „์ฒด ํ…์ŠคํŠธ
        max_length: ํ”„๋กฌํ”„ํŠธ์— ํฌํ•จํ•  ์ตœ๋Œ€ ํ…์ŠคํŠธ ๊ธธ์ด
    
    Returns:
        ํ”„๋กฌํ”„ํŠธ ๋ฌธ์ž์—ด
    """
    content_preview = content[:max_length]
    is_truncated = len(content) > max_length
    
    truncation_note = "\n(์ฐธ๊ณ : ํ…์ŠคํŠธ๊ฐ€ ๊ธธ์–ด ์ผ๋ถ€๋งŒ ์‚ฌ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.)" if is_truncated else ""
    
    prompt = f"""๋‹ค์Œ ์›น์†Œ์„ค ํ…์ŠคํŠธ๋ฅผ ๋ถ„์„ํ•˜์—ฌ ์„ธ๊ณ„๊ด€, ์บ๋ฆญํ„ฐ, ์Šคํ† ๋ฆฌ, ์—ํ”ผ์†Œ๋“œ, ๊ธฐํƒ€ ์ •๋ณด๋ฅผ ์ถ”์ถœํ•˜์„ธ์š”.

ํ…์ŠคํŠธ:
{content_preview}{truncation_note}

๋‹ค์Œ ํ˜•์‹์œผ๋กœ ์‘๋‹ตํ•˜์„ธ์š”:

## ์„ธ๊ณ„๊ด€
[์„ธ๊ณ„๊ด€์— ๋Œ€ํ•œ ์ƒ์„ธ ์„ค๋ช…]

## ์บ๋ฆญํ„ฐ
[์ฃผ์š” ์บ๋ฆญํ„ฐ๋“ค์˜ ํŠน์ง•๊ณผ ๋ฐฐ๊ฒฝ]

## ์Šคํ† ๋ฆฌ
[์ฃผ์š” ์Šคํ† ๋ฆฌ ๋ผ์ธ๊ณผ ์ „๊ฐœ]

## ์—ํ”ผ์†Œ๋“œ
[์ฃผ์š” ์—ํ”ผ์†Œ๋“œ์™€ ์‚ฌ๊ฑด๋“ค]

## ๊ธฐํƒ€
[๊ธฐํƒ€ ์ค‘์š”ํ•œ ์ •๋ณด]

๊ฐ ์„น์…˜์€ ์ƒ์„ธํ•˜๊ณ  ๊ตฌ์กฐํ™”๋œ ํ˜•ํƒœ๋กœ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”."""
    
    return prompt