package service

import (
    "context"
    "github.com/cloudwego/eino/compose"
    "github.com/cloudwego/eino/schema"
    "ai_scheduler/internal/config"
    "ai_scheduler/internal/domain/llm/pipeline"
)

type VisionService struct{ run compose.Runnable[[]*schema.Message, *schema.Message] }

func NewVisionService(ctx context.Context, cfg *config.Config) (*VisionService, error) {
    r, err := pipeline.BuildVision(ctx, cfg)
    if err != nil { return nil, err }
    return &VisionService{run: r}, nil
}

func (s *VisionService) Invoke(ctx context.Context, msgs []*schema.Message) (*schema.Message, error) {
    return s.run.Invoke(ctx, msgs)
}

