Upload files to "/"

This commit is contained in:
2026-05-08 13:09:00 +00:00
parent dc6c1662ed
commit 6359082956
5 changed files with 496 additions and 0 deletions

73
fnc_26ai_manufatura.sql Normal file
View File

@@ -0,0 +1,73 @@
create or replace function fnc_26ai_manufatura( p_image_id in number,
p_comp_id in varchar2,
p_credential in varchar2 default 'OCI_CRED')
return clob
as
/*
Criado por: fernando.leal@oracle.com
Data: Nov/2025
Objetivo: demonstrar casos de uso do Oracle AI Database 26ai
v1 - similaridade e rag para Manufatura - leal
SelectAI para pesquisas por texto:
begin
dbms_cloud_ai.create_profile(
profile_name => 'PROF_26AI_MANUF_V1',
attributes =>
'{"provider": "oci",
"credential_name": "OCI_CRED",
"oci_compartment_id": "ocid1.compartment.oc1..aaaaaaaaev2ipyek53f7sck5ibvtnqrp5w2k54qiuk2cikbfati5bk54yhka",
"region": "us-chicago-1",
"model": "meta.llama-4-maverick-17b-128e-instruct-fp8",
"oci_apiformat": "GENERIC",
"object_list": [
{"owner": "AICHAT1", "name":"TB_26AI_MANUFATURA_CATALOGO_TEXTO"}
],
"comments": true,
"annotations": true,
"temperature": 0.1
}'
);
end;
*/
messages CLOB;
v_vector clob;
p_prompt clob;
begin
SELECT json_value( fnc_26ai_embed_image_cohere(file_name, file_blob, p_credential , p_comp_id) , '$.embeddings[*].vector()')
INTO v_vector
from TB_26AI_MANUFATURA
where id = p_image_id;
for message_cursor in (
SELECT embed_data
FROM (
SELECT 'Part Number: ' || PART_NUMBER || ' Descrição: ' || DESCRIPTION || ' Categoria: ' || CATEGORY || ' SKU: ' || SKU embed_data
FROM TB_26AI_MANUFATURA_CATALOGO_TEXTO
)
ORDER BY VECTOR_DISTANCE( FNC_26AI_EMBED(embed_data,'COHERE') , v_vector , COSINE )
FETCH EXACT FIRST 5 ROWS ONLY
) loop
messages := messages || '"' || replace(replace(replace(replace(message_cursor.embed_data,chr(10),null),chr(13),null),'"',''),'''','') || '",' ;
END LOOP;
-- cuidado com temperatura usando "." ou ","
--execute immediate('alter session set nls_numeric_characters=''.,'' ');
-- sem re-rank (opcao de uso para refinar resultado)
p_prompt := ' A imagem fornecida tem associacao com descricoes, ou nomes do catalogo vetorizado. Identifique a maior semelhança.' ||
' A resposta deve ser objetiva, descervendo SKU, Part Number, Categoria e Descricao. Dados do catalogo de produtos: ' || messages;
return fnc_26ai_rag_manufatura(p_prompt ,p_credential, p_image_id, p_comp_id);
end;
/