New creates a new title Generator. The first model is the primary; any additional ones are fallbacks tried in order if earlier attempts fail. Nil providers are silently ignored.
(model provider.Provider, fallbackModels ...provider.Provider)
| 50 | // additional ones are fallbacks tried in order if earlier attempts fail. |
| 51 | // Nil providers are silently ignored. |
| 52 | func New(model provider.Provider, fallbackModels ...provider.Provider) *Generator { |
| 53 | models := slices.DeleteFunc( |
| 54 | append([]provider.Provider{model}, fallbackModels...), |
| 55 | func(p provider.Provider) bool { return p == nil }, |
| 56 | ) |
| 57 | return &Generator{models: models} |
| 58 | } |
| 59 | |
| 60 | // Generate produces a title for a session based on the provided user messages. |
| 61 | // It performs one-shot LLM calls directly via the provider's |
no outgoing calls