让AI知识触手可及

首页 » 【工具技巧】通过Claude Code+K2模型编写Dify插件的实践过程

前言

由于近日以cursorclaude code为代表的vibing编程模型逐渐流行,本章将分享介绍近期工作中借助claude code+Kimi K2模型开发dify插件的实践过程。

文章概要

本文主要包含两个部分:
1、环境搭建:claude code+Kimi K2开发环境的配置
2、插件开发:使用claude code+Kimi K2开发dify插件

1.开发环境准备

1.1 安装node.js

  • 访问https://nodejs.org/en/download
  • 按照官网提示,安装node.js即可

1.2 安装claude code

确认node.js已经安装成功后,执行以下命令安装claude code

npm install -g @anthropic-ai/claude-code

安装需要一定时间,耐心等待安装完毕后,使用claude --version验证安装成功即可。

1.3 注册Kimi K2

  • 访问https://platform.moonshot.cn/console/account
  • 注册Kimi K2账号
  • 新建API Key

备注:注册Kimi账号之后,默认会赠送15元额度,由于其有用量限速,所以最好充值50元以上。

1.4 配置claude code

Mac系统在终端下执行

export ANTHROPIC_BASE_URL=https://api.moonshot.cn/anthropic
export ANTHROPIC_AUTH_TOKEN=your-api-key

为了避免每次执行命令时都输入API KEY,我们可以将API KEY保存在环境变量中,在终端下执行

echo -e '\n export ANTHROPIC_AUTH_TOKEN=your-api-key' >> ~/.bash_profile
echo -e '\n export ANTHROPIC_BASE_URL=https://api.moonshot.cn/anthropic' >> ~/.bash_profile

echo -e '\n export ANTHROPIC_AUTH_TOKEN=your-api-key' >> ~/.zshrc
echo -e '\n export ANTHROPIC_BASE_URL=https://api.moonshot.cn/anthropic' >> ~/.zshrc

通过以上设置,在命令行(或者在cursor、vscode中启动终端)中,输入claude命令就可以启动claude了,如图:

2.Dify插件开发

接下来,我将借助一个实践项目,分享claude的使用过程。

特别说明:在开展本次调研的时候,我对dify平台的源码不了解,对于dify插件的开发更是一无所知,以下所开展的工作主要借助claude code以及dify的官方文档完成。

2.1 需求描述

由于工作中的项目需要,我们目前的前后端链路如下:

需求:找到一种方法,能够将课件平台与Dify交互时所使用的sys.user_id传递给模型聚合平台One-API系统,从而使得One-API系统能够获取到用户信息,开展相关的业务逻辑。

2.2 需求调研

基于以上的需求,我们将通过claude来解决上述的工作问题。

第一步:由于问题的解决涉及到dify相关信息的调研,所以我们将dify平台和dify插件的源码进行clone。

# clone dify平台源码
git clone https://github.com/langgenius/dify.git

# clone dify插件源码
git https://github.com/langgenius/dify-official-plugins.git

第二步:启动claude,借助其代码理解能力进行分析调研

# 进入到dify-official-plugins目录
cd dify-official-plugins

# 启动claude
claude

第三步:输入我们的需求,让claude进行分析调研

我有一个需求,请帮我评估如何实现相应的需求。

背景:
1、我在Dify平台上配置了一个工作流,这个工作流中通过sys.user_id记录了用户的信息。
2、我在Dify平台上借助Dify平台的模型供应商功能,通过OpenAI-API-compatible配置了对应的模型提供地址http://192.168.6.188:3000/v1以及API-KEY
3、在工作流中会使用到上述OpenAI-API-compatible已经配置好的模型,例如:deepseek-chat
4、以上链路目前是可以运行的。

需求:
1、我现在希望将工作流中的sys.user_id信息透传给大模型供应商http://192.168.6.188:3000/v1,也就是说在工作流中使用大模型的时候,发送给大模型的请求会携带sys.user_id的信息,从而使得大模型供应商接收到sys.user_id,进而进行相关处理。

2、由于Dify平台后续会持续升级,所以我不太希望修改Dify平台的源码来实现,因为这样做每次升级Dify平台的时候都需要进行代码合并,最好能够借助插件系统实现上述功能。

3、我希望在openai_api_compatible插件的基础上进行功能添加

参考资料:
1、openai_api_compatible插件源码:位于当前工程下的models/openai_api_compatible
2、dify平台源码位置:/Users/deadwalk/Code/ai_proj_llm/dify

