Skip to content

Store user messages in table

Jan Provaznik requested to merge jp-ai-cache-db2 into master

What does this MR do and why?

An alternative solution for https://gitlab.com/gitlab-org/gitlab/-/issues/410521

Uses DB to store AI conversation, similar to CI conversation messages.

DB migration

rollback:

main: == [advisory_lock_connection] object_id: 275840, pg_backend_pid: 3184837
main: == 20230517132914 LlmMessages: reverting ======================================
main: -- drop_table(:llm_messages)
main:    -> 0.0019s
main: == 20230517132914 LlmMessages: reverted (0.0058s) =============================

main: == [advisory_lock_connection] object_id: 275840, pg_backend_pid: 3184837
ci: == [advisory_lock_connection] object_id: 276760, pg_backend_pid: 3185225
ci: == 20230517132914 LlmMessages: reverting ======================================
ci: -- drop_table(:llm_messages)
ci:    -> 0.0013s
ci: == 20230517132914 LlmMessages: reverted (0.0093s) =============================

ci: == [advisory_lock_connection] object_id: 276760, pg_backend_pid: 3185225


migrate:
main: == [advisory_lock_connection] object_id: 276020, pg_backend_pid: 3185793
main: == 20230517132914 LlmMessages: migrating ======================================
main: -- create_table(:llm_messages)
main: -- quote_column_name(:sessionid)
main:    -> 0.0001s
main: -- quote_column_name(:requestid)
main:    -> 0.0000s
main: -- quote_column_name(:content)
main:    -> 0.0000s
main:    -> 0.0224s
main: == 20230517132914 LlmMessages: migrated (0.0733s) =============================

main: == [advisory_lock_connection] object_id: 276020, pg_backend_pid: 3185793
ci: == [advisory_lock_connection] object_id: 276300, pg_backend_pid: 3185795
ci: == 20230517132914 LlmMessages: migrating ======================================
ci: -- create_table(:llm_messages)
ci: -- quote_column_name(:sessionid)
ci:    -> 0.0000s
ci: -- quote_column_name(:requestid)
ci:    -> 0.0000s
ci: -- quote_column_name(:content)
ci:    -> 0.0000s
ci:    -> 0.0328s
I, [2023-05-18T11:17:19.962545 #3185617]  INFO -- : Database: 'ci', Table: 'llm_messages': Lock Writes
ci: == 20230517132914 LlmMessages: migrated (0.0441s) =============================

ci: == [advisory_lock_connection] object_id: 276300, pg_backend_pid: 3185795
embedding: == [advisory_lock_connection] object_id: 276500, pg_backend_pid: 3185798
embedding: == [advisory_lock_connection] object_id: 276500, pg_backend_pid: 3185798

How to set up and validate locally

Numbered steps to set up and validate the change are strongly suggested.

MR acceptance checklist

This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.

Edited by Jan Provaznik

Merge request reports