| 功能 | +Dify.AI | +LangChain | +Flowise | +OpenAI Assistant API | +
|---|---|---|---|---|
| 编程方法 | +API + 应用程序导向 | +Python 代码 | +应用程序导向 | +API 导向 | +
| 支持的 LLMs | +丰富多样 | +丰富多样 | +丰富多样 | +仅限 OpenAI | +
| RAG引擎 | +✅ | +✅ | +✅ | +✅ | +
| Agent | +✅ | +✅ | +❌ | +✅ | +
| 工作流 | +✅ | +❌ | +✅ | +❌ | +
| 可观测性 | +✅ | +✅ | +❌ | +❌ | +
| 企业功能(SSO/访问控制) | +✅ | +❌ | +❌ | +❌ | +
| 本地部署 | +✅ | +✅ | +✅ | +❌ | +
+ 开源协作wiki、文档笔记软件.
+
+ Website |
+ Documentation
+
+
+
+
+ Open-source collaborative wiki and documentation software.
+
+ Website |
+ Documentation
+
+
+
+
e)return t[i];return t[n-1]}(i,a):n)||n)&&i.length?(a=i[t],o&&(r[o]=a),e.paletteIdx=(t+1)%i.length,a):void 0}var yg,mg="\0_ec_inner",vg=(u(xg,yg=kp),xg.prototype.init=function(t,e,n,i,o,r){i=i||{},this.option=null,this._theme=new kp(i),this._locale=new kp(o),this._optionManager=r},xg.prototype.setOption=function(t,e,n){e=wg(e);this._optionManager.setOption(t,n,e),this._resetOption(null,e)},xg.prototype.resetOption=function(t,e){return this._resetOption(t,wg(e))},xg.prototype._resetOption=function(t,e){var n,i=!1,o=this._optionManager;return t&&"recreate"!==t||(n=o.mountOption("recreate"===t),this.option&&"recreate"!==t?(this.restoreData(),this._mergeOption(n,e)):hg(this,n),i=!0),"timeline"!==t&&"media"!==t||this.restoreData(),t&&"recreate"!==t&&"timeline"!==t||(n=o.getTimelineOption(this))&&(i=!0,this._mergeOption(n,e)),t&&"recreate"!==t&&"media"!==t||(n=o.getMediaOption(this)).length&&nt(n,function(t){i=!0,this._mergeOption(t,e)},this),i},xg.prototype.mergeOption=function(t){this._mergeOption(t,null)},xg.prototype._mergeOption=function(i,t){var o=this.option,h=this._componentsMap,c=this._componentsCount,n=[],r=R(),p=t&&t.replaceMergeMainTypeMap;eg(this).datasetMap=R(),nt(i,function(t,e){null!=t&&(g.hasClass(e)?e&&(n.push(e),r.set(e,!0)):o[e]=null==o[e]?S(t):d(o[e],t,!0))}),p&&p.each(function(t,e){g.hasClass(e)&&!r.get(e)&&(n.push(e),r.set(e,!0))}),g.topologicalTravel(n,g.getAllClassMainTypes(),function(r){var a,t=function(t,e,n){return(e=(e=sg.get(e))&&e(t))?n.concat(e):n}(this,r,Jr(i[r])),e=h.get(r),n=e?p&&p.get(r)?"replaceMerge":"normalMerge":"replaceAll",e=na(e,t,n),s=(la(e,r,g),o[r]=null,h.set(r,null),c.set(r,0),[]),l=[],u=0;nt(e,function(t,e){var n=t.existing,i=t.newOption;if(i){var o=g.getClass(r,t.keyInfo.subType,!("series"===r));if(!o)return;if("tooltip"===r){if(a)return;a=!0}n&&n.constructor===o?(n.name=t.keyInfo.name,n.mergeOption(i,this),n.optionUpdated(i,!1)):(e=F({componentIndex:e},t.keyInfo),F(n=new o(i,this,this,e),e),t.brandNew&&(n.__requireNewView=!0),n.init(i,this,this),n.optionUpdated(null,!0))}else n&&(n.mergeOption({},this),n.optionUpdated({},!1));n?(s.push(n.option),l.push(n),u++):(s.push(void 0),l.push(void 0))},this),o[r]=s,h.set(r,l),c.set(r,u),"series"===r&&lg(this)},this),this._seriesIndices||lg(this)},xg.prototype.getOption=function(){var a=S(this.option);return nt(a,function(t,e){if(g.hasClass(e)){for(var n=Jr(t),i=n.length,o=!1,r=i-1;0<=r;r--)n[r]&&!sa(n[r])?o=!0:(n[r]=null,o||i--);n.length=i,a[e]=n}}),delete a[mg],a},xg.prototype.getTheme=function(){return this._theme},xg.prototype.getLocaleModel=function(){return this._locale},xg.prototype.setUpdatePayload=function(t){this._payload=t},xg.prototype.getUpdatePayload=function(){return this._payload},xg.prototype.getComponent=function(t,e){var n=this._componentsMap.get(t);if(n){t=n[e||0];if(t)return t;if(null==e)for(var i=0;i
a[1]&&(a[1]=t)})):a=[NaN,NaN];return{sum:i,dataExtent:a}}(e,s,l);if(0===u.sum)return t.viewChildren=[];if(u.sum=function(t,e,n,i,o){if(i){for(var r=t.get("visibleMin"),a=o.length,s=a,l=a-1;0<=l;l--){var u=o["asc"===i?a-l-1:l].getValue();u/n*e =e.r0},UC.type="sunburst";var YC,XC=UC;function UC(){var t=null!==YC&&YC.apply(this,arguments)||this;return t.type=UC.type,t}u(qC,ZC=Wy),qC.prototype.getInitialData=function(t,e){var n={name:t.name,children:t.data},i=(!function e(t){var n=0;nt(t.children,function(t){e(t);t=t.value;B(t)&&(t=t[0]),n+=t});var i=t.value;B(i)&&(i=i[0]);null!=i&&!isNaN(i)||(i=n);i<0&&(i=0);B(t.value)?t.value[0]=i:t.value=i}(n),this._levelModels=V(t.levels||[],function(t){return new kp(t,this,e)},this)),o=dT.createTree(n,this,function(t){t.wrapMethod("getItemModel",function(t,e){e=o.getNodeByDataIndex(e),e=i[e.depth];return e&&(t.parentModel=e),t})});return o.data},qC.prototype.optionUpdated=function(){this.resetViewRoot()},qC.prototype.getDataParams=function(t){var e=ZC.prototype.getDataParams.apply(this,arguments),t=this.getData().tree.getNodeByDataIndex(t);return e.treePathInfo=xT(t,this),e},qC.prototype.getLevelModel=function(t){return this._levelModels&&this._levelModels[t.depth]},qC.prototype.getViewRoot=function(){return this._viewRoot},qC.prototype.resetViewRoot=function(t){t?this._viewRoot=t:t=this._viewRoot;var e=this.getRawData().tree.root;t&&(t===e||e.contains(t))||(this._viewRoot=e)},qC.prototype.enableAriaDecal=function(){kT(this)},qC.type="series.sunburst",qC.defaultOption={z:2,center:["50%","50%"],radius:[0,"75%"],clockwise:!0,startAngle:90,minAngle:0,stillShowZeroSum:!0,nodeClick:"rootToNode",renderLabelForZeroData:!1,label:{rotate:"radial",show:!0,opacity:1,align:"center",position:"inside",distance:5,silent:!0},itemStyle:{borderWidth:1,borderColor:"white",borderType:"solid",shadowBlur:0,shadowColor:"rgba(0, 0, 0, 0.2)",shadowOffsetX:0,shadowOffsetY:0,opacity:1},emphasis:{focus:"descendant"},blur:{itemStyle:{opacity:.2},label:{opacity:.1}},animationType:"expansion",animationDuration:1e3,animationDurationUpdate:500,data:[],sort:"desc"};var ZC,jC=qC;function qC(){var t=null!==ZC&&ZC.apply(this,arguments)||this;return t.type=qC.type,t.ignoreStyleOnData=!0,t}var KC,$C=Math.PI/180;function JC(t,e,r){e.eachSeriesByType(t,function(h){var t=h.get("center"),e=h.get("radius"),n=(B(e)||(e=[0,e]),B(t)||(t=[t,t]),r.getWidth()),i=r.getHeight(),c=Math.min(n,i),p=j(t[0],n),d=j(t[1],i),g=j(e[0],c/2),n=j(e[1],c/2),t=-h.get("startAngle")*$C,f=h.get("minAngle")*$C,y=h.getData().tree.root,i=h.getViewRoot(),m=i.depth,e=h.get("sort"),o=(null!=e&&!function e(t,n){var i=t.children||[];t.children=QC(i,n);i.length&&nt(t.children,function(t){e(t,n)})}(i,e),0),v=(nt(i.children,function(t){isNaN(t.getValue())||o++}),i.getValue()),x=Math.PI/(v||o)*2,_=0 e[0]||t[1]<0||t[1]>e[1]||(e=((e=this._handleEnds)[0]+e[1])/2,t=this._updateInterval("all",t[0]-e),this._updateView(),t&&this._dispatchZoomAction(!1))},N3.prototype._onBrushStart=function(t){var e=t.offsetX,t=t.offsetY;this._brushStart=new E(e,t),this._brushing=!0,this._brushStartTime=+new Date},N3.prototype._onBrushEnd=function(t){var e,n,i;this._brushing&&(e=this._displayables.brushRect,this._brushing=!1,e)&&(e.attr("ignore",!0),e=e.shape,+new Date-this._brushStartTime<200&&Math.abs(e.width)<5||(n=this._getViewExtent(),this._range=Ar([Cr(e.x,n,i=[0,100],!0),Cr(e.x+e.width,n,i,!0)]),this._handleEnds=[e.x,e.x+e.width],this._updateView(),this._dispatchZoomAction(!1)))},N3.prototype._onBrush=function(t){this._brushing&&(Le(t.event),this._updateBrushRect(t.offsetX,t.offsetY))},N3.prototype._updateBrushRect=function(t,e){var n=this._displayables,i=this.dataZoomModel,o=n.brushRect,i=(o||(o=n.brushRect=new D3({silent:!0,style:i.getModel("brushStyle").getItemStyle()}),n.sliderGroup.add(o)),o.attr("ignore",!1),this._brushStart),n=this._displayables.sliderGroup,t=n.transformCoordToLocal(t,e),e=n.transformCoordToLocal(i.x,i.y),n=this._size;t[0]=Math.max(Math.min(n[0],t[0]),0),o.setShape({x:e[0],y:0,width:t[0]-e[0],height:n[1]})},N3.prototype._dispatchZoomAction=function(t){var e=this._range;this.api.dispatchAction({type:"dataZoom",from:this.uid,dataZoomId:this.dataZoomModel.id,animation:t?P3:null,start:e[0],end:e[1]})},N3.prototype._findCoordRect=function(){var t,e,n=jB(this.dataZoomModel).infoList;return t=(t=!t&&n.length?(n=n[0].model.coordinateSystem).getRect&&n.getRect():t)?t:{x:.2*(n=this.api.getWidth()),y:.2*(e=this.api.getHeight()),width:.6*n,height:.6*e}},N3.type="dataZoom.slider",N3);function N3(){var t=null!==C3&&C3.apply(this,arguments)||this;return t.type=N3.type,t._displayables={},t}function R3(t){return"vertical"===t?"ns-resize":"ew-resize"}function E3(t){t.registerComponentModel(I3),t.registerComponentView(O3),w3(t)}r(function(t){r(S3),r(E3)});var z3=["rect","polygon","keep","clear"];function V3(t,e){var n,i,o,r=Jr(t?t.brush:[]);r.length&&(n=[],nt(r,function(t){t=t.hasOwnProperty("toolbox")?t.toolbox:[];t instanceof Array&&(n=n.concat(t))}),(r=B(r=t&&t.toolbox)?r[0]:r)||(t.toolbox=[r={feature:{}}]),r=(t=r.feature||(r.feature={})).brush||(t.brush={}),(t=r.type||(r.type=[])).push.apply(t,n),o={},nt(i=t,function(t){o[t]=1}),i.length=0,nt(o,function(t,e){i.push(e)}),e)&&!t.length&&t.push.apply(t,z3)}var B3=nt;function F3(t){if(t)for(var e in t)if(t.hasOwnProperty(e))return 1}function G3(e,t,o){var r={};return B3(t,function(n){var i=r[n]=(t.prototype.__hidden=t.prototype,new t);function t(){}B3(e[n],function(t,e){eC.isValidType(e)&&(t={type:e,visual:t},o&&o(t,n),i[e]=new eC(t),"opacity"===e)&&((t=S(t)).type="colorAlpha",i.__hidden.__alphaForOpacity=new eC(t))})}),r}function W3(e,n,t){var i;nt(t,function(t){n.hasOwnProperty(t)&&F3(n[t])&&(i=!0)}),i&&nt(t,function(t){n.hasOwnProperty(t)&&F3(n[t])?e[t]=S(n[t]):delete e[t]})}var H3={lineX:Y3(0),lineY:Y3(1),rect:{point:function(t,e,n){return t&&n.boundingRect.contain(t[0],t[1])},rect:function(t,e,n){return t&&n.boundingRect.intersect(t)}},polygon:{point:function(t,e,n){return t&&n.boundingRect.contain(t[0],t[1])&&i_(n.range,t[0],t[1])},rect:function(t,e,n){var i,o,r,a,s,n=n.range;return!(!t||n.length<=1)&&(i=t.x,o=t.y,r=t.width,a=t.height,s=n[0],!!(i_(n,i,o)||i_(n,i+r,o)||i_(n,i,o+a)||i_(n,i+r,o+a)||U.create(t).contain(s[0],s[1])||qc(i,o,i+r,o,n)||qc(i,o,i,o+a,n)||qc(i+r,o,i+r,o+a,n)||qc(i,o+a,i+r,o+a,n))||void 0)}}};function Y3(i){var o=["x","y"],r=["width","height"];return{point:function(t,e,n){if(t)return n=n.range,X3(t[i],n)},rect:function(t,e,n){if(t)return n=n.range,(t=[t[o[i]],t[o[i]]+t[r[i]]])[1]