Upload files to "/"
This commit is contained in:
72
proc_26ai_info_cases.sql
Normal file
72
proc_26ai_info_cases.sql
Normal file
@@ -0,0 +1,72 @@
|
||||
create or replace procedure proc_26ai_info_cases( p_language in varchar2 default 'pt-BR',
|
||||
p_app_user in varchar2 ,
|
||||
p_industry in varchar2 ,
|
||||
p_result out clob ,
|
||||
p_comp_id in varchar2 ,
|
||||
p_oci_cred in varchar2 default 'OCI_CRED',
|
||||
p_flag_has_audio in varchar2 default 'N'
|
||||
)
|
||||
as
|
||||
v_clob clob;
|
||||
v_prompt clob;
|
||||
v_language varchar2(200) := p_language; -- ["pt-BR","en-US","es-ES","cmn-CN"]
|
||||
v_text2speech clob;
|
||||
begin
|
||||
|
||||
for r1 in (
|
||||
SELECT JSON_OBJECT(
|
||||
'case_name' VALUE c.case_name,
|
||||
'case_desc' VALUE c.case_desc,
|
||||
'technologies' VALUE c.technologies,
|
||||
'industry_name' VALUE i.industry_name
|
||||
) AS case_json
|
||||
FROM demo_case c
|
||||
JOIN demo_industry i
|
||||
ON c.industry_id = i.industry_id
|
||||
WHERE upper(i.industry_name) = upper(p_industry) ) loop
|
||||
|
||||
v_clob := v_clob || r1.case_json;
|
||||
|
||||
end loop;
|
||||
|
||||
v_prompt := 'Casos de uso da indústria ' || p_industry || ' neste portal APEX, chamado de 26ai Demo Hub: ' || v_clob;
|
||||
|
||||
v_text2speech := FNC_26ai_rag(p_ai_prompt => '#O que esta plataforma mostra?
|
||||
-Como IA nativa do Oracle 26ai reduz custos
|
||||
-Como acelerar operações
|
||||
-Como automatizar tarefas críticas
|
||||
-Como melhorar a experiência do cliente
|
||||
-Como acelerar inovação
|
||||
|
||||
#Conteúdo: ' || v_prompt || '.
|
||||
|
||||
#Cite "Histórias de Transformação", contendo dados da indústria de ' || p_industry || ':
|
||||
✔ Problema real
|
||||
✔ Como a IA do Oracle poderia atuar
|
||||
✔ Resultados estimados ou conhecidos
|
||||
|
||||
#Adicione no topo de cada indústria:
|
||||
Headline de negócio: Um mini storytelling de 20 linhas explicando o antes/depois com IA
|
||||
|
||||
#Nosso objetivo de perceção: não é "um APEX com telas", é uma plataforma de valor.
|
||||
|
||||
#REGRAS
|
||||
O retorno deste RAG deve ser gerado OBRIGATORIAMENTE em ' || v_language || '.',
|
||||
p_oci_cred => p_oci_cred,
|
||||
p_comp => p_comp_id);
|
||||
|
||||
p_result := v_text2speech;
|
||||
|
||||
if p_flag_has_audio = 'Y' then
|
||||
|
||||
pck_26ai_apis.api_text2speech(p_text => v_text2speech,
|
||||
p_filename => replace( lower( p_app_user ),'@oracle.com','_') || to_char(sysdate,'rrrrmmddhh24miss') || '.mp3',
|
||||
p_bucket => 'https://objectstorage.us-phoenix-1.oraclecloud.com/p/lK6O6NVuxHZK3S86Vn1E_9PYh2k7t1EcTYmhFuB2WqHa66CaXed1iziydQyGpyQE/n/idi1o0a010nx/b/bucket-26ai-demo-hub-text2speech/o/' ,
|
||||
p_comp_id => p_comp_id,
|
||||
p_credential => p_oci_cred,
|
||||
p_language_code => v_language) ;
|
||||
|
||||
end if;
|
||||
|
||||
end;
|
||||
/
|
||||
86
proc_26ai_llm_chart.sql
Normal file
86
proc_26ai_llm_chart.sql
Normal 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;
|
||||
/
|
||||
23
proc_26ai_query_insights_pending.sql
Normal file
23
proc_26ai_query_insights_pending.sql
Normal file
@@ -0,0 +1,23 @@
|
||||
create or replace procedure PROC_26ai_query_INSIGHTS_PENDING(p_query_id in number default null)
|
||||
as
|
||||
|
||||
begin
|
||||
for r1 in ( select query_id
|
||||
from TB_26AI_QUERY_HISTORY
|
||||
where INSIGHT_DATE is null
|
||||
and (query_id = p_query_id or p_query_id is null )
|
||||
order by REGISTER_DATE
|
||||
) loop
|
||||
|
||||
insert into tb_26ai_query_insight
|
||||
select * from table( FNC_26ai_query_INSIGHTS_LIST( r1.query_id ) );
|
||||
|
||||
update TB_26AI_QUERY_HISTORY
|
||||
set INSIGHT_DATE = sysdate
|
||||
where query_id = r1.query_id ;
|
||||
|
||||
commit;
|
||||
|
||||
end loop;
|
||||
end;
|
||||
/
|
||||
Reference in New Issue
Block a user