Documentation
¶
Index ¶
- func ExtractJSON(text string) string
- func GetGenerateConfig(modelName string, responseType string) *genai.GenerateContentConfig
- func SanitizeJSON(s string) string
- type CodeAnalysisJSON
- type CommitSuggestionJSON
- type GeminiCommitSummarizer
- type GeminiIssueContentGenerator
- type GeminiPRSummarizer
- type GeminiProvider
- type PRSummaryJSON
- type ReleaseNotesGenerator
- type ReleaseNotesJSON
- type RequirementsJSON
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ExtractJSON ¶
ExtractJSON attempts to extract a valid JSON block from text, handling Markdown code blocks and possible extra text that models with "Thinking" mode might generate.
func GetGenerateConfig ¶
func GetGenerateConfig(modelName string, responseType string) *genai.GenerateContentConfig
GetGenerateConfig returns the optimal configuration for the model, enabling Thinking Mode if compatible.
func SanitizeJSON ¶
SanitizeJSON cleans malformed JSON that LLMs sometimes generate, such as unescaped newlines within String Literals.
Types ¶
type CodeAnalysisJSON ¶
type CommitSuggestionJSON ¶
type CommitSuggestionJSON struct {
Title string `json:"title"`
Desc string `json:"desc"`
Files []string `json:"files"`
Analysis *CodeAnalysisJSON `json:"analysis,omitempty"`
Requirements *RequirementsJSON `json:"requirements,omitempty"`
}
type GeminiCommitSummarizer ¶
type GeminiCommitSummarizer struct {
*GeminiProvider
// contains filtered or unexported fields
}
func NewGeminiCommitSummarizer ¶
func NewGeminiCommitSummarizer(ctx context.Context, cfg *config.Config, onConfirmation ai.ConfirmationCallback) (*GeminiCommitSummarizer, error)
func (*GeminiCommitSummarizer) GenerateSuggestions ¶
func (s *GeminiCommitSummarizer) GenerateSuggestions(ctx context.Context, info models.CommitInfo, count int) ([]models.CommitSuggestion, error)
type GeminiIssueContentGenerator ¶
type GeminiIssueContentGenerator struct {
*GeminiProvider
// contains filtered or unexported fields
}
func NewGeminiIssueContentGenerator ¶
func NewGeminiIssueContentGenerator(ctx context.Context, cfg *config.Config, onConfirmation ai.ConfirmationCallback) (*GeminiIssueContentGenerator, error)
func (*GeminiIssueContentGenerator) GenerateIssueContent ¶
func (s *GeminiIssueContentGenerator) GenerateIssueContent(ctx context.Context, request models.IssueGenerationRequest) (*models.IssueGenerationResult, error)
GenerateIssueContent generates issue content using Gemini AI.
type GeminiPRSummarizer ¶
type GeminiPRSummarizer struct {
*GeminiProvider
// contains filtered or unexported fields
}
func NewGeminiPRSummarizer ¶
func NewGeminiPRSummarizer(ctx context.Context, cfg *config.Config, onConfirmation ai.ConfirmationCallback) (*GeminiPRSummarizer, error)
func (*GeminiPRSummarizer) GeneratePRSummary ¶
type GeminiProvider ¶
GeminiProvider is a shared base for all Gemini services that implements the ports.CostAwareAIProvider interface
func NewGeminiProvider ¶
func NewGeminiProvider(client *genai.Client, model string) *GeminiProvider
NewGeminiProvider creates a new instance of GeminiProvider
func (*GeminiProvider) CountTokens ¶
CountTokens implements ports.CostAwareAIProvider
func (*GeminiProvider) GetModelName ¶
func (g *GeminiProvider) GetModelName() string
GetModelName implements ports.CostAwareAIProvider
func (*GeminiProvider) GetProviderName ¶
func (g *GeminiProvider) GetProviderName() string
GetProviderName implements ports.CostAwareAIProvider
type PRSummaryJSON ¶
type ReleaseNotesGenerator ¶
type ReleaseNotesGenerator struct {
*GeminiProvider
// contains filtered or unexported fields
}
func NewReleaseNotesGenerator ¶
func NewReleaseNotesGenerator(ctx context.Context, cfg *config.Config, onConfirmation ai.ConfirmationCallback, owner, repo string) (*ReleaseNotesGenerator, error)
func (*ReleaseNotesGenerator) GenerateNotes ¶
func (g *ReleaseNotesGenerator) GenerateNotes(ctx context.Context, release *models.Release) (*models.ReleaseNotes, error)