51 lines
1.4 KiB
Go
51 lines
1.4 KiB
Go
package ai
|
|
|
|
import (
|
|
"context"
|
|
"resume-platform/internal/ai"
|
|
"resume-platform/internal/prompt"
|
|
)
|
|
|
|
type AIService struct {
|
|
provider ai.Provider
|
|
}
|
|
|
|
func NewAIService(provider ai.Provider) *AIService {
|
|
return &AIService{provider: provider}
|
|
}
|
|
|
|
func (s *AIService) PolishSummary(ctx context.Context, original string) (string, error) {
|
|
promptText := prompt.BuildPolishSummaryPrompt(original)
|
|
|
|
return s.provider.Generate(ctx, promptText)
|
|
}
|
|
|
|
func (s *AIService) PolishExperience(ctx context.Context, original string, company string, position string) (string, error) {
|
|
promptText := prompt.BuildPolishExperiencePrompt(original, company, position)
|
|
|
|
return s.provider.Generate(ctx, promptText)
|
|
}
|
|
|
|
func (s *AIService) PolishProject(ctx context.Context, original string, projectName string) (string, error) {
|
|
promptText := prompt.BuildPolishProjectPrompt(original, projectName)
|
|
|
|
return s.provider.Generate(ctx, promptText)
|
|
}
|
|
|
|
func (s *AIService) PolishDescription(ctx context.Context, original string, fieldType string) (string, error) {
|
|
promptText := prompt.BuildPolishDescriptionPrompt(original, fieldType)
|
|
|
|
return s.provider.Generate(ctx, promptText)
|
|
}
|
|
|
|
func (s *AIService) GetProviderName() string {
|
|
return s.provider.GetName()
|
|
}
|
|
|
|
func (s *AIService) Generate(ctx context.Context, prompt string) (string, error) {
|
|
return s.provider.Generate(ctx, prompt)
|
|
}
|
|
|
|
func (s *AIService) Embedding(ctx context.Context, text string) ([]float64, error) {
|
|
return nil, nil
|
|
} |