2024-11-06 10:47:56 +00:00
|
|
|
package embedding
|
|
|
|
|
|
|
|
import (
|
|
|
|
"github.com/tmc/langchaingo/llms/openai"
|
2024-11-09 19:49:53 +00:00
|
|
|
"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"
|
2024-11-06 10:47:56 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
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),
|
2024-11-09 19:49:53 +00:00
|
|
|
openai.WithBaseURL(config.OpenAI.BaseUrl),
|
2024-11-06 10:47:56 +00:00
|
|
|
openai.WithEmbeddingModel(config.OpenAI.EmbeddingModel),
|
|
|
|
)
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
panic(err)
|
|
|
|
}
|
|
|
|
|
|
|
|
return &Service{llm, logger, config, dao, redis}
|
|
|
|
}
|