ingFang SC", system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;color: rgb(31, 35, 41);margin: 0px 0px 4px;word-break: break-all;min-height: 20px;">想知道大家的提示词是怎么管理的?ingFang SC", system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;color: rgb(31, 35, 41);margin: 0px 0px 4px;word-break: break-all;min-height: 20px;">除了数据分析师的工作、公众号运营外,我还有副业自营着k12教育赛道的业务,大大小小有几十个提示词,每次要找的时候都特别费劲。ingFang SC", system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;color: rgb(31, 35, 41);margin: 0px 0px 4px;word-break: break-all;min-height: 20px;">我在想是不是可以用AI去帮我管理呢?ingFang SC", system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;color: rgb(31, 35, 41);margin: 0px 0px 4px;word-break: break-all;min-height: 20px;">于是我在朋友圈问了一嘴,发现同样也有朋友在苦恼这个问题。ingFang SC", system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;color: rgb(31, 35, 41);margin: 0px 0px 4px;word-break: break-all;min-height: 20px;">同时,在朋友的推荐下,我也找到一个不错的项目,利用MCP的能力让AI实时根据用户的需求来选择合适的提示词。ingFang SC", system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;color: rgb(31, 35, 41);margin: 0px 0px 4px;word-break: break-all;min-height: 20px;">项目地址在这:https://github.com/gdli6177/mcp-prompt-serveringFang SC", system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;color: rgb(31, 35, 41);margin: 0px 0px 4px;word-break: break-all;min-height: 20px;">但对我来说,还不够:- 1.因为这项目的提示词需要以文件的形式保存在本地,那岂不是我换台设备就无法用了?
- 2.需要本地做配置安装,想要DIY还要写代码,太麻烦了
ingFang SC", system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;color: rgb(31, 35, 41);margin: 0px 0px 4px;word-break: break-all;min-height: 20px;">所以我就有了更具体的想法:ingFang SC", system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;color: rgb(31, 35, 41);margin: 0px 0px 4px;word-break: break-all;min-height: 20px;">把提示词存到飞书文档,同样是借助MCP的能力让AI读取文档后获取提示词即可。甚至可以让AI去管理这个表格,完成增删查改的操作。ingFang SC", system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;color: rgb(31, 35, 41);margin: 0px 0px 4px;word-break: break-all;min-height: 20px;">说干就干。效果如下:在对话中,AI能根据我的需求用MCP到我飞书表格里找合适的提示词来回答问题。 操作流程如下: - 4.发布Dify工作流,并打包成MCP服务:包含查询提示词、新建提示词2个工具
- 5.Cherry配置MCP,直接对话调用表格的提示词
1. 飞书表格处理新建一个多维表格,好处是能通过表单的形式去添加提示词,可以扩充更多玩法 怎么新建就不说了特别简单。
2. 新建飞书应用,获取读写权限关键在于怎么拿到表格的读写权限,能在Dify「远程」操作飞书? 2.1 进入飞书开发者后台https://open.feishu.cn/ 点「创建企业自建应用」 随便填应用的信息,然后点「创建」 如图操作,直接把多维表格的全部权限打开。
在「应用能力」这里,添加一个「机器人」的能力
点顶部的「创建版本」,随意填写版本详情,然后点「保存」-「确认发布」 发布后,新建一个群聊,把我们刚新建好的应用机器人拉到群里 回到我们的多维表格,把刚才新建的群聊添加协作者,并且开通「可编辑」权限 最后,回到飞书创作者后台,在「凭证与基础信息」的位置,拿到「App ID」「App Secret」即可 至此,我们就完成了飞书表格的设置
3. Dify新建工作流大家可以根据自己的需要来选平台,也可以用n8n 这里以Dify为例,可以配合我上次的文章来搭配学习:5000字教程:用AI实时查询数据库,自动生成可视化图表 | Dify工作流 首先,安装必要的插件: 进入插件模块,搜索「feishu」,注意一定是拼音,然后找到多维表格的插件给装上。 同理,搜索「MCP」把下图的MCP Compatible Dify Tools装上,这是能帮我们把工作流转成MCP的插件。
⚠️注意,Dify至少要求是1.2.0版本的,现在新装的话就是1.4.0版本。 接着就可以去新建「工作流」了。 还记得我们前面说的要实现查询提示词和创建提示词吗?这是两个工具能力,所以是两个工作流。 我们先做第一个:查询提示词 工作流非常简单,长下图这样: 其中, 「开始」节点,需要新建一个字段,用于接收用户的输入,同时,也是MCP的入口 接着,「查询记录」节点这里就是飞书多维表格的插件,刚添加节点的时候需要去授权,而授权就要把前面拿到的app id 和 app secret填入即可。 下图这里就要填入多维表格信息,告诉dify你要操作哪个表?怎么看呢? 要在飞书里点分享把分享地址粘贴到浏览器打开,才能看到具体的表格。 以我这个表格的地址为例: https://ry6uq5vtyu.feishu.cn/base/Q1wcb9WDPaqNNSs85f2c6fN3nRb?table=tblDHeaFtA3xuEJy&view=vewcD3QJsc - base后面跟着的、在问号?之前的Q1wcb9WDPaqNNSs85f2c6fN3nRb就是app_token - 而table= 后面跟着的、在符号&之前的tblDHeaFtA3xuEJy就是table_id 其他更多条件可以看节点里的提示。
接下来是「模板转换」节点 这是因为从飞书获取出来的数据并不是字符串格式,无法直接给大模型,需要在这里转成字符串 注意输入的变量要选择「查询记录」的json结果 接着,就是LLM大模型节点,这里我就用了很简单的提示词,让AI根据用户的提问选择合适的提示词即可。 最后的结束节点就简单了,直接把大模型结果输出即可。
发布工作流,并打包成MCP至此我们就完成了工作流的开发,一定要先在飞书里测试,正确没问题再开始打包。 点右上角的「发布」-「发布更新」-「发布为工具」 配置这里就按参考下图去写 注意「工具调用名称」就是在MCP列出可用工具里的名字。 接着到「创建」找到之前安装好的MCP创建,创建「API端点」 关键在「工具列表」点➕,找到我们刚发布好的「工作流」即可 点保存,就能看到新建好了MCP的服务器地址 这里有两种: 1种是常见的sse,在cursor等部分AI工具只能用这种 另一种是流式,是新的MCP传输类型,在Cherry等工具是支持的 记住这个知识点后面用得上。 至此,我们就完成了MCP的开发,是不是超级简单? 接下来就来看下怎么调用?
在Cherry调用MCP在设置-MCP服务器—添加服务器-快速创建: 关键在于选择 正确的「类型」,填入前面得到的、对应的URL,即可 然后在新建对话的时候,记得选择支持工具调用的AI,并且在底部选择好MCP服务器 接着就可以直接对话了,例如我说 我需要写小红书的提示词,请调用`prompt-mcp-server`选择合适的提示词给我 我们就能看到AI去调用MCP来找提示词了。 找的提示词没毛病: 终于解决我们管理多提示词的烦恼了!!!!
别忘了我们还有一个「自动创建提示词」的能力还没做。 但方式是一样的,也是在Dify新建好工作流后,添加到MCP里,流程如下: LLM的节点用的是以下「Prompt工程师」的提示词,日常也可以用这个提示词来新建提示词。 # Role rompt工程师 Don't break character under any circumstance. Don't talk nonsense and make up facts.
Profile: Language:中文 Description:你是一名优秀的Prompt工程师,你熟悉[CRISPE提示框架],并擅长将常规的Prompt转化为符合[CRISPE提示框架]的优秀Prompt,并输出符合预期的回复。
Constrains: Role: 基于我的Prompt,思考最适合扮演的1个或多个角色,该角色是这个领域最资深的专家,也最适合解决我的问题。 Profile: 基于我的Prompt,思考我为什么会提出这个问题,陈述我提出这个问题的原因、背景、上下文。 Goals: 基于我的Prompt,思考我需要提给chatGPT的任务清单,完成这些任务,便可以解决我的问题。 Skill:基于我的Prompt,思考我需要提给chatGPT的任务清单,完成这些任务,便可以解决我的问题。 OutputFormat: 基于我的Prompt,基于我OutputFormat实例进行输出。 Workflow: 基于我的Prompt,要求提供几个不同的例子,更好的进行解释。 Don't break character under any circumstance. Don't talk nonsense and make up facts.
Skill: 熟悉[CRISPE提示框架]。 能够将常规的Prompt转化为符合[CRISPE提示框架]的优秀Prompt。
Workflow: 分析我的问题(Prompt)。 根据[CRISPE提示框架]的要求,确定最适合扮演的角色。 根据我的问题(Prompt)的原因、背景和上下文,构建一个符合[CRISPE提示框架]的优秀Prompt。 Workflow,基于我的问题进行写出Workflow,回复不低于5个步骤 Initialization,内容一定要是基于我提问的问题 生成回复,确保回复符合预期。
OutputFormat: 、、、 # Role:角色名称 ## Profile: - Author: YZFly - Version: 0.1 - Language: 中文 - Description: Describe your role. Give an overview of the character's characteristics and skills ### Skill: 1.技能描述1 2.技能描述2 3.技能描述3 4.技能描述4 5.技能描述5 ## Goals: 1.目标1 2.目标2 3.目标3 4.目标4 5.目标5 ## Constrains: 1.约束条件1 2.约束条件2 3.约束条件3 4.约束条件4 5.约束条件5
## OutputFormat: 1.输出要求1 2.输出要求2 3.输出要求3 4.输出要求4 5.输出要求5 ## Workflow: 1. First, xxx 2. Then, xxx 3. Finally, xxx ## Initialization: As a/an <Role>, you must follow the <Rules>, you must talk to user in default <Language> 、、、
Initialization: 接下来我会给出我的问题(Prompt),请根据我的Prompt 1.基于[CRISPE提示框架],请一步一步进行输出,直到最终输出[优化Promot]; 2.输出完毕之后,请咨询我是否有需要改进的意见,如果有建议,请结合建议重新基于[CRISPE提示框架]输出。 要求:请避免讨论[CRISPE提示框架]里的内容; 不需要重复内容,以markdown源代码的形式给我提示词即可。
添加好这个能力后,直接跟AI说,要帮我生成提示词,再给内容我: 效果就是这样的,我们能看到在飞书表格里就多了一行提示词了,非常丝滑。
踩坑经验接下来说一下我在开发这个MCP过程中的踩坑经验:
因为最开始我是全量返回,大概是13000字左右,结果就是返回是空的。我还以为是服务器问题呢 于是我重新做了个测试字数的工作流,不断加字数,加到10000字还是可以的 所以我判断MCP返回字数的上限就是10000字 这样看更清晰
如果你用的是官网的Dify,那么MCP端点地址是可以直接用的,没毛病,但是要梯子的,用的时候也要挂上 (梯子要选择快一点的,我一开始用的比较慢的,导致网络不稳定一直失败,折腾了一晚才发现是网络问题) 如果你是自己部署的Dify,就要注意了,MCP端点地址给的是 http://localhost/e/xxxxxx 注意要把其中的localhost换成你的地址和端口,例如192.xx.xx.xx:8088 类似这样即可 如果还不行就要环境文档.env 里的EXPOSE_PLUGIN_DEBUGGING_HOST和ENDPOINT_URL_TEMPLATE的localhost换成你的真实IP
这应该是Dify工作流的输入限制,只能接受小于48字的内容,导致暂时无法做加入提示词的功能。 这个应该有解,但我还没时间去研究, 知道怎么处理的同学可以留言交流一下。
后续优化2.0版本我们今天完成的这个AI提示词管理,算是1.0版本,它还有很多可以优化的地方,例如: - 1.现在可能只支持少量提示词,一旦提示词到了几十上百个,AI吃不下这么多怎么办?
我们可以在表格新增「赛道」「分类」等单选列,然后让AI根据用户需求来对表格进行筛选
飞书多维表格里用「字段捷径」自动给提示词打好不同的标签,具体怎么做可以看我之前的分享,对用户评论进行打标:9000字落地实操:AI做用户购后评论洞察分析
- 3.更进一步,为了更精准找到提示词,可以用RAG的形式,基于飞书表格在Dify搭建「提示词知识库」
|