dify 搭建ai作业批改流

用户输入

配置结构化输出 允许模型按结构输出 更好的作为一个api

输出结构预览:

复制代码
{
  "text": "{\n  \"available\": true,\n  \"answer\": \"词法分析器:对源程序的字符流进行扫描,识别单词。\\n语法分析器:根据单词序列分析源程序的语法结构,构建语法树。\\n语义分析器:对语法树进行语义检查,确保源程序的语义正确。\\n代码优化器:对中间代码进行优化,提高目标代码的执行效率和减少存储空间。\\n代码生成器:根据优化后的中间代码和目标机器的特性,\"\n}",
  "reasoning_content": "",
  "usage": {
    "prompt_tokens": 672,
    "prompt_unit_price": "0.0002",
    "prompt_price_unit": "0.001",
    "prompt_price": "0.0001344",
    "completion_tokens": 104,
    "completion_unit_price": "0.002",
    "completion_price_unit": "0.001",
    "completion_price": "0.000208",
    "total_tokens": 776,
    "total_price": "0.0003424",
    "currency": "RMB",
    "latency": 2.851,
    "time_to_first_token": 1.824,
    "time_to_generate": 1.028
  },
  "finish_reason": "stop",
  "structured_output": {
    "available": true,
    "answer": "词法分析器:对源程序的字符流进行扫描,识别单词。\n语法分析器:根据单词序列分析源程序的语法结构,构建语法树。\n语义分析器:对语法树进行语义检查,确保源程序的语义正确。\n代码优化器:对中间代码进行优化,提高目标代码的执行效率和减少存储空间。\n代码生成器:根据优化后的中间代码和目标机器的特性,"
  }
}

进行分支

可以是用户一起传入的 可以是网络搜索 或者数据库有的

前面让模型判断是否可以识别

可以的画就让模型判分 结构化输出

输出

注意

可以注意到每个节点(除输入节点外)都必须连接有一个输出节点进行出发。

当一个节点是否会出发取决于是否有任意一条线能流动到他输入端,如果有就会被出发

如图如果LLM识别输出识别结果 available 为 false 但是最总两个输出节点都有输出,就是因为,

上面有一条从输出-提示词-从数据库读取-llm题目判分-输出2的一条流流过

api调用

先上传文件获取id

发送api请求

切记有个坑,如果你的输入变量类型是单文件 而不是多文件 input里面要是key:对象(key:{})

而不是 key:数组({})

详情看下面

(1 封私信) 学习如何调用dify的api - 知乎

coze中搭建相同的流

坑点 图片是要插入在提示词里面的 并且要写到用户提示词里

相关推荐
Chen—LSN9 分钟前
C语言——文件操作(2)
c语言·开发语言·c++·经验分享·笔记·算法·c#
计算机魔术师11 分钟前
没有人告诉他们要这么做——AI 智能体自己学会了"组团"越狱
前端
纪念 22914 分钟前
C++类和对象(最终篇)
开发语言·c++
a努力。22 分钟前
LangChain Agent消息链路全解析
java·前端·javascript
今年下半年25 分钟前
【前端】ant-design-vue 表格「行、列都动态」的处理方案
前端·javascript·vue.js
程序员yu30 分钟前
会编网络:别被入门教程骗了,Python实用能力不在语法本身
开发语言·python·学习·算法
Bruce_Liuxiaowei44 分钟前
Python 字典默认值完全指南:从 KeyError 到 defaultdict
开发语言·数据结构·python·字典
troy1281 小时前
Java 技术栈全景指南:从基础到微服务的完整知识体系
java·开发语言·微服务
Escalating_xu1 小时前
【C 语言】深入理解指针(2):数组名、数组传参、二级指针与指针数组
java·c语言·开发语言
郝学胜-神的一滴1 小时前
游戏引擎原理与实践 01:聊聊游戏引擎的前世今生
开发语言·c++·游戏引擎·产品运营·软件工程·产品经理·untiy