34 lines
1.0 KiB
Go
34 lines
1.0 KiB
Go
package analyzer
|
|
|
|
import (
|
|
"context"
|
|
"image"
|
|
|
|
"materialanalyzer/internal/embedding"
|
|
"materialanalyzer/internal/model"
|
|
)
|
|
|
|
type ColorAnalyzer interface {
|
|
Analyze(ctx context.Context, img image.Image) (model.VisualFeatures, model.ColorHistogram, error)
|
|
}
|
|
|
|
type TextureAnalyzer interface {
|
|
Analyze(ctx context.Context, img image.Image) (model.TextureFeatures, error)
|
|
}
|
|
|
|
type StatisticsAnalyzer interface {
|
|
Analyze(ctx context.Context, img image.Image, visual model.VisualFeatures, texture model.TextureFeatures) (model.CanonicalStatistics, error)
|
|
}
|
|
|
|
type SemanticAnalyzer interface {
|
|
Analyze(ctx context.Context, imagePath string, product model.Product, visual model.VisualFeatures, texture model.TextureFeatures) (model.SemanticFeatures, error)
|
|
}
|
|
|
|
type EmbeddingAnalyzer interface {
|
|
Embed(ctx context.Context, req embedding.Request) (embedding.Result, error)
|
|
}
|
|
|
|
type MaterialAdapter interface {
|
|
Adapt(product model.Product, visual model.VisualFeatures, texture model.TextureFeatures, semantic model.SemanticFeatures) (map[string]interface{}, error)
|
|
}
|