templates.py 12.9 KB
Newer Older
kihoon.lee's avatar
kihoon.lee committed
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
LOTTE_PROMPT_STRATEGY={
    #사용자의 질의를 받았을 때, 더 효과적인 검색을 위해 검색용 키워드를 생성하는 작업
    "search_keyword":"인터넷 검색을 위한 키워드 생성해줘",
    
    #검색 결과를 받았을 때 이를 정리 및 요약해주는 작업
    "search_summary":"다음 검색 결과를 바탕으로 사용자의 질문에 대답하세요. 검색 결과에 질문에 대한 정보가 없으면 관련 내용을 찾지 못했다고 답변하고 만약, 자체적으로 답변이 가능한 질문이면 답변하세요.",
    
    #상품 리뷰를 기반으로 이를 요약해주는 작업
    "review_summary":"다음 상품 리뷰를 요약하시오. 요약 시 상품명이 반드시 들어가야 합니다. 부정적인 내용은 요약에 포함시키면 안됩니다.",
    
    #대화 및 회의 내용을 일정한 형식에 맞춰 요약해주는 작업
    "meeting_summary":"다음 대화 스크립트를 핵심 내용만 남도록 요약하세요. 만약 대화 스크립트 내용이 없다면, 내용이 없다고 답하세요. 요약문 형식은 다음 형식을 꼭 따라야 합니다.\n#### [제목]\n- [요약문]\n- [요약문]\n제목 맨 앞에는 적절한 이모지를 꼭 넣어주세요.",
    
    #회의를 요청하는 메일을 작성해주는 작업
    "task_assistant_mail_meeting":"아래 내용으로 회의를 요청하는 메일을 작성해줘.",
    
    #회의록을 전달하는 메일을 작성해주는 작업
    "task_assistant_mail_share":"아래 내용을 바탕으로 회의록을 전달하는 이메일을 작성해주세요. 이메일에는 회의록 내용을 포함 시켜 정확하고 명확한 정보 전달이 이루어지도록 해주세요.",
    
    #홍보 메일을 작성해주는 작업
    "task_assistant_mail_pr":"아래 사항을 반영하여 홍보 메일을 작성해주세요.",
    
    #기업 소개 메일을 작성해주는 작업 
    "task_assistant_mail_introduce":"아래 내용을 바탕으로 정중하고 전문적인 어투로 기업을 소개하는 메일을 작성해 주세요. 웹사이트 주소가 있다면 웹사이트 주소를 포함해 주세요.",
    
    #팀에 대해 소개해주는 작업 (채용 공고)
    "task_assistant_hire":"아래 세부 정보를 활용하여 조직의 매력적인 개요를 작성하십시오. 팀의 독특한 강점, 주요 프로젝트 및 주목할 만한 성취를 강조하고, 지정된 키워드에 대한 팀의 전문성이 그들의 책임과 프로젝트에서 어떻게 성공에 기여하는지를 강조합니다. 소개문은 설득력 있고, 팀의 정체성, 사명, 및 영향력에 대한 명확한 스냅샷을 제공해야 합니다.",
    
    #텍스트를 SQL로 변환해주는 작업
    "text2sql":"DB 스키마 및 예시를 고려하여 질문에 적합한 SQL문을 단계별로 생각해가며 생성합니다. 답변은 조건을 반드시 만족해야 합니다.",
    
Liky98's avatar
Liky98 committed
32
33
34
    #SQL를 텍스트로 변환해주는 작업
    "sql2text":"주어진 `SQL 실행 쿼리` 와 `SQL 실행 결과`에서 확인할 수 있는 정보를 바탕으로 주어진 `질문`에 대해 답변해야 합니다. 답변은 조건을 반드시 만족해야 합니다.",

kihoon.lee's avatar
kihoon.lee committed
35
36
37
38
39
40
41
42
43
    #롯데 관련 질문에 답변을 제공해주는 작업
    "lotte_qa":"",

    #문서를 기반으로 사실적 답변을 제공해주는 작업
    "mrc":"다음 문서를 근거로 들면서 질문에 자세히 답변하세요. 문서 안에 질문에 대한 내용이 없으면 관련 내용을 찾을 수 없다고 답하세요.",

    #검색된 문서를 질문과 관련된 내용만 남도록 요약해주는 작업
    "mrc_summary":"다음 문서를 질문과 관련있는 내용만 남도록 요약하세요. 요약 할때 질문과 관련된 정보는 최대한 유지해야 합니다. 만약 문서의 내용이 질문과 관련이 없다면, 관련 내용을 찾을 수 없다고 답하세요.",

Liky98's avatar
Liky98 committed
44
45
46
47
48
    #dart 기반 텍스트를 SQL로 변환해주는 작업
    "text2sql_dart":"기업 재무제표 DB 스키마 및 조건을 고려하여 질문에 적합한 SQL문을 생성합니다. 답변은 조건을 반드시 만족해야 합니다.",

    #dart 기반 SQL을 TEXT로 변환해주는 작업
    "sql2text_dart":"주어진 `SQL 실행 쿼리` 와 `SQL 실행 결과`에서 확인할 수 있는 정보를 바탕으로 주어진 `질문`에 대해 답변해야 합니다. 답변은 조건을 반드시 만족해야 합니다.",
kihoon.lee's avatar
kihoon.lee committed
49
50
}

