本章开始对Dify最新版本(v0.10.2)源码进行解读。在Dify项目根目录下有如下几个目录:api、web、docker、docker-legacy、sdks等。
其中api是后台项目目录,核心的业务逻辑、模型调用、接口服务代码都在该目录下。web目录是前台项目目录,前台页面代码基本上都在该目录下。Docker及docker-legacy是部署相关的文件。sdks是对外提供的不同语言客户端。本节开始先对后台服务项目进行介绍。
1.技术栈:
- 后端框架:Flask
- 数据库:PostgreSQL等
- ORM:SQLAlchemy
- 测试框架:Pytest
- 配置管理:环境变量(.env 文件)
- 静态文件管理:Flask内置的静态文件服务
- 模板引擎:Jinja2(Flask默认模板引擎)