实现
Dify前端使用React框架实现,这里不做深入探索,来看看后端的实现。
主要代码目录如下:
.\
..\
api\ # 后端实现目录
app.py # 入口文件
controllers\ # 控制层,注册路由
console\ # 前端API
files\ # 图片、文件API
inner_api\ # 插件API
service_api\
web\
services\ # 业务实现层
models\ # 模型
core\ # 逻辑实现
web\ # 前端实现目录
后端框架使用Flask,使用flask-restful管理路由,使用celery进行分布式任务管理。
架构层面:
API server <–> Worker
为了支持横向扩展,可以多节点部署worker,属于基于事件驱动的架构。
实现层面:
分层架构,经典的控制、服务、模型分层。
数据库:
业务管理使用的pg,是除MySQL外很流行的开源关系型数据库。
为支持RAG,dify支持了很多款向量数据库,可以按需配置。
部署: docker compose 一行命令完成部署,快速体验很赞。
思考
翻看dify的源码,有种熟悉的感觉,因为这就是第一份工作的完整技术栈。
作为技术开发者,追逐新颖、时髦的技术,认为这些很酷,但是有时候会忘了出发点:
技术是用来解决问题的!
Dify目前已经将近96K的star。