Skip to content

Commit e08bb89

Browse files
Merge pull request #176 from kt-cloud-basic-project/SHOP-138
fix: AI ์ฑ—๋ด‡ ์‘๋‹ต์„ JSON ๊ธฐ๋ฐ˜ ๋‹ต๋ณ€ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๋„๋ก ์ˆ˜์ •
2 parents 918aba2 + c9333b9 commit e08bb89

2 files changed

Lines changed: 16 additions & 23 deletions

File tree

โ€Žsrc/main/java/com/kt/integration/openai/advisor/OpenAICustomAdvisor.javaโ€Ž

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -82,34 +82,30 @@ public ChatClientRequest before(ChatClientRequest chatClientRequest, AdvisorChai
8282
String answer = "";
8383
if (topScoreSearchData.content() != null) {
8484
answer = topScoreSearchData.content().stream()
85-
.map(c -> extractAnswerFromVectorResult(c.text()))
85+
.map(OpenAIResponse.Content::text)
8686
.filter(s -> s != null && !s.isBlank())
87-
.findFirst()
88-
.orElse("");
87+
.collect(java.util.stream.Collectors.joining("\n"));
8988
}
90-
9189
String contextText;
9290

9391
// FAQ๊ฐ€ ์—†์œผ๋ฉด ์•ˆ๋‚ด, ์žˆ์œผ๋ฉด FAQ JSON ๊ธฐ๋ฐ˜ ๋‹ต๋ณ€
9492
if (answer.isBlank()) {
9593
contextText = "์ฃ„์†กํ•˜์ง€๋งŒ, ํ˜„์žฌ FAQ์— ๋“ฑ๋ก๋œ ์ •๋ณด ์™ธ์—๋Š” ๋‹ต๋ณ€ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.";
96-
}
94+
} else {
95+
contextText = """
9796
97+
[์ฐธ๊ณ  ์ •๋ณด]
98+
%s
99+
""".formatted(answer);
100+
}
98101
// FAQ๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ ๊ธฐ์กด ๋กœ์ง ๊ทธ๋Œ€๋กœ
99-
contextText = """
100-
๋‹ค์Œ์€ ์ฐธ๊ณ  ์ •๋ณด์ด๋‹ค.
101-
์•„๋ž˜ ๋‚ด์šฉ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์‚ฌ์šฉ์ž์˜ ์งˆ๋ฌธ์— ๋‹ต๋ณ€ํ•˜๋˜,
102-
์ตœ์ข… ๋‹ต๋ณ€ ๋ฌธ์žฅ๋งŒ ์ถœ๋ ฅํ•˜๋ผ.
103-
104-
[์ฐธ๊ณ  ์ •๋ณด]
105-
%s
106-
""".formatted(answer);
107102

108103
var newPrompt = prompt.augmentSystemMessage(contextText);
109104

110105
return chatClientRequest.mutate()
111106
.prompt(newPrompt)
112107
.build();
108+
113109
}
114110

115111
@Override

โ€Žsrc/main/java/com/kt/integration/openai/api/DefaultChatApi.javaโ€Ž

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,11 @@ public class DefaultChatApi implements OpenAIChatApi {
2222
public String search(String query) {
2323
return clientClient.prompt()
2424
.system("""
25-
๋„ˆ๋Š” ๊ณ ๊ฐ์„ผํ„ฐ ์ฑ—๋ด‡์ด๋‹ค.
26-
์ œ๊ณต๋œ ์ฐธ๊ณ  ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์งˆ๋ฌธ์— ๋‹ต๋ณ€ํ•˜๋˜,
27-
์ตœ์ข… ๋‹ต๋ณ€ ๋ฌธ์žฅ๋งŒ ์ถœ๋ ฅํ•ด๋ผ.
28-
์„ค๋ช…, ์ถœ์ฒ˜, ๋ฌธ๋งฅ, JSON ํ˜•์‹์€ ์ ˆ๋Œ€ ํฌํ•จํ•˜์ง€ ๋งˆ๋ผ.
29-
ํ•œ๋‘ ๋ฌธ์žฅ์œผ๋กœ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ๋‹ต๋ณ€ํ•ด๋ผ.
30-
""")
31-
.user(query)
32-
.call()
33-
.content();
25+
๋„ˆ์˜ ์ž‘์—…์€ "๋ณต์‚ฌ-๋ถ™์—ฌ๋„ฃ๊ธฐ"์ด๋‹ค.
26+
27+
๊ทœ์น™:
28+
[์ฐธ๊ณ  ์ •๋ณด]์— ์žˆ๋Š” answer ํ…์ŠคํŠธ๋ฅผ ๊ธ€์ž ๋‹จ์œ„๋กœ ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅํ•œ๋‹ค.
29+
์š”์•ฝ/์˜์—ญ/์ •๋ฆฌ/๋ฌธ์žฅ๋ถ€ํ˜ธ ๋ณ€๊ฒฝ/๊ณต๋ฐฑ ๋ณ€๊ฒฝ์„ ์ ˆ๋Œ€ ํ•˜์ง€ ์•Š๋Š”๋‹ค.
30+
[์ฐธ๊ณ  ์ •๋ณด]๊ฐ€ ์—†์œผ๋ฉด ์ •ํ™•ํžˆ ๋‹ค์Œ๋งŒ ์ถœ๋ ฅํ•œ๋‹ค: ์ฃ„์†กํ•˜์ง€๋งŒ, ํ˜„์žฌ FAQ์— ๋“ฑ๋ก๋œ ์ •๋ณด ์™ธ์—๋Š” ๋‹ต๋ณ€ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.""").user(query).call().content();
3431
}
35-
}
32+
}

0 commit comments

Comments
ย (0)