Skip to content

Latest commit

 

History

11 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Doctree

  • Key: doctree
  • 说明: 聊天对话框是不够的。需要更清晰的描述你想要的,agent才能给你更好的结果。 现在的流程是:人-->agent-->产出结果,应该变成:人-->[文档管理系统]-->agent-->产出结果。聊天对话框适合探索、头脑风暴、讨论,对于更复杂、更系统性的事务,需要更结构化的、详细化的描述。通过管理系统,让描述变得可管理、可迭代,实现精细化控制。不适合通过人简单描述,然后通过AI扩展,输入给agent,因为AI的扩展不具备可管理性,很容易超出人的控制,而且容易发散进而分散agent的注意力进而降低最终效果。同时,也能反向把现有复杂的事物,让agent按照模板梳理、整理成文档,供人学习、管理,产出结果-->agent-->[文档管理系统]-->人。 Doctree尝试用树形结构,管理对事物的描述,并能导出、驱动agent工作。先通过定义模板,沉淀出清晰描述一类事物的最佳实践,然后可以套用模板,清晰描述同类事物。前期主要实践描述软件产品,实现agent自动化生产,或者反向把现有系统自动整理成结构清晰的文档。 第一个目标是实现Doctree的自举,在Doctree中描述Doctree,并能随时生成可用版本。
  • 技术说明: 分为服务端和客户端。服务端用Golang来实现,服务端支持多数据库无缝切换,前期使用sqlite,可随时切换其他数据库。客户端用Flutter来实现,方便支持Macos、Windows、Web应用、移动app等平台,先支持web和开发机器原生平台,原生平台需要实现URL Schema,实现登录跳转和回调。

模块: 账户及登录模块

  • Key: account
  • 说明: 客户端启动时,进入登录页面。登录支持集成外部OIDC IDP。登录分为开发和正式两个模式,开发模式只需要输入用户名即可正常登录,正式模式需要配置外部OIDC。 第一个登录系统的用户为超级管理员,权限最高,可以添加系统管理员。系统管理员不能添加其他系统管理员。超级管理员、系统管理员可以添加模板管理员,模板管理员可以添加项目管理员,项目管理员可以给本项目添加成员,成员分为编辑和查看权限,编辑员、查看员是在节点上分配的,指定人员对此节点及此节点的所有子节点有权限。高权限的角色自动有用低权限角色的权限,超级管理员>系统管理员>模板管理员>项目管理员>项目编辑员>项目查看员。 登录正常返回后进入主页。主页根据权限展示能看到的信息,进行模板管理、项目管理、系统设置。 OIDC配置信息在服务端配置,支持配置多个IDP,客户端启动时从后端拉取IDP列表,并展示,用户点击对应的IDP跳转到IDP登录。

模块: 模板管理模块

  • Key: template
  • 说明: 模板有名称、Key、版本、版本说明、状态基本信息,还包括节点类型列表,节点规则列表。 新建模板时填写版本号字符串,默认使用vX.Y.Z的格式,用户也可以按自己的规则填写,如vYYYYMMDD. 状态有草稿、发布、删除,新建时是草稿状态,点击发布后,校验合法性,变成发布状态,不能再编辑,只能新建版本。新建版本时,默认复制上一个版本的内容,然后修改、编辑。项目只能基于发布状态的模板创建。删除为软删除,界面不展示,数据库中保留数据。 节点类型列表,可手动排序,默认按创建时间排序。节点类型有名称、Key、填写说明等基础信息,还有字段列表。新建节点类型时,默认创建四个字段,名称-文本、Key-文本、说明-多行文本、技术说明-多行文本,名称、Key为必填字段,且不能删除,说明、技术说明可编辑。字段列表也可手动排序,默认为创建顺序。字段有名称、Key、字段类型、是否必填、默认值、字段填写说明,字段类型有文本、单选、复选,checkbox,日期等。 节点规则列表,设置根节点、每个类型节点允许的子节点类型和数量,数量设置最小值和最大值,最大值为0表示不限制。没设置规则的代表不允许有子节点,跟节点必须设置规则。 编辑后,数据信息要实时保存,防止丢失。模板编辑分为基本信息、节点类型、节点规则三部分,在三个菜单中编辑。 模板定义支持导出、导入,用json格式,已软删除的版本需要过滤掉。

模块: 项目管理模块

  • Key: project
  • 说明: 项目有名称、Key、说明、状态、版本、版本说明基本信息,还有节点列表。 建立项目时需要选择一个已发布的模板。 状态有草稿、发布、删除。新建时是草稿,点击发布后变成发布状态,发布状态不能修改,只能新建版本修改。 新建版本时,填写版本号字符串,默认使用vX.Y.Z的格式,用户也可以按自己的规则填写,如vYYYYMMDD。第一版从头开始建。后续新建版本时复制上一个已发布版本的数据,包括权限数据。如果是选择了不一样的模板版本,则需要进行数据转换,规则如下:对比现有模板和新版本模板,模板中删除的节点类型,项目中也删除相应节点;模板中新增的节点类型,新项目中可使用;模板节点类型定义中,删除的字段项目中也删除,新增的字段,项目中为空或使用字段定义的默认值;单选、复选等字段枚举值有删除的,项目中有此删除值的也改为该字段的默认值,保证项目数据合法。 节点列表用树形展示,根节点用项目名称,新建节点时,输入名称,用于节点名称显示和节点类型定义中的名称字段,修改时也同步修改。右键点击节点可以按模板定义的规则添加子节点。单击节点时,显示节点类型数据,草稿时可编辑、输入信息。双击节点时,隐藏、折叠子节点。 项目能导出数据,支持json和markdown两种格式。json用于导入导出,已软删除的版本需要过滤。markdown只导出最新发布版本的数据。

实现

根据上面的描述,用OpenCode+GLM5.3、qoder+Ultimate模型尝试生成,后者可用性高些,可以直接使用,算是完成了初步自举。

后端

cd backend && go run ./cmd/doctree/

#默认端口 8080,配置见 backend/config.yaml

前端 (Web)

cd frontend && flutter run -d chrome --web-renderer html

开发模式输入admin直接进入。

About

聊天对话框是不够的。

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages