implement game catalog vector MCP resolver
This commit is contained in:
@@ -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;
|
||||
/
|
||||
|
||||
Reference in New Issue
Block a user