( ctx context.Context, chat database.Chat, keys chatprovider.ProviderAPIKeys, modelOpts modelBuildOptions, )
| 3671 | } |
| 3672 | |
| 3673 | func (p *Server) resolveFallbackManualTitleModel( |
| 3674 | ctx context.Context, |
| 3675 | chat database.Chat, |
| 3676 | keys chatprovider.ProviderAPIKeys, |
| 3677 | modelOpts modelBuildOptions, |
| 3678 | ) (fantasy.LanguageModel, database.ChatModelConfig, chatprovider.ProviderAPIKeys, error) { |
| 3679 | config, err := p.resolveModelConfig(ctx, chat) |
| 3680 | if err != nil { |
| 3681 | return nil, database.ChatModelConfig{}, chatprovider.ProviderAPIKeys{}, xerrors.Errorf( |
| 3682 | "resolve fallback manual title model config: %w", |
| 3683 | err, |
| 3684 | ) |
| 3685 | } |
| 3686 | route, err := p.resolveModelRouteForConfig(ctx, chat.OwnerID, config, keys) |
| 3687 | if err != nil { |
| 3688 | return nil, database.ChatModelConfig{}, chatprovider.ProviderAPIKeys{}, err |
| 3689 | } |
| 3690 | model, err := p.newModel(ctx, modelClientRequest{ |
| 3691 | Chat: chat, |
| 3692 | ModelName: config.Model, |
| 3693 | UserAgent: chatprovider.UserAgent(), |
| 3694 | ExtraHeaders: chatprovider.CoderHeaders(chat), |
| 3695 | }, route, modelOpts) |
| 3696 | if err != nil { |
| 3697 | return nil, database.ChatModelConfig{}, chatprovider.ProviderAPIKeys{}, xerrors.Errorf( |
| 3698 | "create fallback manual title model: %w", |
| 3699 | err, |
| 3700 | ) |
| 3701 | } |
| 3702 | return model, config, route.directProviderKeys(), nil |
| 3703 | } |
| 3704 | |
| 3705 | func mergeManualTitleMessages( |
| 3706 | headMessages []database.ChatMessage, |
no test coverage detected