84 lines
3.4 KiB
JavaScript
84 lines
3.4 KiB
JavaScript
/*
|
|
* tools.js
|
|
* AI 工具定义与本地模拟实现。
|
|
* 添加新工具:往 TOOLS 数组里追加一个对象即可。
|
|
*/
|
|
|
|
// 工具列表:id / name / icon / desc / placeholder / prompt
|
|
const TOOLS = [
|
|
{
|
|
id: 'rewrite',
|
|
name: '文本改写',
|
|
icon: '✍️',
|
|
desc: '把一段文字改写得更通顺、更专业。',
|
|
placeholder: '粘贴需要改写的文字...',
|
|
prompt: (input) => `请将以下内容改写得更通顺、更专业,保持原意:\n\n${input}`
|
|
},
|
|
{
|
|
id: 'explain-code',
|
|
name: '代码解释',
|
|
icon: '🧑💻',
|
|
desc: '解释一段代码的作用和逻辑。',
|
|
placeholder: '粘贴一段代码...',
|
|
prompt: (input) => `请用简洁的中文解释以下代码的作用、关键逻辑和可能的坑:\n\n${input}`
|
|
},
|
|
{
|
|
id: 'copywriting',
|
|
name: '文案生成',
|
|
icon: '📣',
|
|
desc: '根据主题生成吸睛的营销文案。',
|
|
placeholder: '输入主题,例如:一款便携咖啡机',
|
|
prompt: (input) => `请为主题「${input}」写 3 条不同风格的营销文案,每条不超过 50 字。`
|
|
},
|
|
{
|
|
id: 'translate',
|
|
name: '中英翻译',
|
|
icon: '🌐',
|
|
desc: '自动识别中英文并互译。',
|
|
placeholder: '输入中文或英文...',
|
|
prompt: (input) => `请将以下内容翻译成另一种语言(中文↔英文),只输出译文:\n\n${input}`
|
|
},
|
|
{
|
|
id: 'summary',
|
|
name: '内容总结',
|
|
icon: '📝',
|
|
desc: '把长文提炼成要点。',
|
|
placeholder: '粘贴一段长文...',
|
|
prompt: (input) => `请将以下内容总结为 3-5 条要点,用短句输出:\n\n${input}`
|
|
},
|
|
{
|
|
id: 'name-idea',
|
|
name: '起名灵感',
|
|
icon: '💡',
|
|
desc: '为产品 / 项目 / 频道起名。',
|
|
placeholder: '输入你的产品描述或关键词...',
|
|
prompt: (input) => `请根据以下描述,给出 10 个有创意的名字,并附一句话理由:\n\n${input}`
|
|
}
|
|
];
|
|
|
|
/**
|
|
* 本地模拟实现:在没有配置 API 时使用。
|
|
* 根据工具 id 返回一段合理的假数据,让页面可以演示。
|
|
*/
|
|
function mockRun(toolId, input) {
|
|
const text = (input || '').trim();
|
|
if (!text) return '⚠️ 请先输入内容。';
|
|
|
|
switch (toolId) {
|
|
case 'rewrite':
|
|
return `【改写结果】\n${text.replace(/。/g, '。\n')}\n\n(以上为示例改写,接入真实 API 后效果更佳)`;
|
|
case 'explain-code':
|
|
return `【代码解释】\n这段代码主要做了以下几件事:\n1. 定义并初始化相关变量;\n2. 对输入进行处理与判断;\n3. 输出最终结果。\n\n原始代码长度:${text.length} 字符。`;
|
|
case 'copywriting':
|
|
return `【文案示例】\n1. 主题「${text}」,让生活更简单。\n2. 遇见「${text}」,遇见更好的自己。\n3. 「${text}」,你值得拥有。`;
|
|
case 'translate':
|
|
return `【翻译示例】\n${text}\n\n(此处为模拟翻译,接入 API 后自动中英互译)`;
|
|
case 'summary':
|
|
return `【总结要点】\n• 内容长度:${text.length} 字符\n• 核心主题:与「${text.slice(0, 12)}...」相关\n• 建议:接入真实 API 获取高质量总结`;
|
|
case 'name-idea':
|
|
return `【起名灵感】\n1. Nova${text.slice(0, 4)}\n2. Lumo\n3. 星火\n4. Echo\n5. 极光\n6. Pulse\n7. 山海\n8. Vertex\n9. 微光\n10. Orbit`;
|
|
default:
|
|
return '(模拟结果)' + text;
|
|
}
|
|
}
|