recommender/internal/service/embedding/provider.go
2024-11-10 03:49:53 +08:00

32 lines
791 B
Go

package embedding
import (
"github.com/tmc/langchaingo/llms/openai"
"leafdev.top/Ecosystem/recommender/internal/base/conf"
"leafdev.top/Ecosystem/recommender/internal/base/logger"
"leafdev.top/Ecosystem/recommender/internal/base/redis"
"leafdev.top/Ecosystem/recommender/internal/dao"
)
type Service struct {
OpenAI *openai.LLM
Logger *logger.Logger
config *conf.Config
dao *dao.Query
redis *redis.Redis
}
func NewService(config *conf.Config, logger *logger.Logger, dao *dao.Query, redis *redis.Redis) *Service {
llm, err := openai.New(
openai.WithToken(config.OpenAI.ApiKey),
openai.WithBaseURL(config.OpenAI.BaseUrl),
openai.WithEmbeddingModel(config.OpenAI.EmbeddingModel),
)
if err != nil {
panic(err)
}
return &Service{llm, logger, config, dao, redis}
}