nsfwapp/backend/embed.go
2026-05-05 14:05:56 +02:00

65 lines
1.2 KiB
Go

// 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
}