当前位置: 首页 > ai >正文

基于Dify的工作流实现python编码规则的检查

前期准备

dify

  • 要么使用 https://cloud.dify.ai/
  • (推荐)要么自己用docker compose搭建一个本地dify服务

dify接入大模型

  • 这里以接入deepseek为例
    在这里插入图片描述

创建工作流的过程

  • 首先创建空白应用,指定为工作流
    在这里插入图片描述
  • 添加步骤如下,包含两个LLM分支,用来对比是否按照自定义的编码规范在检查
    在这里插入图片描述
  • 其中“开始”添加自定义变量python_code
    在这里插入图片描述
  • LLM 1
    • 模型选择deepseek-coder
    • 上下文选择"开始"中创建的python_code
    • 系统提示词填入下面内容,注意下面的截图,要选择python_code
      在这里插入图片描述
你是一个专业的 Python 代码审查员。请根据以下编码规范检查用户提供的 Python 代码:# 编码规范
## 变量命名
1. 变量名必须使用驼峰命名法(CamelCase)- 正确示例: `userName`, `studentCount`- 错误示例: `user_name`, `StudentCount`## 函数命名
1. 函数名必须使用小写字母加下划线- 正确示例: `calculate_score()`- 错误示例: `CalculateScore()`## 类命名
1. 类名必须使用大驼峰命名法- 正确示例: `UserModel`- 错误示例: `user_model`## 其他规范
1. 每行不超过120字符
2. 使用4个空格缩进
3. 导入语句应按标准库、第三方库、本地库分组
4. 函数体内不能有空行
5. 禁止使用%格式化操作符
6. 禁止使用global检查以下代码是否符合编码规范
<这里输入/,然后选取python_code># 任务要求:
1. 检查以下代码是否符合上述编码规范。
2. 如果发现问题,指出具体的行号和问题描述。
3. 提供详细的修改建议。# 输出格式:
- 问题 1: [问题描述](行号: {行号})修改建议: [修改建议]
- 问题 2: [问题描述](行号: {行号})修改建议: [修改建议]如果代码完全符合规范,请返回 “代码完全符合规范。”
  • LLM 2 与LLM 1类似,只是少了明文的编码规范
你是一个专业的 Python 代码审查员。检查以下代码是否符合编码规范
<这里输入/,然后选取python_code>### 任务要求:
1. 检查以下代码是否符合上述编码规范。
2. 如果发现问题,指出具体的行号和问题描述。
3. 提供详细的修改建议。### 输出格式:
- 问题 1: [问题描述](行号: {行号})修改建议: [修改建议]
- 问题 2: [问题描述](行号: {行号})修改建议: [修改建议]
...
如果代码完全符合规范,请返回 “代码完全符合规范。”
  • 结束节点输出两个LLM的结果
    在这里插入图片描述

验证

  • 点击“运行”,输入一段要检查的代码,故意构造几处不符合规范的地方
prefixStr = 'hello'
class user_model:def GetName(self):global prefixStruser_name = "John"return "user_name:%s%s" % (prefixStr, user_name)

在这里插入图片描述

  • LLM 1的输出结果
    在这里插入图片描述

  • LLM2的输出结果
    在这里插入图片描述

结论

  • 对比LLM1和LLM2的输出可以看到
    • LLM2由于没有指定编码规范,那么就按照默认的PEP 8的规范给出
    • LLM1中找出了我特意提到的"函数体内不能有空行"和"禁止使用global",说明提示词中自定义的编码规范是生效的!
http://www.xdnf.cn/news/4249.html

相关文章:

  • 【神经网络、Transformer及模型微调】
  • 六足机器人结构优化可载重20kg,适应河床、冰面等复杂地形
  • 【C语言】--指针超详解(一)
  • 对接印度股票数据实战 - Python实现完整指南
  • 结构体内存对齐规则与优化
  • iPaaS核心解析与牧场场景应用方案
  • 前端正则学习记录
  • 2025Mapbox零基础入门教程(8)geojson加载点要素
  • MySQL数据库中篇
  • python简易实现勒索病毒
  • 最小方差自校正调节器设计
  • Python: pipx详细解释
  • 【Day 20】HarmonyOS多语言适配开发实战
  • 使用OpenCV 和 Dlib 实现年龄性别预测
  • Spring AI系列——大模型驱动的自然语言SQL引擎:Java技术实现详解
  • 用DEEPSEEK做开发辅助应该注意什么
  • Nyx-1 思路整理
  • 【Python】--装饰器
  • Coding Practice,48天强训(30)
  • 2. H264编码
  • 垂直领域知识图谱构建与大模型融合技术方案
  • 达梦DM数据库安装步骤
  • 普通IT的股票交易成长史--20250506午复盘
  • Leetcode - 周赛448
  • 分割回文串例题-区分组合回溯与最优动态规划
  • 主数据 × 知识图谱:打造企业认知智能的核心基础设施
  • C++GO语言微服务项目之 go语言基础语法
  • pcl平面投影
  • 解锁科研文献检索密码:多工具协同攻略
  • 代码规范总结