多租户
- 系统中工作空间,租户,用户。租户和工作空间是对应的,用户在工作空间上工作。用户名分为创建者(owner),管理员(admin),使用者。owner 可通过email 邀请其它用户。agent, dataset,model 这三个东西都是在工作空间上的。要实现多租户就需要实现多工作空间。
- 社区版没有多租户的入口,但表结构上,每个表都有用户id, 我们需要在accounts(用户表),tenants(租客表),tenant_account_joins(用户-租户关联表)中新添加一条数据,就可以实现多租户的功能。
-
添加private.pem文件:在 app/api/storage/,有各租户pem 文件,没有这个文件模型设置会报错。
docker exec -it xxx /bin/bash //进入docker-api的空间 cd storage/privkeys cp -r xxx xxx // 拷贝上个用户的 pem 到当前用户,需要找到上个用户tenant_id, 当前用户tenant_id
注:多租户功能在官方的licence 中是禁止商业使用的。
前端项目
前端项目是web 文件夹, 开发语言是next.js + React。
app\compnents\
datasets 知识库标签
explore 探索标签
tools 工具标签
header
\index.tsx 首页
文件夹与页面对应关系如上。
后端项目
controls 是api 接口
services 业务逻辑文件夹
models 数据表对象文件夹
controls\console\
explore 探索标签
datasets 知识库标签
app 工作室标签
core dataset 处理逻辑
探索标签下项目的数据没写在数据表中,是在
contants\recommend_apps.json
修改项目后布署
web, api项目中都有docker 文件夹,使用这个文件夹的设置来打包项目。
打包web 项目
docker build -t lang/dify-web:1.0.0 .
//在docker文件夹下打包前端项目
docker save -o dify-web.tar lang/dify-web:1.0.0
// 导出镜象到本地,
docker load -i dify-web.tar
// 上传服务器,并导入服务器的docker
前端项目也可用pm2 在服务器上运行
打包api 项目
docker build -t lang/dify-api:1.0.0 .
//在docker文件夹下打包前端项目
docker save -o dify-api.tar lang/dify-api:1.0.0
// 导出镜象到本地,
docker load -i dify-api.tar
// 上传服务器,并导入服务器的docker
后端项目也可用nohup python 命令运行
agent 导出dsl 问题
目前使用0.6.9 版本,导出的dsl 与最新的0.11 的不兼容,导入会报错。