Skip to content

Commit 0d66fdb

Browse files
authored
Merge pull request #95 from iamseojin/gpt-service-develop
[refactor] GPT parse 프롬프트 개선 – action에 순수 동사만, ‘준비’ 단계 steps 제외
2 parents 196927e + f11c36e commit 0d66fdb

1 file changed

Lines changed: 15 additions & 12 deletions

File tree

  • yechef/src/main/java/sejong/capston/yechef/domain/Gpt/service

yechef/src/main/java/sejong/capston/yechef/domain/Gpt/service/GptService.java

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -40,30 +40,33 @@ public RecipeParseResultDto parseRecipe(String rawRecipe) {
4040
◆ 출력: 아래 JSON 형식에 맞춘 **순수 JSON 데이터만** 출력 (마크다운, 설명 문구, 주석 모두 금지)
4141
4242
{
43-
"title": "<요리명>", ← 제목이 명시되어 있지 않으면, 재료와 과정을 참고하여 가장 기본적인 음식 이름으로 추정해서 작성하세요.
44-
"text": "<한 줄 요리 설명>", ← 한 줄로 요리에 대한 간단한 설명 넣어줘
45-
"servings": "<인분 수>", ← 몇 인분인지 반드시 작성(기본 값은 1인분, 레시피 텍스트 내용 기반으로 추측)
43+
"title": "<요리명>",
44+
"text": "<한 줄 요리 설명>",
45+
"servings": "<인분 수>",
4646
"ingredients": [
4747
{ "name": "<재료명>", "quantity": "<수량 또는 계량 단위>" },
4848
4949
],
5050
"steps": [
51-
{ "stepNumber": 1, "action": "<단일 행위>", "ingredients": <단계에쓰인재료들>, "description": "<상세 설명>" },
51+
{ "stepNumber": 1, "action": "<단일 동사>", "ingredients": <단계에 쓰인 재료들>, "description": "<상세 설명>" },
5252
5353
]
5454
}
5555
5656
▣ 출력 규칙
57-
1. steps는 문장을 가장 작은 단위의 실제 행동 단위로 쪼개서 작성합니다. (예: "자르고 볶는다" → "자르기", "볶기"로 나누기)
58-
2. action 값은 짧은 한국어 동사 또는 동사구여야 합니다. (예: "떡 준비", "칼집 넣기")
59-
3. description에는 어떤 재료를 어떻게 다루는지, 시간, 온도 등 구체 정보를 포함합니다.
60-
4. 출력은 반드시 JSON만 포함되도록 하세요. 설명이나 마크다운 블록 없이 반환합니다.
61-
5. steps 배열의 각 항목에는 "stepNumber" 필드가 반드시 있어야 하며, 그 값은 **1부터 시작해 1씩 순차 증가**해야 합니다.
62-
절대로 0이거나 중복되면 안 됩니다. (예: 1, 2, 3, …)
63-
6. steps 내부 키 "ingredients": 해당 레시피 단계에 설명(description)에 언급된 재료명만 한국어로 배열에 담아 반환
64-
(수식어 제거, "물" 제외)
57+
1. steps는 문장을 가장 작은 단위의 실제 **조리** 행동으로 쪼개서 작성합니다.
58+
2. **action 필드에는 재료를 포함하지 말고 ‘썰기·볶기·넣기·섞기’처럼 ‘~기’ 형태의 순수 한국어 동사만 입력**합니다.
59+
- 예) “당근을 넣는다” → action: "넣기"
60+
3. description에는 어떤 재료를 어떻게 다루는지, 시간·온도 등 구체 정보를 포함합니다.
61+
4. 출력은 반드시 JSON만 포함하도록 하세요.
62+
5. steps 배열 각 항목의 "stepNumber"는 1부터 1씩 증가해야 합니다.
63+
6. steps의 "ingredients"에는 해당 단계 description에 언급된 재료명만 한국어로 배열에 담아 반환
64+
(수식어 제거, **“물” 제외**)
65+
7. **“~을/를 준비합니다”, “~을 준비해 주세요” 등 ‘준비하다/준비합니다’로 끝나는 준비 단계는 steps에 포함하지 않습니다.
66+
단, 해당 문장에서 등장하는 재료는 ingredients 배열에만 반영하세요.**
6567
""";
6668

69+
6770
// GPT 호출
6871
List<sejong.capston.yechef.domain.Gpt.dto.Message> messages = List.of(
6972
new sejong.capston.yechef.domain.Gpt.dto.Message("system", systemPrompt),

0 commit comments

Comments
 (0)