Documentation
¶
Index ¶
- type Analyzer
- func (a *Analyzer) BuildPrompt(templatePath, quirkyPath string) (string, error)
- func (a *Analyzer) EvaluateLeave(leave string) (float64, error)
- func (a *Analyzer) GetFuturePlayMetadata(playString string) (*FuturePlayMetadata, error)
- func (a *Analyzer) GetPlayMetadata(playString string) (*PlayMetadata, error)
- func (a *Analyzer) SetConfig(cfg *config.Config)
- func (a *Analyzer) SetGameContext(gameState, simResults, simDetails, winningPlay, winningStats string)
- type Config
- type EvaluateLeaveTool
- func (t *EvaluateLeaveTool) Description() string
- func (t *EvaluateLeaveTool) Execute(ctx context.Context, args string) (string, error)
- func (t *EvaluateLeaveTool) Name() string
- func (t *EvaluateLeaveTool) Parameters() map[string]interfaces.ParameterSpec
- func (t *EvaluateLeaveTool) Run(ctx context.Context, args string) (string, error)
- type ExplainResult
- type FuturePlayMetadata
- type GetOurFuturePlayMetadataTool
- func (t *GetOurFuturePlayMetadataTool) Description() string
- func (t *GetOurFuturePlayMetadataTool) Execute(ctx context.Context, args string) (string, error)
- func (t *GetOurFuturePlayMetadataTool) Name() string
- func (t *GetOurFuturePlayMetadataTool) Parameters() map[string]interfaces.ParameterSpec
- func (t *GetOurFuturePlayMetadataTool) Run(ctx context.Context, args string) (string, error)
- type GetOurPlayMetadataTool
- func (t *GetOurPlayMetadataTool) Description() string
- func (t *GetOurPlayMetadataTool) Execute(ctx context.Context, args string) (string, error)
- func (t *GetOurPlayMetadataTool) Name() string
- func (t *GetOurPlayMetadataTool) Parameters() map[string]interfaces.ParameterSpec
- func (t *GetOurPlayMetadataTool) Run(ctx context.Context, args string) (string, error)
- type PlayMetadata
- type Service
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Analyzer ¶
type Analyzer struct {
// contains filtered or unexported fields
}
Analyzer provides the actual analysis logic
func NewAnalyzer ¶
func NewAnalyzer() *Analyzer
func (*Analyzer) BuildPrompt ¶
BuildPrompt constructs the full prompt with the game situation
func (*Analyzer) EvaluateLeave ¶
EvaluateLeave evaluates the value of a leave
func (*Analyzer) GetFuturePlayMetadata ¶
func (a *Analyzer) GetFuturePlayMetadata(playString string) (*FuturePlayMetadata, error)
GetFuturePlayMetadata analyzes a potential future play by parsing winningStats
func (*Analyzer) GetPlayMetadata ¶
func (a *Analyzer) GetPlayMetadata(playString string) (*PlayMetadata, error)
GetPlayMetadata analyzes a play and returns metadata
func (*Analyzer) SetGameContext ¶
func (a *Analyzer) SetGameContext(gameState, simResults, simDetails, winningPlay, winningStats string)
SetGameContext sets the current game context for analysis
type Config ¶
type Config struct {
Provider string // "gemini", "openai", or "deepseek"
APIKey string
Model string
BaseURL string // optional: override base URL (e.g. for LM Studio at http://127.0.0.1:1234/v1)
UseQuirky bool
MainPromptPath string
QuirkyPromptPath string
}
Config holds configuration for the explainer service
func DefaultConfig ¶
DefaultConfig returns a default configuration from macondo config
type EvaluateLeaveTool ¶
type EvaluateLeaveTool struct {
// contains filtered or unexported fields
}
EvaluateLeaveTool evaluates the value of a leave
func NewEvaluateLeaveTool ¶
func NewEvaluateLeaveTool(analyzer *Analyzer) *EvaluateLeaveTool
func (*EvaluateLeaveTool) Description ¶
func (t *EvaluateLeaveTool) Description() string
func (*EvaluateLeaveTool) Name ¶
func (t *EvaluateLeaveTool) Name() string
func (*EvaluateLeaveTool) Parameters ¶
func (t *EvaluateLeaveTool) Parameters() map[string]interfaces.ParameterSpec
type ExplainResult ¶
ExplainResult contains the explanation from the AI
type FuturePlayMetadata ¶
type FuturePlayMetadata struct {
Play string `json:"play"`
Score int `json:"score"`
IsBingo bool `json:"is_bingo"`
NeededDraw []string `json:"needed_draw"` // tiles needed from bag
RequiresOtherPlay string `json:"requires_opp_play"` // opponent play needed first
ProbabilityPercent float64 `json:"probability_percent"` // likelihood of this play
}
FuturePlayMetadata represents metadata about a potential future play
type GetOurFuturePlayMetadataTool ¶
type GetOurFuturePlayMetadataTool struct {
// contains filtered or unexported fields
}
GetOurFuturePlayMetadataTool analyzes metadata for a potential future play
func NewGetOurFuturePlayMetadataTool ¶
func NewGetOurFuturePlayMetadataTool(analyzer *Analyzer) *GetOurFuturePlayMetadataTool
func (*GetOurFuturePlayMetadataTool) Description ¶
func (t *GetOurFuturePlayMetadataTool) Description() string
func (*GetOurFuturePlayMetadataTool) Name ¶
func (t *GetOurFuturePlayMetadataTool) Name() string
func (*GetOurFuturePlayMetadataTool) Parameters ¶
func (t *GetOurFuturePlayMetadataTool) Parameters() map[string]interfaces.ParameterSpec
type GetOurPlayMetadataTool ¶
type GetOurPlayMetadataTool struct {
// contains filtered or unexported fields
}
GetOurPlayMetadataTool analyzes metadata for a current play
func NewGetOurPlayMetadataTool ¶
func NewGetOurPlayMetadataTool(analyzer *Analyzer) *GetOurPlayMetadataTool
func (*GetOurPlayMetadataTool) Description ¶
func (t *GetOurPlayMetadataTool) Description() string
func (*GetOurPlayMetadataTool) Name ¶
func (t *GetOurPlayMetadataTool) Name() string
func (*GetOurPlayMetadataTool) Parameters ¶
func (t *GetOurPlayMetadataTool) Parameters() map[string]interfaces.ParameterSpec
type PlayMetadata ¶
type PlayMetadata struct {
Play string `json:"play"`
Score int `json:"score"`
TilesUsed int `json:"tiles_used"`
IsBingo bool `json:"is_bingo"`
VowelsInLeave int `json:"vowels_in_leave"`
ConsonantsLeft int `json:"consonants_in_leave"`
LeaveBalance string `json:"leave_balance"` // "balanced", "vowel-heavy", "consonant-heavy"
}
PlayMetadata represents metadata about a Scrabble play
type Service ¶
type Service struct {
// contains filtered or unexported fields
}
Service provides the main explainer service
func NewService ¶
NewService creates a new explainer service
func (*Service) Explain ¶
func (s *Service) Explain(ctx context.Context, gameState, simResults, simDetails, winningPlay, winningStats string) (*ExplainResult, error)
Explain generates an explanation for the given game situation
func (*Service) SetGame ¶
func (s *Service) SetGame(tp *bot.BotTurnPlayer)