Files
26ai_mvp_poc/fnc_26ai_rag.sql
2026-05-08 13:14:56 +00:00

55 lines
2.1 KiB
SQL

create or replace FUNCTION FNC_26ai_rag (p_ai_prompt IN clob,
p_oci_cred IN VARCHAR2 default 'OCI_CRED',
p_comp in varchar2
)
RETURN CLOB AS
/*
Criado por: fernando.leal@oracle.com
Data: Oct/2025
Objetivo: demonstrar casos de uso do Oracle AI Database 26ai
v1 - funcao global de RAG com Llama4 - leal
*/
v_gen_ai_endpoint varchar2(500) := 'https://inference.generativeai.us-chicago-1.oci.oraclecloud.com';
v_gen_ai_model varchar2(500) := 'meta.llama-4-maverick-17b-128e-instruct-fp8';
resp dbms_cloud_types.RESP;
BEGIN
resp := dbms_cloud.send_request(
credential_name => p_oci_cred,
uri => v_gen_ai_endpoint || '/20231130/actions/chat',
method => dbms_cloud.METHOD_POST,
body => utl_raw.cast_to_raw(json_object(
'compartmentId' value p_comp,
'servingMode' value
(json_object(
'modelId' value v_gen_ai_model,
'servingType' value 'ON_DEMAND'
)),
'chatRequest' value
(json_object(
'apiFormat' value 'GENERIC',
'messages' value
(json_array(JSON_OBJECT(
'role' value 'USER',
'content' value
(json_array(JSON_OBJECT(
'type' value 'TEXT',
'text' value p_ai_prompt
)))
))),
'temperature' value 0.1,
'topK' value -1
))
))
);
RETURN json_value( dbms_cloud.get_response_text(resp) , '$.chatResponse.choices[0].message.content[0].text') ;
-- cuidado: removido 'maxTokens' value 1000 em 14-11-25 leal
EXCEPTION
WHEN OTHERS THEN
RETURN 'Não foi possível gerar um texto com base nas informações.';
END;
/