请你根据我的需求,仔细分析models/openai_api_compatible插件的实现和dify平台的源码实现,给出可行的解决方案输出到docs目录。

要求:
1、方案中需要详细说明实现原理

稍事片刻,claude code通过分析Dify平台

最终,经过claude的分析调研,给出了相应的解决方案,方案按照提示词要求,输出在了docs目录下。

2.3 插件开发

整个开发过程,claude code会按照拟定好的todo,一步一步执行。

  • 基本上不需要人工参与,在需要一些有权限的操作时,claude code会进行提示获取权限。
  • 为了省事,你也可以选择不再提示,这样claude code会直接进行编辑、改写等操作。

2.4 插件打包

插件开发完毕之后,通过dify plugin命令进行打包,然后在dify平台安装即可。

2.4.1 安装dify plugin

Mac下通过brew安装dify plugin

brew tap langgenius/dify
brew install dify

更多安装方式可以查看Dify官方文档:Dify插件安装

2.4.2 插件打包

切换到插件源码的上一级目录下,执行以下命令打包插件

dify plugin package ./openai_api_compatible

插件打包成功后,会生成一个.difypkg的文件

2.5 插件测试

2.5.1 关闭Dify平台的签名检查

# 切换到dify的docker目录
cd docker

# 编辑.env 搜索并修改FORCE_VERIFYING_SIGNATURE 的值为false
FORCE_VERIFYING_SIGNATURE=false

重启Dify的docker容器即可。

具体说明请见Dify官网FAQ

2.5.2 上传并安装插件

在Dify平台的插件管理页面,上传之前打包好的插件文件并安装

2.5.3 测试插件

  1. 打开插件的配置页面,可以看到对应的配置项增加了透传参数的选项

  2. 开启插件的透传功能,同时配置对应的模型信息(模型地址配置本地已经启动的one-api服务)

  3. 创建一个Dify工作流

  4. 运行工作流,同时查看one-api的日志

可以看到,one-api上接受的服务日志X-User-Id与Dify运行时提供的sys.user_id一致。

备注:one-api服务我们已经进行了改造,可以将接收到的headers信息打印出来,方便我们查看透传信息

花费情况

  • 访问Kimi开发者平台,查看花费情况

  • 本次插件开发,主要进行了前期的需求调研、然后是插件开发,中间经历了2次调试修改,总计花费约17元。

总结

  • 借助claude code + Kimi K2模型,可以开展非常多的编码工作,比如:代码调研、方案评估、代码实现等。
  • 相比cursor的使用过程,claude code独立完成性更高,花费更加便宜。
  • 相比cursor动辄几十美元的花费,不但费用降低至原来的约1/10之一,整个代码实现过程中,不需要像cursor一样进行多次代码confirm的确认生成的代码质量。
  • 同时使用cursorclaude code并不冲突,完全可以在cursor中启动一个终端,在终端中运行claude code,然后通过terminal提供提示词。
  • 对于开发人员而言,无论是cursor还是claude code,能够提供结构化的提示词,同时具备清晰的问题分析和决策能力,是未来最为重要的能力。
声明:一起AI技术所有文章,如无特殊说明或标注,均为本站作者原创发布。任何个人或组织,在未征得作者同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。
原创不易,内容版权受保护,感谢您的尊重与支持。
0 0 投票数
Article Rating
订阅评论
提醒
guest的头像
0 评论
内联反馈
查看所有评论
Picture of Dongming
Dongming
见天地,见众生,见自己。

分类文章

推荐活动

推荐文章

这款应用爆火背后,AI下半场正从「聊天」变「办事」
AI外教一对一产品“斑马口语”上线,教育行业首个真生产业化落地的AI Agent
对话顾嘉唯:AI正在从虚拟世界,开始进入物理世界
中国 AI 正处于反超美国的前夜
独家 | 刘炯接管 GN06 团队,向美团平台负责人李树斌汇报
百度打造「最硬AI云」,硬在哪里?
【项目实战】通过ClaudeCode进行one-api系统改造的实践过程总结
【工具技巧】通过ClaudeCode的Skills实现Excel文件的读写
人形机器人首登十五运会开幕式!优必选Walker S2奏响千年青铜句鑃
实测全新 SkyReels :AI 创作,终于连成了一体
滚动至顶部
0
希望看到您的想法,请您发表评论x