fix(rectification): bind default session model
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
begin;
|
||||
|
||||
create or replace function public.default_rectification_chat_session_model()
|
||||
returns trigger
|
||||
language plpgsql
|
||||
security definer
|
||||
set search_path = ''
|
||||
as $$
|
||||
begin
|
||||
if new.session_type = 'birth_time_rectification' and new.model_id is null then
|
||||
select c.model_id into new.model_id
|
||||
from public.model_config_versions v
|
||||
join public.model_configs c on c.id = v.config_id
|
||||
join public.model_providers p on p.id = v.provider_id
|
||||
where v.status = 'published'
|
||||
and v.enabled
|
||||
and v.is_default
|
||||
and p.enabled
|
||||
limit 1;
|
||||
end if;
|
||||
return new;
|
||||
end
|
||||
$$;
|
||||
|
||||
revoke all on function public.default_rectification_chat_session_model() from public, anon, authenticated;
|
||||
|
||||
drop trigger if exists chat_sessions_default_rectification_model on public.chat_sessions;
|
||||
create trigger chat_sessions_default_rectification_model
|
||||
before insert or update of session_type, model_id on public.chat_sessions
|
||||
for each row execute function public.default_rectification_chat_session_model();
|
||||
|
||||
with default_model as (
|
||||
select c.model_id
|
||||
from public.model_config_versions v
|
||||
join public.model_configs c on c.id = v.config_id
|
||||
join public.model_providers p on p.id = v.provider_id
|
||||
where v.status = 'published'
|
||||
and v.enabled
|
||||
and v.is_default
|
||||
and p.enabled
|
||||
limit 1
|
||||
)
|
||||
update public.chat_sessions s
|
||||
set model_id = default_model.model_id
|
||||
from default_model
|
||||
where s.session_type = 'birth_time_rectification'
|
||||
and s.model_id is null;
|
||||
|
||||
commit;
|
||||
Reference in New Issue
Block a user