Store user messages in table
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.
-
I have evaluated the MR acceptance checklist for this MR.
Edited by Jan Provaznik