Upload files to "/"

This commit is contained in:
2026-05-08 13:10:38 +00:00
parent 8a99fd99b8
commit 142e86c618
3 changed files with 181 additions and 0 deletions

86
proc_26ai_llm_chart.sql Normal file
View File

@@ -0,0 +1,86 @@
create or replace procedure proc_26ai_llm_chart(p_session_id in number,
p_user_name in varchar2,
p_prompt in varchar2,
p_conv_id in number
)
as
/*
Criado por: fernando.leal@oracle.com
Data: Oct/2025
Objetivo: demonstrar casos de uso do Oracle AI Database 26ai
v1 - graficos em componente de chat - leal
*/
/*
SELECT
jt.X,
jt.Y
FROM TB_CHART d,
JSON_TABLE(
d.RUNSQL, '$[*]'
COLUMNS (
x VARCHAR2(50) PATH '$.X',
y NUMBER PATH '$.Y'
)
) jt
where session_id = :app_session
and conv_id = :P37_CONV_ID
*/
v_context clob;
v_response clob;
v_conv_id number;
v_showsql clob;
v_runsql clob;
v_title clob;
v_debug varchar2(1) default 'Y';
-- create table tb_chart_test2 ( title varchar2(200), runsql clob )
v_profile_selectai varchar2(200) := 'PROF_TELECOM_V1';
v_prompt varchar2(32000);
begin
v_prompt := 'Você é um especialista em Oracle SQL.' ||
' Crie um comando para que seja possível montar um gráfico, trazendo apenas 2 colunas, que assegure existir dados para eixo X e dados para eixo Y.' ||
' REGRA: NUNCA use o nome das colunas, use sempre X e Y. Procure associar ao eixo X e Y as informacoes mais importantes para que o gráfico agregue insigths do negócio.' ||
' Exemplo 1: "Faça um grafico da evolução de venda de produtos" . O eixo X deve ter o nome dos produtos, e eixo Y o total de vendas.' ||
' Exemplo 2: "Faça um grafico sobre reclamacoes realizadas? Eixo X tem as reclamacoes agrupdas com GROUP BY e eixo Y a quantidade encontrada com COUNT' ||
' Prompt: ' || p_prompt;
SELECT DBMS_CLOUD_AI.GENERATE(prompt => v_prompt,
profile_name => v_profile_selectai,
action => 'runsql') response
into v_runsql ;
if v_debug = 'Y' then
SELECT DBMS_CLOUD_AI.GENERATE(prompt => v_prompt,
profile_name => v_profile_selectai,
action => 'showsql') response
into v_showsql ;
end if;
SELECT DBMS_CLOUD_AI.GENERATE(prompt => 'Qual melhor título para um gráfico que será gerado por este prompt: ' || p_prompt || '.' ||
'REGRAS: máximo permitido são 6 palavras. Seja claro e o mais sucinto possível. RETORNE apenas o título. Não de nenhuma outra explicacação.',
profile_name => v_profile_selectai,
action => 'chat') response
into v_title ;
delete "TB_26AI_CHART"
where SESSION_ID = p_session_id
and conv_id = p_conv_id;
insert into "TB_26AI_CHART"
values(p_session_id,
p_user_name,
sysdate,
v_title,
v_runsql,
v_showsql,
p_conv_id,
null);
commit;
end;
/