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

Vue Flow 设计大模型工作流

Vue Flow 设计大模型工作流

vue-flow 是一个基于 Vue 3 的库,用于创建可交互的节点式编辑器。它非常适合用来设计工作流、数据流或可视化编程界面。

Orange AI 管理平台在线演示

  • Orange 官网: http://hengzq.cn
  • 在线体验: http://tiny.hengzq.cn
  • 项目文档: http://hengzq.cn/community/index

部分源码展示

自定义大模型节点

<template><div class="node-container"><div class="node-title"><div class="flex items-center"><svg-icon name="wf-llm" /> {{ node.name ?? '大模型' }}</div><div class="right-btn" @click.stop><tiny-button :icon="IconDeltaRight" type="text" @click="runNode"></tiny-button><tiny-action-menu :options="options" mode="card" :max-show-num="0" @item-click="(data: any) => optionsClick(data.itemData.label)"><template #item="{ data }"><span v-if="data.label == 'opt.delete'" style="color: var(--button-delete-color)">{{ $t(data.label) }}</span><span v-else> {{ $t(data.label) }} </span></template></tiny-action-menu></div></div><NodeToolbar :is-visible="runResult ? true : false" :position="Position.Bottom"><RunResultIndex :run-result="runResult"></RunResultIndex></NodeToolbar><Handle id="llm-target-left" type="target" :position="Position.Left" /><Handle id="llm-source-right" type="source" :position="Position.Right" /></div>
</template>

大模型节点配置

<template><tiny-drawer class="config-dialog" :title="title" :visible="visible" :mask="false" width="30%" @close="onClose"><tiny-input v-model="formData.description" class="description" placeholder="请输入描述..." @change="updateFormData" /><tiny-divider /><tiny-collapse v-model="activeNames"><tiny-collapse-item title="模型配置" name="modelConfig"><tiny-cascader v-model="llmParam.modelId" :options="modelList" :props="{ emitPath: false }" style="width: 100%"@change="updateFormData" /></tiny-collapse-item></tiny-collapse><tiny-collapse v-model="activeNames"><tiny-collapse-item title="输入" name="inputParams"><template #title-right><tiny-button type="info" :icon="IconPlus()" size="mini" @click="addInputAttr"></tiny-button></template><tiny-grid ref="inputGridTableRef" :data="inputData" show-overflow="tooltip":edit-config="{ trigger: 'click', mode: 'row', showStatus: true }" @edit-closed="updateFormData"><tiny-grid-column field="name" title="变量名" width="150px" :editor="{ component: 'input', type: 'visible' }"><template #edit="data"><tiny-input v-model="data.row.name" placeholder="请输入内容" @change="updateFormData"></tiny-input></template></tiny-grid-column><tiny-grid-column title="变量值" :editor="{ type: 'visible' }"><template #edit="data"><param-value-index :param="data.row" :node="formData" @delete-value="deleteInputParam" /></template></tiny-grid-column><template #empty></template></tiny-grid></tiny-collapse-item></tiny-collapse><tiny-collapse v-model="activeNames"><tiny-collapse-item title="系统提示词" name="systemPrompt"><tiny-input v-model="llmParam.systemPrompt" type="textarea" :autosize="{ minRows: 5 }" :maxlength="5000"show-word-limit :placeholder="$t('llm.app.systemPrompt.placeholder')" @change="updateFormData" /></tiny-collapse-item></tiny-collapse><tiny-collapse v-model="activeNames"><tiny-collapse-item title="用户提示词" name="prompt"><tiny-input v-model="llmParam.prompt" type="textarea" :autosize="{ minRows: 5 }" :maxlength="5000"show-word-limit :placeholder="$t('llm.app.systemPrompt.placeholder')" @change="updateFormData" /></tiny-collapse-item></tiny-collapse><tiny-collapse v-model="activeNames"><tiny-collapse-item title="输出变量" name="outputParams"><template #title-right><tiny-button type="info" :icon="IconPlus()" size="mini" @click="addOutputAttr"></tiny-button></template><tiny-grid ref="outputGridTableRef" :data="outputData" show-overflow="tooltip":edit-config="{ trigger: 'click', mode: 'row', showStatus: true }" @edit-closed="updateFormData"><tiny-grid-column field="name" title="变量名" :editor="{ component: 'input' }"><template #edit="data"><tiny-input v-model="data.row.name" placeholder="请输入内容" @change="updateFormData"></tiny-input></template></tiny-grid-column><tiny-grid-column title="变量值" :editor="{ type: 'visible' }" width="145px"><template #edit="data"><param-value-index :param="data.row" :node="formData" :input-visible="false"@delete-value="deleteInputParam" /></template></tiny-grid-column><template #empty></template></tiny-grid></tiny-collapse-item></tiny-collapse></tiny-drawer>
</template>

效果展示

在这里插入图片描述
在这里插入图片描述

源码下载

  • GitHub: https://github.com/hengzq/orange-tiny-vue3-ui
  • Gitee: https://gitee.com/hengzq/orange-tiny-vue3-ui
http://www.dtcms.com/a/350262.html

相关文章:

  • 深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)第六章知识点问答(22题)
  • 连锁零售排班难?自动排班系统来解决
  • DDR3入门系列(二)------DDR3硬件电路及Xilinx MIG IP核介绍
  • 基于LZO的无损数据压缩IP,高性能压缩速率32Gbps,压缩率50%,适用FPGAASIC
  • TDengine IDMP 应用场景:IT 系统监控
  • HIVE创建UDF函数全流程
  • 【URP】Unity 插入自定义RenderPass
  • 【学习记录】CSS: clamp、@scope
  • C++ extern 关键字面试深度解析
  • 大模型的思考方式
  • 引脚电平异常?以下或许是原因
  • Java 高可用实现方式
  • 基于MATLAB长时间序列遥感数据处理及在全球变化、物候提取、植被变绿与固碳分析等领域中的实践技术应用
  • 面试常考算法题汇总
  • Java设计模式-观察者模式
  • MATLAB函数文件编写规范
  • imx6ull-驱动开发篇41——Linux RTC 驱动实验
  • 详解flink SQL基础(四)
  • 使用Docker+WordPress部署个人博客
  • 无人机和无人系统的计算机视觉-人工智能无人机
  • k8s的etcd备份脚本
  • 4G模块 EC200通过MQTT协议连接到阿里云
  • Java-面试八股文-Java高级篇
  • Springboot 集成 TraceID
  • 在react里使用路由,手动跳转
  • C++ 内存安全与智能指针深度解析
  • 【flutter对屏幕底部有手势区域(如:一条横杠)导致出现重叠遮挡】
  • YOLOv7:重新定义实时目标检测的技术突破
  • 浅聊RLVR
  • 绿色循环经济下的旧物回收App:重构闲置资源的价值链条