大雨:Github热门提示词框架扩展
大雨:Github热门提示词框架扩展
大雨:Github热门提示词框架扩展 大雨:Github热门提示词框架扩展 Modified April 12, 2024 3、使用说明 它的逻辑是通过动态加载github上的json文件,再创建页面,这里的json文件就是框架的字段,结构大概是这样的: Code block YAML name: "GCSWA" author: "小七姐" description: 通过全局思维,整体框架来理解要解决的问题 fields: Role: info: 角色,如学术阅读 text: 学术阅读 Profile: info: 版本号,作者等信息 text: "author: Arthur" "version: 0.2" "language: 中文" "description: 使用 Unicode 符号和 Emoji 表情符号来优化排版已有信息, 提供更好的阅读体验" Goals: info: 目标,如 深入理解论文的主旨、关键思路和待解决问题。 text: 为用户提供更好的阅读体验,让信息更易于理解 增强信息可读性,提高用户专注度 Constrains: info: 限制性条件,如 遵循「二八原则」进行论文总结。 输出阅读的总结文字。 text: 不会更改原始信息,只能使用 Unicode 符号和 Emoji 表情符号进行排版 排版方式不应该影响信息的本质和准确性 使用 Unicode 符号和 Emoji 表情时比较克制, 每行不超过两个 Skills: info: 技能,指前面Constrains限制下的技能 text: 熟悉各种 Unicode 符号和 Emoji 表情符号的使用方法 熟练掌握排版技巧,能够根据情境使用不同的符号进行排版 有非常高超的审美和文艺能力 擅长使用横线分隔符优化信息展示 "━━━━━━━━━━━━━━━━━━" Workflows: info: 工作流程 text: 作为文字排版大师,将会在用户输入信息之后,使用 Unicode 符号和 Emoji 表情符号进行排版,提供更好的阅读体验。 1. 整体信息的第一行为标题行, 对其进行线框包围, 提升阅读体验 2. 信息 item 前面添加序号 Emoji, 方便用户了解信息编号 3. 信息 item 前面添加一个 Emoji, 对应该信息的核心观点 4. 末尾如果有链接, 则将其用线框分隔 后续不断加json文件就可以了,为什么不放在一个文件里面,其实也可以,不过是为了加一个外部的隔离方便点。 更全面的框架应用可以参考这篇文章 Prompt提示词没那么玄乎也就是个沟通方式 大雨整理 代码是开源的,这个工具可以用来放自己常用的框架,可以去github上fork,修改frameworks下面的内容就可以了 4、其他用途 这算是一个简单的提效工具,未必要用这些框架,比如说写小红书文案等等,涉及固定结构化的,都可以fork本库自己加就好了。 5、可能运行失败的原因 这个扩展用了几个外部的js库,需要设置安全性: • githubusercontent.com • cdn.jsdelivr.net • cdnjs.cloudflare.com 6、完整制作过程(GPT) You Code block Python 我想做一个tampermonkey插件,期望达到的效果是在页面的chatpgt页面的右侧出现一个小条,显示"框架助手",鼠标移动过去的时候,它会变成一个比较大的对话框,鼠标移走了又缩回去了。这个对话框里面显示各种prompt框架,每个框架都会有一段文字说明,并出现几个输入框,用来输入信息,最下面有个按钮把信息转换成信息发给chatgpt的对话框,请根据这些信息给出一个基本的代码框架。其中prompt框架的维护是github上某个文件夹里面的yaml文件,一个yaml文件代表一个框架 ChatGPT Code block JSON 要实现这样的Tampermonkey脚本,我们需要完成几个关键步骤: 1. 创建浮动侧边栏 :当用户将鼠标悬停在上面时,它会展开成一个更大的对话框;当鼠标移开时,它会缩回去。 2. 解析GitHub上的YAML文件 :这需要从GitHub获取YAML文件,然后解析这些文件以展示不同的prompt框架。 3. 界面交互 :在对话框中显示prompt框架的信息,提供输入框供用户填写信息,以及一个按钮用来将这些信息发送到ChatGPT对话框。 以下是一个简化版的Tampermonkey脚本框架,演示如何开始构建这个功能。请注意,这只是一个起点,你可能需要根据自己的具体需求进行调整和完善。 Code block YAML name: "GCSWA" author: "小七姐" description: 通过全局思维,整体框架来理解要解决的问题 fields: Role: info: 角色,如学术阅读 text: 学术阅读 Profile: info: 版本号,作者等信息 text: "author: Arthur" "version: 0.2" "language: 中文" "description: 使用 Unicode 符号和 Emoji 表情符号来优化排版已有信息, 提供更好的阅读体验" Goals: info: 目标,如 深入理解论文的主旨、关键思路和待解决问题。 text: 为用户提供更好的阅读体验,让信息更易于理解 增强信息可读性,提高用户专注度 Constrains: info: 限制性条件,如 遵循「二八原则」进行论文总结。 输出阅读的总结文字。 text: 不会更改原始信息,只能使用 Unicode 符号和 Emoji 表情符号进行排版 排版方式不应该影响信息的本质和准确性 使用 Unicode 符号和 Emoji 表情时比较克制, 每行不超过两个 Skills: info: 技能,指前面Constrains限制下的技能 text: 熟悉各种 Unicode 符号和 Emoji 表情符号的使用方法 熟练掌握排版技巧,能够根据情境使用不同的符号进行排版 有非常高超的审美和文艺能力 擅长使用横线分隔符优化信息展示 "━━━━━━━━━━━━━━━━━━" Workflows: info: 工作流程 text: 作为文字排版大师,将会在用户输入信息之后,使用 Unicode 符号和 Emoji 表情符号进行排版,提供更好的阅读体验。 1. 整体信息的第一行为标题行, 对其进行线框包围, 提升阅读体验 2. 信息 item 前面添加序号 Emoji, 方便用户了解信息编号 3. 信息 item 前面添加一个 Emoji, 对应该信息的核心观点 4. 末尾如果有链接, 则将其用线框分隔 Code block Python 我想做一个tampermonkey插件,期望达到的效果是在页面的chatpgt页面的右侧出现一个小条,显示"框架助手",鼠标移动过去的时候,它会变成一个比较大的对话框,鼠标移走了又缩回去了。这个对话框里面显示各种prompt框架,每个框架都会有一段文字说明,并出现几个输入框,用来输入信息,最下面有个按钮把信息转换成信息发给chatgpt的对话框,请根据这些信息给出一个基本的代码框架。其中prompt框架的维护是github上某个文件夹里面的yaml文件,一个yaml文件代表一个框架 Code block JSON 要实现这样的Tampermonkey脚本,我们需要完成几个关键步骤: 1. 创建浮动侧边栏 :当用户将鼠标悬停在上面时,它会展开成一个更大的对话框;当鼠标移开时,它会缩回去。 2. 解析GitHub上的YAML文件 :这需要从GitHub获取YAML文件,然后解析这些文件以展示不同的prompt框架。 3. 界面交互 :在对话框中显示prompt框架的信息,提供输入框供用户填写信息,以及一个按钮用来将这些信息发送到ChatGPT对话框。 以下是一个简化版的Tampermonkey脚本框架,演示如何开始构建这个功能。请注意,这只是一个起点,你可能需要根据自己的具体需求进行调整和完善。 javascript // 假设这是从某处获取的JSON字符串,例如通过fetch从GitHub获取 const frameworkJson = ; // 解析JSON字符串 const framework = JSON.parse(frameworkJson); // 动态创建UI function createUI(framework) { const container = document.createElement('div'); // 框架名称和描述 const name = document.createElement('h2'); name.textContent = framework.name; const description = document.createElement('p'); description.textContent = framework.description; container.appendChild(name); container.appendChild(description); // 遍历fields创建输入框 Object.entries(framework.fields).forEach(([fieldName, field]) = { const fieldLabel = document.createElement('label'); fieldLabel.textContent = fieldName + ": "; const fieldInput = document.createElement('input'); fieldInput.setAttribute('placeholder', field.text); fieldInput.setAttribute('name', fieldName); container.appendChild(fieldLabel); container.appendChild(fieldInput); container.appendChild(document.createElement('br')); }); // 提交按钮 const submitButton = document.createElement('button'); submitButton.textContent = 'Submit'; submitButton.onclick = () = submitForm(framework.fields); container.appendChild(submitButton); document.body.appendChild(container); } // 提交表单的逻辑 function submitForm(fields) { let prompt = ""; Object.keys(fields).forEach(fieldName = { const input = document.querySelector( ); prompt += ; }); // 这里应该将prompt发送给ChatGPT的输入框 console.log(prompt); // 示例:打印到控制台 } // 调用createUI来构建UI createUI(framework); You ChatGPT javascript // ==UserScript== // @name ChatGPT 框架助手 // @namespace http://tampermonkey.net/ // @version 0.1 // @description 在ChatGPT页面侧边显示框架助手 // @match https://chat.openai.com/ // @grant GM xmlhttpRequest // @grant GM addStyle // ==/UserScript== (function() { 'use strict'; // 动态添加Tailwind CSS const tailwindLink = document.createElement('link'); tailwindLink.rel = 'stylesheet'; tailwindLink.href = 'https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css'; document.head.appendChild(tailwindLink); // 添加侧边栏样式 GM addStyle( ); // 创建侧边栏元素 const frameHelper = document.createElement('div'); frameHelper.id = 'frameHelper'; frameHelper.className = 'bg gray 100 text gray 800 p 4 rounded lg shadow transition all ease in out duration 500 cursor pointer hover:bg gray 200'; document.body.appendChild(frameHelper); // 更多的脚本逻辑... // 示例:为按钮和文本框添加Tailwind CSS样式 const submitButton = document.createElement('button'); submitButton.textContent = 'Submit'; submitButton.className = 'bg blue 500 hover:bg blue 700 text white font bold py 2 px 4 rounded'; const textarea = document.createElement('textarea'); textarea.className = 'w full h 32 p 2 border border gray 300 rounded lg'; const label = document.createElement('label'); label.textContent = 'Field Name:'; label.className = 'block text gray 700 text sm font bold mb 2'; // 动态内容区域的样式示例 dynamicContentDiv.className = 'p 4'; // 根据具体情况添加submitButton, textarea, label到相应的父元素 })(); 🐱 作者:大雨 作者:大雨 https://github.com/iaiuse/PromptFrameworksHelper GitHub iaiuse/PromptFrameworksHelper: PromptFrameworks PromptFrameworks. Contribute to iaiuse/PromptFrameworksHelper development by creating an account on GitHub. 缘起 我们知道结构化的提示词,更容易帮我们理清思路,让交流过程更加顺畅,相对也更容易得到我们想要的结果,但是 • 那么多框架一方面记不住, • 另外每次去翻也是负担。 • 像这样的提示词 所以想到用浏览器插件来辅助解决这个问题。 1、效果展示 在gpt的聊天对话框中会出现这样一个小对话框,通过上面的下拉框选择适合的框架,填写需要的内容,点发送就到下面的对话框里面去了。 我们根据情况是否再修改,然后发送过去就好了。 好处是帮我们降低了使用框架的难度。 2、安装步骤 安装tampmonkey 它是基于tampmonkey的脚本,所以要先安装tampmonkey。也就是这个 新建一个空白脚本 粘贴代码 You name: "BROKE框架–提出者:陈财猫" description: 通过全局思维,整体框架来理解要解决的问题 fields: Background text: 说明背景,为 ChatGPT 提供充足信息 Role text: 我希望ChatGPT扮演的角色 Objectives text: 我们希望实现什么 KeyResult text: 我要什么具体效果试验并调整 Evolve text: 试验并改进 Background: 用户输入的信息 Role: 用户输入的信息 Objectives: 用户输入的信息 KeyResult: 用户输入的信息 Evolve: 用户输入的信息 ChatGPT javascript // 假设你已经通过某种方式获取了YAML文件列表 const yamlFiles = [ 'https://raw.githubusercontent.com/iaiuse/PromptFrameworksHelper/main/frameworks/broke framework.yml', // 其他YAML文件URL... ]; // 示例:解析单个YAML文件并构建UI function parseAndDisplayYAML(url) { // 使用GM xmlhttpRequest或者fetch(如果CORS策略允许)来获取YAML文件内容 GM xmlhttpRequest({ method: 'GET', url: url, onload: function(response) { const yamlContent = response.responseText; // 使用一个YAML解析器来解析内容,这里假设你已经有了解析后的对象 const parsedYAML = YAML.parse(yamlContent); // 需要引入YAML解析库 // 构建UI buildUI(parsedYAML); } }); } // 构建UI function buildUI(parsedYAML) { // 创建下拉框和描述区域 const selector = document.createElement('select'); const descriptionDiv = document.createElement('div'); const fieldsDiv = document.createElement('div'); // 添加框架名称到下拉框 const option = document.createElement('option'); option.text = parsedYAML.name; selector.appendChild(option); // 显示框架描述 descriptionDiv.textContent = parsedYAML.description; // 根据fields创建输入框 parsedYAML.fields.forEach(field = { const input = document.createElement('input'); input.placeholder = field.text; // 或者 field['text'],根据YAML结构而定 fieldsDiv.appendChild(input); }); // 将元素添加到页面中 document.body.appendChild(selector); document.body.appendChild(descriptionDiv); document.body.appendChild(fieldsDiv); // 根据用户输入组合信息 const submitButton = document.createElement('button'); submitButton.textContent = 'Submit'; submitButton.onclick = function() { let combinedPrompt = ''; parsedYAML.fields.forEach((field, index) = { combinedPrompt += ; }); // 在这里将combinedPrompt发送给ChatGPT的输入框 }; document.body.appendChild(submitButton); } // 遍历并处理所有YAML文件 yamlFiles.forEach(url = { parseAndDisplayYAML(url); }); You { "name": "BROKE框架–提出者:陈财猫", "description": "通过全局思维,整体框架来理解要解决的问题", "fields":[ "Background": { "text": "说明背景,为 ChatGPT 提供充足信息" }, "Role":{ "text": "我希望ChatGPT扮演的角色" }, "Objectives":{ "text": "我们希望实现什么" }, "KeyResult":{ "text": "我要什么具体效果试验并调整" }, "Evolve":{ "text": "试验并改进" } ] } ChatGPT