Upload files to "/"
This commit is contained in:
73
fnc_26ai_manufatura.sql
Normal file
73
fnc_26ai_manufatura.sql
Normal 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;
|
||||
/
|
||||
Reference in New Issue
Block a user