DECLARE question_text STRING; SET question_text = '複数の配列を接続する'; WITH input_text_to_vector AS ( SELECT text_embedding FROM ML.GENERATE_TEXT_EMBEDDING( MODEL `sql_rag.embeding_model`, (SELECT question_text AS content), STRUCT(TRUE AS flatten_json_output) ) ) ,context AS ( SELECT text, ML.DISTANCE(text_embedding, e.embeding) as distance FROM input_text_to_vector CROSS JOIN (SELECT * FROM `sql_rag.embeding_text`) as e ORDER BY distance limit 3 ) ,rag_prompt AS ( SELECT CONCAT( 'コンテキストに示されている過去情報に従って質問に答えてください¥n’, '明らかに関係ないコンテキストは無視してください¥n’, '明らかに関係ないコンテキストは回答に含めないでください¥n’, 'できる限り最後まで言い切ってください¥n’, '質問の内容が複数のコンテキストに合致する場合分割して回答してください¥n¥n’, '回答はテキスト形式で回答してください。¥n’, '#質問¥n’, question_text, '¥n¥n’, '# コンテキスト情報¥n’, '・1行が1コンテキストになります¥n’, '------------------¥n’, STRING_AGG(text, '¥n’), '¥n------------------¥n’ ) AS content FROM context ) SELECT ml_generate_text_llm_result FROM ML.GENERATE_TEXT( MODEL `sql_rag.generate_text_model`, (SELECT content AS prompt FROM rag_prompt), STRUCT( 0.2 AS temperature, 1024 AS max_output_tokens, TRUE AS flatten_json_output));