Spaces:
Sleeping
Sleeping
feat: 이미지 설명 프롬프트 템플릿 개선 및 아동 친화적 규정 반영
Browse files- app/services/analysis_service.py +55 -65
app/services/analysis_service.py
CHANGED
|
@@ -120,20 +120,22 @@ figure_prompt = """
|
|
| 120 |
7. 추측 금지: 원본에 없는 정보는 절대 추가하지 않음
|
| 121 |
|
| 122 |
[출력 형식]
|
| 123 |
-
|
| 124 |
-
-
|
| 125 |
-
|
| 126 |
-
|
| 127 |
-
|
| 128 |
-
-
|
| 129 |
-
|
| 130 |
-
-
|
| 131 |
-
|
| 132 |
-
|
| 133 |
-
|
| 134 |
-
|
| 135 |
-
|
| 136 |
-
|
|
|
|
|
|
|
| 137 |
"""
|
| 138 |
|
| 139 |
table_prompt = """
|
|
@@ -147,52 +149,32 @@ table_prompt = """
|
|
| 147 |
- 점자 독자가 행별로 정확하게 파악할 수 있게 합니다.
|
| 148 |
|
| 149 |
설명 규칙 (한국 점자 규정 준수):
|
| 150 |
-
1. 제목과
|
| 151 |
-
- 표의 제목이 있으면 우선 표기
|
| 152 |
-
-
|
| 153 |
-
- 표의 단위 명시 (예: %, 명, kg 등)
|
| 154 |
|
| 155 |
-
2.
|
| 156 |
-
-
|
| 157 |
-
-
|
| 158 |
-
- 행 제목(로우 헤더) 확인
|
| 159 |
|
| 160 |
3. 행별 순차 설명:
|
| 161 |
- 첫 번째 행부터 마지막 행까지 순서대로
|
| 162 |
-
- 각 행 내에서는
|
| 163 |
- 행 제목과 데이터를 명확히 연결
|
| 164 |
|
| 165 |
-
4. 수치 표현:
|
| 166 |
-
- 숫자는 반드시 단위와 함께 표기 (예: "3명", "50%")
|
| 167 |
-
- 크기 비교 추가 (예: "A가 B보다 높음")
|
| 168 |
-
- 증감 방향 명시 (예: "증가", "감소")
|
| 169 |
-
|
| 170 |
-
5. 특이 사항 처리:
|
| 171 |
-
- 빈 칸이 있으면 명시 (예: "해당 데이터 없음")
|
| 172 |
-
- 별표(*), 주석이 있으면 설명
|
| 173 |
-
- 병합된 셀(merged cell)이 있으면 구조 명확히
|
| 174 |
-
|
| 175 |
-
6. 핵심 메시지:
|
| 176 |
-
- 표가 무엇을 보여주는지 한 문장으로 요약
|
| 177 |
-
|
| 178 |
[출력 형식]
|
| 179 |
-
표의
|
| 180 |
-
- 제목: [제목 또는 '제목 없음']
|
| 181 |
-
- 크기: [행 수]행 × [열 수]열
|
| 182 |
-
- 단위: [%, 명, kg 등]
|
| 183 |
-
|
| 184 |
-
표의 구조:
|
| 185 |
-
- 열 제목: [열1], [열2], [열3] ... (순서대로)
|
| 186 |
-
- 행 제목: [행1], [행2], [행3] ... (있으면)
|
| 187 |
|
| 188 |
-
|
| 189 |
-
|
| 190 |
-
|
| 191 |
-
세 번째 행 ([행_제목3]): [필요 시 계속]
|
| 192 |
|
| 193 |
-
|
|
|
|
| 194 |
|
| 195 |
-
|
|
|
|
|
|
|
| 196 |
"""
|
| 197 |
|
| 198 |
flowchart_prompt = """
|
|
@@ -235,24 +217,32 @@ flowchart_prompt = """
|
|
| 235 |
- 원본에 없는 정보는 추가하지 않음
|
| 236 |
|
| 237 |
[출력 형식]
|
| 238 |
-
|
| 239 |
-
|
| 240 |
-
|
| 241 |
-
|
| 242 |
-
|
| 243 |
-
|
| 244 |
-
|
| 245 |
-
단계별 진행:
|
| 246 |
-
1단계: [내용]
|
| 247 |
-
↓
|
| 248 |
-
2단계: [내용]
|
| 249 |
-
↓
|
| 250 |
-
3단계: [필요 시 계속]
|
| 251 |
|
| 252 |
분기/조건 (있으면):
|
| 253 |
-
[
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 254 |
|
| 255 |
-
|
|
|
|
|
|
|
|
|
|
| 256 |
"""
|
| 257 |
|
| 258 |
|
|
|
|
| 120 |
7. 추측 금지: 원본에 없는 정보는 절대 추가하지 않음
|
| 121 |
|
| 122 |
[출력 형식]
|
| 123 |
+
자연스러운 문장형 설명 (규정 준수 + 아동 친화적):
|
| 124 |
+
- 첫 문장: 제목과 유형을 자연스럽게 소개
|
| 125 |
+
예) "제목은 '○○○'이고, 사진입니다."
|
| 126 |
+
- 둘째 문장: 배경이나 전체 구성
|
| 127 |
+
예) "뒷부분에는 △△△가 있습니다."
|
| 128 |
+
- 셋째 문장: 중심 피사체 위치와 특징
|
| 129 |
+
예) "앞쪽 가운데에는 파란색 ▲▲▲가 있습니다."
|
| 130 |
+
- 넷째 문장: 추가 요소들 (왼쪽→오른쪽, 위→아래 순서)
|
| 131 |
+
예) "왼쪽에는 작은 ○○○ 2개가 있고, 모두 빨간색입니다."
|
| 132 |
+
- 마지막 문장: 문자나 숫자가 있으면 명시
|
| 133 |
+
예) "오른쪽 아래에는 '2023년'이라는 글자가 있습니다."
|
| 134 |
+
|
| 135 |
+
주의사항:
|
| 136 |
+
- 각 문장은 30자 이내로 유지
|
| 137 |
+
- 위→아래, 왼쪽→오른쪽 읽기 순서 준수
|
| 138 |
+
- 추측이나 해석 금지, 보이는 것만 설명
|
| 139 |
"""
|
| 140 |
|
| 141 |
table_prompt = """
|
|
|
|
| 149 |
- 점자 독자가 행별로 정확하게 파악할 수 있게 합니다.
|
| 150 |
|
| 151 |
설명 규칙 (한국 점자 규정 준수):
|
| 152 |
+
1. 제목과 주제:
|
| 153 |
+
- 표의 제목이 있으면 우선 표기 (없으면 '제목 없음')
|
| 154 |
+
- 표가 무엇을 보여주는지 한 문장으로 설명
|
|
|
|
| 155 |
|
| 156 |
+
2. 단위 표시:
|
| 157 |
+
- 수치에 반드시 단위 포함 (예: "20명", "50%", "3kg")
|
| 158 |
+
- 단위가 표 전체에 동일하면 처음에만 표기
|
|
|
|
| 159 |
|
| 160 |
3. 행별 순차 설명:
|
| 161 |
- 첫 번째 행부터 마지막 행까지 순서대로
|
| 162 |
+
- 각 행 내에서는 왼쪽→오른쪽 순서
|
| 163 |
- 행 제목과 데이터를 명확히 연결
|
| 164 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 165 |
[출력 형식]
|
| 166 |
+
표의 제목은 '[제목]'입니다. [표가 보여주는 내용 한 문장].
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 167 |
|
| 168 |
+
[행_제목1]: [데이터1], [데이터2], [데이터3]
|
| 169 |
+
[행_제목2]: [데이터1], [데이터2], [데이터3]
|
| 170 |
+
[행_제목3]: [데이터1], [데이터2], [데이터3]
|
|
|
|
| 171 |
|
| 172 |
+
예시:
|
| 173 |
+
표의 제목은 '학생 수'입니다. 3개 학년의 학생 수를 보여줍니다.
|
| 174 |
|
| 175 |
+
1학년: 20명, 남학생 10명, 여학생 10명
|
| 176 |
+
2학년: 25명, 남학생 12명, 여학생 13명
|
| 177 |
+
3학년: 22명, 남학생 11명, 여학생 11명
|
| 178 |
"""
|
| 179 |
|
| 180 |
flowchart_prompt = """
|
|
|
|
| 217 |
- 원본에 없는 정보는 추가하지 않음
|
| 218 |
|
| 219 |
[출력 형식]
|
| 220 |
+
이 순서도는 '[제목]'에 대한 것입니다.
|
| 221 |
+
|
| 222 |
+
1단계: [내용] →
|
| 223 |
+
2단계: [내용] →
|
| 224 |
+
3단계: [내용] →
|
| 225 |
+
4단계: [필요 시 계속]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 226 |
|
| 227 |
분기/조건 (있으면):
|
| 228 |
+
[조건에 따른 다른 경로]: [결과]
|
| 229 |
+
|
| 230 |
+
예시 (단순 흐름):
|
| 231 |
+
이 순서도는 '손 씻기'에 대한 것입니다.
|
| 232 |
+
|
| 233 |
+
1단계: 수도꼭지를 켜서 손에 물을 묻힙니다. →
|
| 234 |
+
2단계: 비누를 손에 묻히고 거품을 냅니다. →
|
| 235 |
+
3단계: 손의 모든 부분을 깨끗이 비빕니다. →
|
| 236 |
+
4단계: 깨끗한 물로 헹굼합니다. →
|
| 237 |
+
5���계: 수도꼭지를 닫습니다.
|
| 238 |
+
|
| 239 |
+
예시 (분기 있음):
|
| 240 |
+
이 순서도는 '우산 가지고 나갈지 결정하기'에 대한 것입니다.
|
| 241 |
|
| 242 |
+
1단계: 밖의 날씨를 확인합니다. →
|
| 243 |
+
2단계-1 (비가 오면): 우산을 가져갑니다. →
|
| 244 |
+
2단계-2 (맑으면): 우산을 가져가지 않습니다. →
|
| 245 |
+
3단계: 집을 나갑니다.
|
| 246 |
"""
|
| 247 |
|
| 248 |
|