bmrlab / gendam

A privacy-first generative DAM
6 stars 1 forks source link

Getting Started

日志

可以增加 RUST_LOG 环境变量,进行 debug! 日志的输出: RUST_LOG=debug cargo tauri dev

项目使用 tracing_subscriber 来配置日志,,api_server 和 tauri 的 main 入口启动的时候通过 init_tracing 方法来进行日志格式的初始化,并支持每个 crate 单独配置日志 level,格式是:

# 根目录 .env 文件中配置
# 配置单个
RUST_LOG="api_server=debug"
# 配置多个
RUST_LOG="api_server=debug,ai=debug,file_downloader=debug,file_handler=debug,muse_desktop=debug,content_library=debug"

打包后的 app 会同时打印日志到 oslog 和 ~/Library/Logs/ai.gendam.desktop 下,oslog 的查看方式是:

log stream --debug --predicate 'subsystem=="ai.gendam.desktop" and category=="default"'
log stream --type log --level debug | grep "\[ai.gendam.desktop"
log stream --type log --level debug | grep ai.gendam.desktop

开发环境准备

pnpm dev:prep

会依次执行

运行 tauri

pnpm tauri dev

单独运行 web

在开发环境,运行 tauri 的时候会同时启动 web 服务,但是也可以单独运行 web 服务

pnpm dev:web

单独运行 rspc 服务

pnpm dev:api-server

单独运行 api_server 需要设置环境变量指定本地目录和资源目录, 比如

# 根目录 .env 文件中配置
# 本地数据目录,存储 Library 数据,包括素材文件、索引、数据库
LOCAL_DATA_DIR="/Users/xddotcom/Library/Application Support/ai.gendam.desktop"
# 本地资源目录,存储模型等,一般用当前项目目录下的 /apps/desktop/src-tauri/resources
LOCAL_RESOURCES_DIR="/Users/xddotcom/workspace/muse/gendam/apps/desktop/src-tauri/resources"

Prisma Rust Client

  1. 添加 prisma-client-rustprisma-client-rust-cli 两个 crate
  2. 添加 bin/prisma.rs 并在 main 中执行 prisma_client_rust_cli::run();, 搞定 prisma cli
cd src-tauri
cargo run --bin prisma
# or
cargo run --bin prisma -- <command>

为了方便使用,可以在 .cargo/config.toml 中添加一个 alias

[alias]
prisma = "run --bin prisma --"
  1. 执行 cargo prisma init 初始化 prisma 配置, 这时候会在 src-tauri 下生成一个 prisma 目录, 接着需要把 schema.prisma 里面的 client 配置修改成如下
generator client {
  provider = "cargo prisma"
  output = "src/prisma/mod.rs"
}
  1. 执行 cargo prisma generate 生成 artifacts (e.g. Prisma Client), 根据上一步配置, 生成在 src/prisma 目录下

  2. cargo prisma migrate dev 以后,在代码里直接引入 PrismaClient 开始使用

File Handler