介绍

这是一个和chatgpt交互的popclip扩展,通过该扩展你能轻松在mac上选中文字并即时得到内容修改反馈

目前diy的扩展功能如下:

公众号爆款标题:选中一段文字标题或内容改写为吸引人眼球的标题

小红书风格:独特的Emoji 风格润色润色内容

总结内容:归纳总结内容,同时用列表列出要点

中英互译:将发送的文字内容都翻译成中文,如果内容是中文则翻译成标准的英文

内容润色:检查接收到的文字的拼写、语法错误,对其进行润色

注意:开启扩展后需要填写自己的api key,安装方式为选中所有代码自动识别安装或将代码保存本地为js文件并拖入popclip启用

代码如下:

// #popclip extension for ChatGPT
// name: smart writer
// icon: iconify:fluent:calligraphy-pen-24-regular
// language: javascript
// module: true
// entitlements: [network]
// options: [{
//   identifier: apikey, label: API Key, type: string,
//   description: 'Obtain API key from https://platform.openai.com/account/api-keys'
// }]

const prefixes = {
    "polish": "你是我的写作助手,检查接收到的文字的拼写、语法错误,对其进行润色:\n",
    "xiaohongshu": "扮演文本助理,使用小红书的 Emoji 风格润色我的内容,特点是每行开头都是一个相关表情符号,达到引人入胜的目的:\n",
    "Summarize": "归纳总结这些文字,同时用列表列出要点:\n",
    "translate": "将发送的文字内容都翻译成中文,如果内容是中文则翻译成标准的英文:\n",
    "Official": "你将扮演专业的微信公众号运营者,优化润色我给的内容成为爆款标题:\n",
}
async function chat (input, options, lang, prefixName) {
  const openai = require("axios").create({
    baseURL: "https://api.openai.com/v1",
    headers: { Authorization: `Bearer ${options.apikey}` },
  });

let messages
  switch (lang) {
    case "en":
      messages = [
        {"role": "system", "content": "I want you act as a proofreader. I will provide you texts and I would like you to review them for any spelling, grammar, or punctuation errors."},
        {"role": "user", "content": `Proofread the following content and give me the result without extra delarations or comments:\n\n${input.text}`},
      ]
      break;
    case "zh":
      messages = [
        {"role": "system", "content": "你是我的写作助手,检查接收到的文字的拼写、语法错误,向我提供修改后的文字。"},
        {"role": "user", "content": `修改下面的文字,直接输出修改后的结果,不需要额外的声明:\n${input.text}`}
      ]
      break;
  }

  if (prefixName) {
      messages = [{"role": "user", "content": `${prefixes[prefixName]}${input.text}`}]
  }

  const { data } = await openai.post("/chat/completions", {
    model: "gpt-3.5-turbo",
    messages,
  });
  const result = data.choices[0].message;
  return input.text.trimEnd() + "\n\n" + result.content.trim();
};

exports.actions = [
{
  title: "公众号爆款标题",
  icon: "circle 标题",
  after: "paste-result",
  code: async (input, options) => chat(input, options, "", "Official"),
},
{
  title: "小红书风格",
  icon: "circle 红书",
  after: "paste-result",
  code: async (input, options) => chat(input, options, "", "xiaohongshu"),
},
{
  title: "总结内容",
  icon: "circle 总结",
  after: "paste-result",
  code: async (input, options) => chat(input, options, "", "Summarize"),
},
{
  title: "中英互译",
  icon: "square 翻译",
  after: "paste-result",
  code: async (input, options) => chat(input, options, "", "translate"),
},
{
  title: "润色",
  icon: "square 润色",
  after: "paste-result",
  code: async (input, options) => chat(input, options, "", "polish"),
},
];

代码解释:

代码使用JavaScript编写,主要功能是使用OpenAI的ChatGPT模型作为文本内容修改校验工具。

定义了一个名为"prefixes"的对象,它包含了一些预定义的文本前缀,用于不同的校对任务。

定义了一个名为"chat"的异步函数,它接受输入文本、选项、语言和前缀名称作为参数。在函数内部,它使用提供的API密钥创建了一个基于Axios的OpenAI实例。然后,根据语言和前缀名称,构造了不同的对话消息数组。最后,使用OpenAI的Chat Completions API向模型发送请求,并返回校对结果。

