fix: 优化 Slug 生成逻辑并添加错误提示与 AI 模型更新
continuous-integration/drone/push Build is passing

This commit is contained in:
seahi committed 2026-08-08 08:52:21 +08:00
1 parent b5e7f4d2ce
commit d41c9e0f49
2 files changed
+21 -9

No files matched your search

+10 -3
View File
@@ -1,3 +1,5 @@
import { addToast } from '$lib/stores/toast.svelte';
/** /**
* 发送请求至后台 /api/slugify 接口生成英文 Slug * 发送请求至后台 /api/slugify 接口生成英文 Slug
*/ */
@@ -13,12 +15,17 @@ export async function fetchSlug(text: string): Promise<string> {
body: JSON.stringify({ text }) body: JSON.stringify({ text })
}); });
if (res.ok) { const data = (await res.json()) as { slug?: string; error?: string };
const data = (await res.json()) as { slug?: string };
return data.slug || ''; if (!res.ok || data.error) {
addToast(data.error || '获取 Slug 失败', 'error');
return '';
} }
return data.slug || '';
} catch (err) { } catch (err) {
console.error('获取 Slug 错误:', err); console.error('获取 Slug 错误:', err);
addToast('网络请求异常,无法获取 Slug', 'error');
} }
return ''; return '';
} }
+11 -6
View File
@@ -27,24 +27,29 @@ export const POST: RequestHandler = async ({ request, platform }) => {
let translatedText = ''; let translatedText = '';
// 优先调用 Cloudflare Workers AI (@cf/meta/m2m100_418m 翻译模型) // 优先调用 Cloudflare Workers AI (@cf/meta/m2m100-1.2b 翻译模型)
if (platform?.env?.AI) { if (platform?.env?.AI) {
try { try {
const res = (await platform.env.AI.run('@cf/meta/m2m100_418m', { const res = (await platform.env.AI.run('@cf/meta/m2m100-1.2b', {
text, text,
source_lang: 'zh', source_lang: 'chinese',
target_lang: 'en' target_lang: 'english'
})) as { translated_text?: string }; })) as { translated_text?: string };
if (res?.translated_text) { if (res?.translated_text) {
translatedText = res.translated_text; translatedText = res.translated_text;
} }
} catch (err) { } catch (err) {
console.warn('Workers AI 翻译异常,启动安全降级:', err); const errorMsg = err instanceof Error ? err.message : String(err);
console.warn('Workers AI 翻译异常:', err);
return json({ error: `AI 翻译异常: ${errorMsg}` }, { status: 500 });
} }
} else {
// 没有找到 AI 绑定
return json({ error: '本地开发未绑定 Cloudflare AI 或环境缺失' }, { status: 500 });
} }
// 若没有获取到英文翻译结果(平台未绑定 AI 或 AI 调用异常),将自动进入最底层的安全兜底 // 若没有获取到英文翻译结果(AI 调用异常),将自动进入最底层的安全兜底
// 如果得到了英文翻译,格式化为 kebab-case Slug // 如果得到了英文翻译,格式化为 kebab-case Slug
if (translatedText) { if (translatedText) {