调校了ai提示词
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2025-11-16 15:42:08 +08:00
parent 1473a72a2f
commit 4ed0f43164
6 changed files with 38 additions and 34 deletions

View File

@@ -20,10 +20,13 @@ const AddToFolder: React.FC<AddToFolderProps> = ({ item, setShow }) => {
const session = useSession(); const session = useSession();
const [folders, setFolders] = useState<folder[]>([]); const [folders, setFolders] = useState<folder[]>([]);
const t = useTranslations("translator.add_to_folder"); const t = useTranslations("translator.add_to_folder");
const [loading, setLoading] = useState(true);
useEffect(() => { useEffect(() => {
const username = session.data!.user!.name as string; const username = session.data!.user!.name as string;
getFoldersByOwner(username).then(setFolders); getFoldersByOwner(username)
.then(setFolders)
.then(() => setLoading(false));
}, [session.data]); }, [session.data]);
if (session.status !== "authenticated") { if (session.status !== "authenticated") {
@@ -40,36 +43,37 @@ const AddToFolder: React.FC<AddToFolderProps> = ({ item, setShow }) => {
<Container className="p-6"> <Container className="p-6">
<h1>{t("chooseFolder")}</h1> <h1>{t("chooseFolder")}</h1>
<div className="border border-gray-200 rounded-2xl"> <div className="border border-gray-200 rounded-2xl">
{(folders.length > 0 && {(loading && <span>...</span>) ||
folders.map((folder) => ( (folders.length > 0 &&
<button folders.map((folder) => (
key={folder.id} <button
className="p-2 flex items-center justify-start hover:bg-gray-50 gap-2 hover:cursor-pointer w-full border-b border-gray-200" key={folder.id}
onClick={() => { className="p-2 flex items-center justify-start hover:bg-gray-50 gap-2 hover:cursor-pointer w-full border-b border-gray-200"
createTextPair({ onClick={() => {
text1: item.text1, createTextPair({
text2: item.text2, text1: item.text1,
locale1: item.locale1, text2: item.text2,
locale2: item.locale2, locale1: item.locale1,
folders: { locale2: item.locale2,
connect: { folders: {
id: folder.id, connect: {
id: folder.id,
},
}, },
},
})
.then(() => {
toast.success(t("success"));
setShow(false);
}) })
.catch(() => { .then(() => {
toast.error(t("error")); toast.success(t("success"));
}); setShow(false);
}} })
> .catch(() => {
<Folder /> toast.error(t("error"));
{t("folderInfo", { id: folder.id, name: folder.name })} });
</button> }}
))) || <div>{t("noFolders")}</div>} >
<Folder />
{t("folderInfo", { id: folder.id, name: folder.name })}
</button>
))) || <div>{t("noFolders")}</div>}
</div> </div>
<LightButton onClick={() => setShow(false)}>{t("close")}</LightButton> <LightButton onClick={() => setShow(false)}>{t("close")}</LightButton>
</Container> </Container>

View File

@@ -263,7 +263,7 @@ export default function TranslatorPage() {
<div className="m-6 flex flex-col items-center"> <div className="m-6 flex flex-col items-center">
<h1 className="text-2xl font-light">{t("history")}</h1> <h1 className="text-2xl font-light">{t("history")}</h1>
<div className="border border-gray-200 rounded-2xl m-4"> <div className="border border-gray-200 rounded-2xl m-4">
{history.map((item, index) => ( {history.toReversed().map((item, index) => (
<div key={index}> <div key={index}>
<div className="border-b border-gray-200 p-2 group hover:bg-gray-50 flex gap-2 flex-row justify-between items-start"> <div className="border-b border-gray-200 p-2 group hover:bg-gray-50 flex gap-2 flex-row justify-between items-start">
<div className="flex-1 flex flex-col"> <div className="flex-1 flex flex-col">

View File

@@ -3,7 +3,7 @@ import { NextRequest } from "next/server";
export async function GET(req: NextRequest) { export async function GET(req: NextRequest) {
return await simpleGetLLMAnswer( return await simpleGetLLMAnswer(
`请生成%s的严式国际音标(International Phonetic Alphabet),然后直接发给我。`, `请生成[[[%s]]]的严式国际音标(International Phonetic Alphabet),然后直接发给我,不要附带任何说明`,
req.nextUrl.searchParams, req.nextUrl.searchParams,
["text"], ["text"],
); );

View File

@@ -3,7 +3,7 @@ import { NextRequest } from "next/server";
export async function GET(req: NextRequest) { export async function GET(req: NextRequest) {
return await simpleGetLLMAnswer( return await simpleGetLLMAnswer(
`请根据文本“%s”推断地区(locale)形如zh-CN、en-US然后直接发给我。`, `请根据文本[[[%s]]]推断地区(locale)形如zh-CN、en-US然后直接发给我,不要附带任何说明`,
req.nextUrl.searchParams, req.nextUrl.searchParams,
["text"], ["text"],
); );

View File

@@ -3,7 +3,7 @@ import { NextRequest } from "next/server";
export async function GET(req: NextRequest) { export async function GET(req: NextRequest) {
return await simpleGetLLMAnswer( return await simpleGetLLMAnswer(
`请翻译%s到%s然后直接发给我`, `请翻译文本[[[%s]]]到语言[[[%s]]]然后直接发给我,不要附带任何说明,不要新增任何符号`,
req.nextUrl.searchParams, req.nextUrl.searchParams,
["text", "lang"], ["text", "lang"],
); );

View File

@@ -23,7 +23,7 @@ async function callZhipuAPI(
}); });
if (!response.ok) { if (!response.ok) {
throw new Error(`API 调用失败: ${response.status}`); throw new Error(`API 调用失败: ${response.status} ${response.statusText}`);
} }
return await response.json(); return await response.json();