导出了一个包含多个动作的数组"exports.actions"。每个动作都有一个标题、图标和代码块。代码块调用了"chat"函数,并根据不同的动作类型传递了相应的参数。

prompt说明

system: 你是我的写作助手,检查接收到的文字的拼写、语法错误,向我提供修改后的文字
user: 修改下面的文字,直接输出修改后的结果,不需要额外的声明

system和user代表对话角色,通过该设定加入prefixes预设的不同任务使ai可以按不同预设进行修改回复

其中在prefixes数组中你可以自行修改为不同的预设

功能介绍

引入的示例文本:

延时摄影(Time-lapse photography)是以一种将时间压缩的拍摄技术。其拍摄的是一组照片或是视频,后期通过照片串联或是视频抽帧,把几分钟、几小时甚至是几天几年的过程压缩在一个较短的时间内以视频的方式播放。分为固定机位与大范围场景,其中固定机位又包含完全固定与小范围(通过电控滑轨、云台实现机位的小范围移动),大范围场景按移动方向分为纵向移动、横向移动,按焦点划分为固定焦点与移动焦点

小红书风格:

😍 延时摄影(Time-lapse photography)是一种酷炫的拍摄技术!📷 想象一下,通过照片或视频把几分钟、几小时甚至是几天几年的过程压缩成一个短视频,简直就是时间的魔法!⏰🔮

📸 延时摄影包括固定机位和大范围场景。固定机位又分为完全固定和小范围移动(使用电控滑轨、云台等设备)。大范围场景则按照移动方向分为纵向移动和横向移动,还可以根据焦点的变化划分为固定焦点和移动焦点。🌈

💡 想一想,你可以用延时摄影记录夜空中星星的轨迹,花朵的绽放,云彩的变幻,还有城市的日夜交替。🌌🌼🌥️ 时间凝固,美丽的瞬间就这样被捕捉,让人仿佛穿越时空感受到神奇的回忆。✨🌍

🎥 这种神奇的拍摄技术不仅仅是给我们带来视觉上的享受,还可以用来展示自然、城市的变化,让我们重新审视生活中微小的变化和不可思议的美丽。💫❤️

😊 所以,尽情探索延时摄影的魅力吧!用你的相机记录那些瞬息即逝的特殊时刻,让我们一起留住时间的美好!⏳✨

延时摄影是一种将时间压缩的拍摄技术

延时摄影可以通过照片串联或视频抽帧将长时间的过程压缩成短视频

延时摄影包括固定机位和大范围场景

固定机位可以是完全固定或通过设备实现小范围移动

大范围场景可以按照移动方向分为纵向移动和横向移动

大范围场景也可以根据焦点的变化划分为固定焦点和移动焦点

延时摄影可以记录星星轨迹、花朵的绽放、云彩的变幻等美丽时刻

延时摄影展示了自然和城市的变化,让人重新审视生活中的美丽和变化

延时摄影可以捕捉瞬息即逝的特殊时刻,留住时间的美好

总结:

😍 延时摄影(Time-lapse photography)是一种酷炫的拍摄技术!📷 想象一下,通过照片或视频把几分钟、几小时甚至是几天几年的过程压缩成一个短视频,简直就是时间的魔法!⏰🔮

📸 延时摄影包括固定机位和大范围场景。固定机位又分为完全固定和小范围移动(使用电控滑轨、云台等设备)。大范围场景则按照移动方向分为纵向移动和横向移动,还可以根据焦点的变化划分为固定焦点和移动焦点。🌈

💡 想一想,你可以用延时摄影记录夜空中星星的轨迹,花朵的绽放,云彩的变幻,还有城市的日夜交替。🌌🌼🌥️ 时间凝固,美丽的瞬间就这样被捕捉,让人仿佛穿越时空感受到神奇的回忆。✨🌍

🎥 这种神奇的拍摄技术不仅仅是给我们带来视觉上的享受,还可以用来展示自然、城市的变化,让我们重新审视生活中微小的变化和不可思议的美丽。💫❤️

😊 所以,尽情探索延时摄影的魅力吧!用你的相机记录那些瞬息即逝的特殊时刻,让我们一起留住时间的美好!⏳✨

标题修改:

以我本篇文章的标题为例,ai下的标题:【震惊!来自未来的超级工具,让你轻松成为AI写手!】

最后,希望你可以自己进行添加修改并使用它