AllAi/backend/go/internal/provider/mock/mock.go
2025-11-14 21:54:04 +03:00

56 lines
1.3 KiB
Go

package mock
import (
"context"
"time"
"github.com/allai/allai-backend/internal/app"
)
// Provider is a lightweight mock that simulates async generation.
type Provider struct {
models []app.ModelDescriptor
}
func New() *Provider {
return &Provider{
models: []app.ModelDescriptor{
{
ID: "nano-banana",
Label: "Nano Banana",
Provider: "Gemini",
Modalities: []string{"image"},
Capabilities: []string{"text-to-image", "image-edit"},
},
{
ID: "veo3",
Label: "VEO3",
Provider: "Google DeepMind",
Modalities: []string{"video"},
Capabilities: []string{"text-to-video", "image-to-video"},
},
{
ID: "sora-2",
Label: "Sora 2",
Provider: "OpenAI",
Modalities: []string{"video"},
Capabilities: []string{"text-to-video"},
},
},
}
}
func (p *Provider) ListModels(ctx context.Context) ([]app.ModelDescriptor, error) {
return p.models, nil
}
func (p *Provider) Generate(ctx context.Context, req app.GenerationRequest) (app.GenerationResponse, error) {
return app.GenerationResponse{
ID: "mock-" + time.Now().UTC().Format("20060102T150405Z"),
ModelID: req.ModelID,
Status: "queued",
QueuedAt: time.Now().UTC(),
ExpiresAt: time.Now().UTC().Add(15 * time.Minute),
}, nil
}