本記事は、AI関数サービスを初めて利用するユーザーを対象としており、最小限の手順でモデルの登録と最初のサンプルの実行を完了し、プロセスを迅速にスムーズに進めることができます。
前提条件
- OceanBaseクラスタがデプロイ済みでMySQLテナントが作成されており、データベースに接続されていること。
- AI関数に関連する権限が付与されていること。AI関数サービスの権限を参照してください。
クイックスタート
ステップ1:モデルとエンドポイントの登録
初回使用前に、AIモデルとそのアクセスエンドポイントを登録する必要があります。AIモデルの登録で提供されているテンプレートを参考に、該当するAIモデルベンダーの例をコピーし、API Keyを実際のAPI Keyに置き換えて実行します。以下は、AI_COMPLETE感情分析モデル(Alibaba Cloud、OpenAI形式互換)の登録例です:
CALL DBMS.AI_SERVICE.DROP_AI_MODEL ('ob_complete');
CALL DBMS_AI_SERVICE.DROP_AI_MODEL_ENDPOINT ('ob_complete_endpoint');
CALL DBMS_AI_SERVICE.CREATE_AI_MODEL(
'ob_complete', '{
"type": "completion",
"model_name": "THUDM/GLM-4-9B-0414"
}');
CALL DBMS_AI_SERVICE.CREATE_AI_MODEL_ENDPOINT (
'ob_complete_endpoint', '{
"ai_model_name": "ob_complete",
"url": "https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions",
-- 実際のaccess_keyに置き換える必要があります
"access_key": "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxx",
"provider": "aliyun-openAI"
}};
ステップ2:サンプルの実行
ここでは、AI_COMPLETE感情分析モデルを使用して、テキストの感情判断を行う例を示します:
SELECT AI_COMPLETE("ob_complete", "あなたのタスクは、提供されたテキストに対して感情分析を行い、その感情の傾向がポジティブかネガティブかを判断することです。
以下が分析対象のテキストです:
<text>
今日は本当にいい天気だね
</text>
判断基準は以下の通りです:
テキストがポジティブな感情を表現している場合は1を出力し、ネガティブな感情を表現している場合は-1を出力します。他のものは出力しないでください。") AS sentiment;
期待される戻り値では、sentiment が 1 の場合、ポジティブな感情を示します。
ステップ3:総合的なアプリケーション(オプション)
3つのAI関数を組み合わせて使用し、3ステップで簡単なインテリジェントQ&Aシステムを構築します。
すべての必要なモデルとエンドポイントを登録する(省略可能)
この例では、埋め込みモデル、テキスト生成モデル、および再順序付けモデルを同時に使用する必要があります。対応するモデルとエンドポイントが登録済みであることを確認してください。詳細については、ステップ1を参照してください。
説明
前のステップで対応するモデルを既に登録済みの場合は、該当する登録手順をスキップし、次のステップに直接進んでください。
データを準備し、ベクトルを生成する
CREATE TABLE knowledge_base ( id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255), content TEXT, embedding TEXT ); INSERT INTO knowledge_base (title, content) VALUES ('OceanBase 简介', 'OceanBaseは強力なデータベースシステムで、ベクトル検索とAI関数をサポートしています。'), ('ベクトル検索', 'ベクトル検索はセマンティック検索に使用され、類似したコンテンツを見つけることができます。'), ('AI関数', 'AI関数はSQL内で直接AIモデルを呼び出すことができます。'); UPDATE knowledge_base SET embedding = AI_EMBED("ob_embed", content);ベクトル検索と再順序付け
SET @query = "ベクトル検索とは何ですか?"; SET @query_vector = AI_EMBED("ob_embed", @query); -- 文書リストを文字列配列形式で直接構築する SET @candidate_docs = '["OceanBaseは強力なデータベースシステムであり、ベクトル検索とAI関数をサポートしています。", "ベクトル検索は意味検索に使用され、類似したコンテンツを見つけることができます。"]'; SELECT AI_RERANK("ob_rerank", @query, @candidate_docs) AS ranked_results;実行結果は次のとおりです。
indexは文書のインデックス、relevance_scoreは関連性スコアです:+-------------------------------------------------------------------------------------------------------------+ | ranked_results | +-------------------------------------------------------------------------------------------------------------+ | [{"index": 1, "relevance_score": 0.9904329776763916}, {"index": 0, "relevance_score": 0.16993996500968933}] | +-------------------------------------------------------------------------------------------------------------+ 1 row in set答案の生成
最初のステップでの質問検索と2番目のステップでの再ランキングの結果に基づいて、答案を生成します:
SELECT AI_COMPLETE("ob_complete", CONCAT('以下の文書内容に基づいて、ユーザーの質問に答えてください。ユーザーの質問:', @query, ' 関連文書:', CAST(JSON_EXTRACT(@candidate_docs, '$[1]') AS CHAR), ' 上記の文書内容に基づいて、簡潔かつ正確にユーザーの質問に答えてください。')) AS answer;実行結果は次のとおりです:
+--------------------------------------------------------------------------------------------------------------------------------------------+ | answer | +--------------------------------------------------------------------------------------------------------------------------------------------+ | 提供された文書内容によると、ベクトル検索は意味検索の技術であり、ベクトルデータを比較することで類似したコンテンツを見つけることを目的としています。 | +--------------------------------------------------------------------------------------------------------------------------------------------+ 1 row in setこれら3つのステップにより、OceanBaseデータベース内でベクトル化、検索、再ランキング、答案生成という完全なAIアプリケーションプロセスを迅速に実行できます。
関連ドキュメント
- AIモデルの登録:モデルとエンドポイントを登録するための完全なコマンド。
- AI関数の構文と例:各関数の構文、パラメータ表、その他の例を含むリファレンスドキュメント。
- AI関数サービスの権限:権限の付与と回収。