// backend\embed.go package main import ( "embed" "os" "path/filepath" ) //go:embed ml/*.py ml/*.json ai_server.py var embeddedMLFiles embed.FS func trainingEmbeddedMLDir() (string, error) { dir := filepath.Join(os.TempDir(), "nsfwapp-ml") if err := os.MkdirAll(dir, 0755); err != nil { return "", err } files := []string{ "predict_scene_model.py", "train_scene_model.py", "predict_detector_model.py", "train_detector_model.py", "detection_labels.json", } for _, name := range files { srcPath := filepath.Join("ml", name) b, err := embeddedMLFiles.ReadFile(filepath.ToSlash(srcPath)) if err != nil { return "", err } dstPath := filepath.Join(dir, name) if err := os.WriteFile(dstPath, b, 0644); err != nil { return "", err } } return dir, nil } func embeddedAIServerDir() (string, error) { dir := filepath.Join(os.TempDir(), "nsfwapp-ai-server") if err := os.MkdirAll(dir, 0755); err != nil { return "", err } b, err := embeddedMLFiles.ReadFile("ai_server.py") if err != nil { return "", err } dstPath := filepath.Join(dir, "ai_server.py") if err := os.WriteFile(dstPath, b, 0644); err != nil { return "", err } return dir, nil }