implement game catalog vector MCP resolver

This commit is contained in:
devmrko
2026-07-27 13:54:49 +09:00
parent 9089897d88
commit 5d4af888f3
3 changed files with 78 additions and 3 deletions

View File

@@ -56,3 +56,25 @@ COMMENT ON TABLE sg_game_catalog IS
COMMENT ON COLUMN sg_game_catalog.embedding IS
'Vector representation of game names and aliases; populated by the configured embedding job.';
/
CREATE OR REPLACE FUNCTION sg_game_catalog_search(
p_question IN CLOB,
p_top_k IN PLS_INTEGER DEFAULT 5
) RETURN SYS_REFCURSOR AUTHID DEFINER IS
v_query VECTOR;
v_result SYS_REFCURSOR;
BEGIN
v_query := DBMS_VECTOR.UTL_TO_EMBEDDING(
p_question,
JSON(sg_qa_vector_params('search_query'))
);
OPEN v_result FOR
SELECT game_key, game_id, game_prefix, game_nm, game_alias_nm,
VECTOR_DISTANCE(embedding, v_query, COSINE) AS cosine_distance
FROM sg_game_catalog
WHERE active_yn = 'Y' AND embedding IS NOT NULL
ORDER BY VECTOR_DISTANCE(embedding, v_query, COSINE), priority, game_key
FETCH FIRST LEAST(GREATEST(NVL(p_top_k, 5), 1), 20) ROWS ONLY;
RETURN v_result;
END;
/