kihoon.lee's avatar
kihoon.lee committed
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
PROMPT_STRATEGY = {
    "cot-1-shot": [
        {
            "role": "system",
            "content": "문제를 해결하는 과정을 단계별로 명확하게 설명한 다음, 최종 답변을 제시해 주세요.",
        },
        {
            "role": "user",
            "content": "한 도시에서 매년 나무를 심고 있습니다. 첫해에 100그루를 심었고, 매년 전년도에 심은 나무의 수보다 20%씩 더 많은 나무를 심고 있습니다. 2년 후에는 총 몇 그루의 나무를 심게 될까요?",
        },
        {
            "role": "assistant",
            "content": """이 문제를 해결하기 위해 단계별로 접근해 보겠습니다.

1단계: 주어진 정보 정리
- 첫해에 100그루를 심음
- 매년 전년도보다 20% 더 많은 나무를 심음
- 2년 후의 총 나무 수를 구해야 함

2단계: 두 번째 해에 심은 나무 수 계산
- 첫해보다 20% 증가
- 100 + (100의 20%) = 100 + 20 = 120그루

3단계: 세 번째 해에 심은 나무 수 계산
- 두 번째 해보다 20% 증가
- 120 + (120의 20%) = 120 + 24 = 144그루

4단계: 3년 동안 심은 총 나무 수 계산
- 첫해: 100그루
- 둘째 해: 120그루
- 셋째 해: 144그루
- 총합: 100 + 120 + 144 = 364그루

따라서, 2년 후(즉, 3년째)에는 총 364그루의 나무를 심게 됩니다.""",
        },
    ],
    "1-shot": [
        {
            "role": "user",
            "content": "Git의 rebase와 merge의 차이점을 설명하고, 각각 어떤 상황에서 사용하는 것이 좋은지 예를 들어 설명해주세요.",
        },
        {
            "role": "assistant",
            "content": """Git에서 `rebase`와 `merge`는 두 개의 브랜치를 통합하는 데 사용되는 두 가지 주요 명령어입니다. 이들의 차이점과 사용 상황을 설명하겠습니다.

### Rebase

#### 개념
- `rebase`는 하나의 브랜치의 커밋을 다른 브랜치의 끝에 다시 적용하는 것입니다. 즉, 커밋 히스토리를 새로 만든다고 할 수 있습니다.
- 결과적으로 커밋 히스토리가 깔끔하게 정리됩니다.

#### 사용 상황
- **깔끔한 히스토리가 필요할 때**: 브랜치 히스토리가 병합 없이 일직선으로 이어지도록 하고 싶을 때 유용합니다.
- **작업 중인 브랜치를 최신 상태로 유지하고 싶을 때**: 예를 들어, `feature` 브랜치에서 작업 중인데 `main` 브랜치에서 업데이트가 있을 경우, `feature` 브랜치를 `rebase`하여 최신 상태로 유지할 수 있습니다.

#### 예제
1. `feature` 브랜치에서 작업 중입니다.
2. `main` 브랜치에 새로운 커밋이 추가되었습니다.
3. `feature` 브랜치에서 `git rebase main`을 실행합니다.
4. `feature` 브랜치의 커밋들이 `main` 브랜치의 최신 커밋들 뒤에 재배치됩니다.

```bash
git checkout feature
git rebase main
```

### Merge

#### 개념
- `merge`는 두 개의 브랜치를 합치는 방법으로, 두 브랜치의 히스토리를 유지하며 새로운 병합 커밋을 생성합니다.
- `merge`는 기존의 히스토리를 그대로 보존합니다.

#### 사용 상황
- **히스토리를 유지하고 싶을 때**: 각 브랜치의 작업 기록을 그대로 보존하면서 병합할 때 사용합니다.
- **협업 중 충돌을 명확히 해결하고 기록을 남기고 싶을 때**: 여러 사람이 같은 저장소에서 작업할 때, `merge`는 충돌 해결 과정과 그 기록을 명확히 남길 수 있습니다.

#### 예제
1. `feature` 브랜치에서 작업을 완료했습니다.
2. `main` 브랜치에 병합하고 싶습니다.
3. `main` 브랜치로 체크아웃한 후 `feature` 브랜치를 병합합니다.

```bash
git checkout main
git merge feature
```

### 요약

- **Rebase**는 히스토리를 깔끔하게 정리하는 데 유리하며, 주로 개인 작업이나 `feature` 브랜치를 최신 상태로 유지할 때 사용됩니다.
- **Merge**는 두 브랜치의 작업 히스토리를 보존하면서 병합하며, 협업 과정에서 충돌 해결과 기록을 명확히 남기는 데 유리합니다.

각 방법의 장단점과 사용 상황을 고려하여 적절히 선택하는 것이 중요합니다.""",
        },
    ],
    "default": [],
}

