From 3e746a20cfadd20e7d275de1d738f3703b424c6d Mon Sep 17 00:00:00 2001 From: summerscar Date: Thu, 31 Oct 2024 23:36:59 +0900 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat(prompt):=20update?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/actions/generate-word-action.ts | 17 ++++++++++++----- scripts/open-ai.ts | 2 +- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/app/actions/generate-word-action.ts b/app/actions/generate-word-action.ts index 201989c..95e1bb6 100644 --- a/app/actions/generate-word-action.ts +++ b/app/actions/generate-word-action.ts @@ -3,12 +3,19 @@ import { isDev } from "@/utils/is-dev"; import { WORD_EXAMPLE } from "@/utils/user-dict"; import { fetchChatCompletion } from "../../scripts/open-ai"; +const promptTemplate = (word: string) => { + return ` +参考该 JSON 信息: +${JSON.stringify(WORD_EXAMPLE)} +进行一下操作: +[1] 现有单词【${word}】,若单词不是韩文请先根据该单词转换成韩文,去掉所有标点。 +[2] 如果该韩文单词没有对应的汉字词 或 不是汉字 或 该汉字词不常见,则跳过操作[3],进行操作[4]。 +[3] 如果该韩文单词有对应的汉字词,则把汉字词(使用【】包裹)也作为单词释义并放在各中语言的单词释义的第一位,如”단풍“的汉字词为”丹楓“则【丹楓】也作为单词释义之一放在首位。 +[4] 以该韩语单词作为 JSON 中的 name 字段,trans为单词释义、example为单词例句(可以使用活用后的单词)、exTrans为例句释义,生成 JSON 字符串,其他字段也应补充完整,仅返回对应的 JSON 字符串不要添加任何其他内容。`; +}; + export const generateWordAction = async (word: string) => { - const prompt = `参考该 JSON 信息 - ${JSON.stringify(WORD_EXAMPLE)} - 现有单词【${word}】,若单词不是韩文请先根据该单词转换成韩文,单词不需要任何标点。如果该韩文单词有对应的汉字词,则把汉字词(使用【】包裹)也作为单词释义并放在各中语言的单词释义的第一位,如”공부“的汉字词为”工夫“则【工夫】也作为单词释义之一放在首位, - 然后以该韩语单词作为 JSON 中的 name 字段,trans为单词释义、example为单词例句(可以使用活用后的单词)、exTrans为例句释义,生成 JSON 字符串,其他字段也应补充完整,仅返回对应的 JSON 字符串不要添加任何其他内容。 - `; + const prompt = promptTemplate(word); isDev && console.log("[generateWordAction][prompt]:", prompt); const result = await fetchChatCompletion([ { diff --git a/scripts/open-ai.ts b/scripts/open-ai.ts index 986b3e9..4622ce3 100644 --- a/scripts/open-ai.ts +++ b/scripts/open-ai.ts @@ -24,7 +24,7 @@ async function fetchChatCompletion(messages: ChatCompletionMessageParam[]) { if (process.env.AI === "gemini") { const geminiModel = gemini_AI.getGenerativeModel({ - model: "gemini-1.5-flash", + model: "gemini-1.5-pro", }); const result = await geminiModel.generateContent( messages[0].content as string,