thread-master/internal/logic/ai/list_ai_providers_logic.go

31 lines
760 B
Go

package ai
import (
"context"
"haixun-backend/internal/svc"
"haixun-backend/internal/types"
)
type ListAIProvidersLogic struct {
ctx context.Context
svcCtx *svc.ServiceContext
}
func NewListAIProvidersLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ListAIProvidersLogic {
return &ListAIProvidersLogic{ctx: ctx, svcCtx: svcCtx}
}
func (l *ListAIProvidersLogic) ListAIProviders() (*types.AIProvidersData, error) {
options := l.svcCtx.AI.ListProviders(l.ctx)
items := make([]types.AIProviderOption, 0, len(options))
for _, option := range options {
items = append(items, types.AIProviderOption{
ID: option.ID,
Label: option.Label,
Streams: option.Streams,
})
}
return &types.AIProvidersData{Providers: items}, nil
}