31 lines
760 B
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
|
|
}
|