63 lines
2.3 KiB
SQL
63 lines
2.3 KiB
SQL
create or replace procedure prc_26ai_query_run_insight(p_query_id in number, p_synthesizespeech in varchar2)
|
|
as
|
|
v_json_result CLOB;
|
|
v_narrate_result CLOB;
|
|
|
|
-- Variáveis para processamento
|
|
v_aggregated_array CLOB;
|
|
|
|
-- sintetizar voz ( )
|
|
v_flag_synthesizespeech varchar2(1) := p_synthesizespeech; -- [Y | N]
|
|
|
|
begin
|
|
for r1 in ( select id, 'SELECT json_arrayagg(c1) FROM ( SELECT JSON_OBJECT(v1.*) c1 FROM ( ' || sql_query || ' ) v1 WHERE ROWNUM <= 20 )' sql_query
|
|
from tb_26ai_query_insight
|
|
where query_id = p_query_id ) loop
|
|
|
|
begin
|
|
|
|
begin
|
|
EXECUTE IMMEDIATE(R1.sql_query) INTO v_json_result;
|
|
|
|
--DBMS_OUTPUT.PUT_LINE(v_json_result);
|
|
|
|
v_narrate_result := FNC_26AI_RAG('Descreva o resultado obtido da query que esta contida neste JSON: ' || v_json_result ||
|
|
'Não cite que se trata de um JSON, foque apenas na descrição do resultado.' ||
|
|
'Esta descrição não tem objetivo técnico, de detalhes do comando, mas sim dos resultados obtidos com foco em insigths.'
|
|
,'OCI_CRED') ;
|
|
|
|
if v_flag_synthesizespeech = 'Y' then
|
|
|
|
-- proc_speech_synthesizespeech (p_text => v_narrate_result,
|
|
-- p_filename => 'audio_' || p_query_id || '_insight_' || r1.id || '.mp3'
|
|
-- );
|
|
null;
|
|
|
|
end if;
|
|
|
|
--
|
|
-- chamar api para gerar arquivo de audio num bucket (api: SynthesizeSpeech)
|
|
--
|
|
|
|
insert into tb_26ai_query_run_insight
|
|
values(p_query_id,
|
|
r1.id,
|
|
v_json_result,
|
|
v_narrate_result,
|
|
case
|
|
when v_flag_synthesizespeech = 'Y' then
|
|
'audio_' || p_query_id || '_insight_' || r1.id || '.mp3'
|
|
else
|
|
null
|
|
end);
|
|
commit;
|
|
|
|
exception
|
|
when others then
|
|
null;
|
|
end;
|
|
|
|
end;
|
|
end loop;
|
|
end;
|
|
/ |