| 6469 | } |
| 6470 | |
| 6471 | func activeTurnAPIKeyIDFromMessages(messages []database.ChatMessage) (string, bool) { |
| 6472 | for i := len(messages) - 1; i >= 0; i-- { |
| 6473 | message := messages[i] |
| 6474 | if message.Role != database.ChatMessageRoleUser { |
| 6475 | continue |
| 6476 | } |
| 6477 | if !isUserVisibleChatMessage(message) && |
| 6478 | !(message.Visibility == database.ChatMessageVisibilityModel && message.Compressed) { |
| 6479 | continue |
| 6480 | } |
| 6481 | if !message.APIKeyID.Valid || message.APIKeyID.String == "" { |
| 6482 | return "", false |
| 6483 | } |
| 6484 | return message.APIKeyID.String, true |
| 6485 | } |
| 6486 | return "", false |
| 6487 | } |
| 6488 | |
| 6489 | func isUserVisibleChatMessage(message database.ChatMessage) bool { |
| 6490 | return message.Visibility == database.ChatMessageVisibilityBoth || |