MCPcopy Index your code
hub / github.com/coder/coder / regenerateChatTitleWithStore

Method regenerateChatTitleWithStore

coderd/x/chatd/chatd.go:3291–3329  ·  view source on GitHub ↗
(
	ctx context.Context,
	store database.Store,
	chat database.Chat,
	keys chatprovider.ProviderAPIKeys,
)

Source from the content-addressed store, hash-verified

3289}
3290
3291func (p *Server) regenerateChatTitleWithStore(
3292 ctx context.Context,
3293 store database.Store,
3294 chat database.Chat,
3295 keys chatprovider.ProviderAPIKeys,
3296) (database.Chat, error) {
3297 result, err := p.generateManualTitleCandidate(ctx, store, chat, keys)
3298 if err != nil {
3299 return database.Chat{}, err
3300 }
3301 if !result.hasMessages {
3302 return chat, nil
3303 }
3304
3305 recordCtx, recordCancel := context.WithTimeout(context.WithoutCancel(ctx), 5*time.Second)
3306 defer recordCancel()
3307
3308 updatedChat, recordErr := recordManualTitleUsage(
3309 recordCtx,
3310 store,
3311 chat,
3312 result.modelConfig,
3313 result.usage,
3314 result.activeAPIKeyID,
3315 result.title,
3316 )
3317 if recordErr != nil {
3318 if result.title != "" {
3319 return database.Chat{}, xerrors.Errorf("record manual title usage and update chat title: %w", recordErr)
3320 }
3321 return database.Chat{}, xerrors.Errorf("record manual title usage: %w", recordErr)
3322 }
3323 if updatedChat.Title == chat.Title {
3324 return updatedChat, nil
3325 }
3326
3327 p.publishChatPubsubEvent(updatedChat, codersdk.ChatWatchEventKindTitleChange, nil)
3328 return updatedChat, nil
3329}
3330
3331func (p *Server) prepareManualTitleDebugRun(
3332 ctx context.Context,

Callers 1

RegenerateChatTitleMethod · 0.95

Calls 4

recordManualTitleUsageFunction · 0.85
ErrorfMethod · 0.45

Tested by

no test coverage detected