JUDGE_TEMPLATE = {
    "single_turn": """너는 질문에 대한 한국어 언어 모델의 답변을 매우 꼼꼼히 평가할 것이다. 공정한 평가를 위해 아래의 규칙을 준수한다.

# 기본 규칙
1. 질문의 요구사항을 충분히 반영하였는지 상세히 분석할 것.
2. 답변 과정에서 누락되었거나 포함되지 못하여 아쉬운 부분에 대하여 상세히 분석할 것.
3. 답변의 길이가 평가 결과에 영향을 미치지 않도록 할 것.
4. Additional Reference가 제공된다면 평가 시 해당 정보를 참고할 것.

# 언어 요구사항
- 모델은 반드시 한국어로 답변해야 하며, 다른 언어로의 답변은 절대 허용되지 않는다.
- 예외적으로 질문이 영어로 답변할 것을 요구할 때에만 영어 답변이 허용된다.
- 한국어로 답변하지 않을 경우, 점수는 0점 처리된다.
- 언어 요구사항을 충족하는 것은 필수적이나, 이 요구사항의 충족이 답변의 질적 평가에 추가 점수로 이어지지는 않는다.

# 평가 출력 방식
**주어진 Question에 집중하여** Model's Response에 대한 평가와 1~10의 점수를 부여한다. 답변에 대한 평가는 4~5 문장으로 규칙을 참고하여 상세히 작성한다.

# 출력 형식
평가: 평가 내용
점수: 숫자""",
    "multi_turn": """너는 대화 후 이어지는 후속 질문에 대한 한국어 언어 모델의 답변을 매우 꼼꼼히 평가할 것이다. 공정한 평가를 위해 아래의 규칙을 준수한다.

# 기본 규칙
1. 질문의 요구사항을 충분히 반영하였는지 상세히 분석할 것.
2. 답변 과정에서 누락되었거나 포함되지 못하여 아쉬운 부분에 대하여 상세히 분석할 것.
3. 답변의 길이가 평가 결과에 영향을 미치지 않도록 할 것.
4. Additional Reference가 제공된다면 평가 시 해당 정보를 참고할 것.
5. 후속 질문에 대한 답변이 이전 대화 맥락과 일치하는지 확인할 것.

# 언어 요구사항
- 모델은 반드시 한국어로 답변해야 하며, 다른 언어로의 답변은 절대 허용되지 않는다.
- 예외적으로 질문이 영어로 답변할 것을 요구할 때에만 영어 답변이 허용된다.
- 한국어로 답변하지 않을 경우, 점수는 0점 처리된다.
- 언어 요구사항을 충족하는 것은 필수적이나, 이 요구사항의 충족이 답변의 질적 평가에 추가 점수로 이어지지는 않는다.

# 평가 출력 방식
**주어진 Question에 집중하여** Model's Response에 대한 평가와 1~10의 점수를 부여한다. 답변에 대한 평가는 4~5 문장으로 규칙을 참고하여 상세히 작성한다.

Liky98's avatar
Liky98 committed
187
188
189
190
191
192
193
194
195
196
# 출력 형식
평가: 평가 내용
점수: 숫자""",
    "lotte_eval_template": """너는 질문에 대한 한국어 언어 모델의 답변을 매우 꼼꼼히 평가할 것이다. 공정한 평가를 위해 아래의 규칙을 준수한다.

# 기본 규칙
1. 질문의 요구사항을 충분히 반영하였는지 상세히 분석할 것.
2. 답변 과정에서 누락되었거나 포함되지 못하여 아쉬운 부분에 대하여 상세히 분석할 것.
3. 답변의 길이가 평가 결과에 영향을 미치지 않도록 할 것.
4. Additional Reference는 정답을 의미하며, 만약 해당 값이 제공된다면 평가 시 해당 정보를 참고할 것.
197
5. 모델은 Instruct를 정확히 따라 학습이 되었으며, Additional Reference의 내용이 포함되었다면 높은 점수를 얻는다.
Liky98's avatar
Liky98 committed
198
199
200
201
202
203
204
205
206
207

# 언어 요구사항
- 모델은 반드시 한국어로 답변해야 하며, 다른 언어로의 답변은 절대 허용되지 않는다.
- 예외적으로 질문이 영어로 답변할 것을 요구할 때에만 영어 답변이 허용된다.
- 한국어로 답변하지 않을 경우, 점수는 0점 처리된다.
- 언어 요구사항을 충족하는 것은 필수적이나, 이 요구사항의 충족이 답변의 질적 평가에 추가 점수로 이어지지는 않는다.

# 평가 출력 방식
**주어진 Question에 집중하여** Model's Response에 대한 평가와 1~10의 점수를 부여한다. 답변에 대한 평가는 4~5 문장으로 규칙을 참고하여 상세히 작성한다.

kihoon.lee's avatar
kihoon.lee committed
208
209
210
211
# 출력 형식
평가: 평가 내용
점수: 숫자""",
}