2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OCI Autonomous Database Select AI検証(日本語で質問)

Last updated at Posted at 2024-08-27

概要

OCI Autonomous Database Select AI検証を行った当時のLLMは英語のみでしたが、日本語を含む多言語LLMに対応しましたので検証を行いました。

今回は、OCI Autonomous Database Select AI検証の検証2についてLLMを変えて検証しました。
前回からの変更点は以下の通りです。

  • SelectAIのAIプロファイルをCohere Command R+に変更
  • 検索精度を上げるためカラムのコメント情報に日本語を追加
  • 日本語で質問を実施

参考:
Oracle Cloud Infrastructureドキュメント Select AIの使用例
Oracle Cloud Infrastructureドキュメント DBMS_CLOUD_AIパッケージ

Select AI検証

OCI Autonomous Database Select AI検証の検証2の差分について記述します。

サンプルデータ準備

前回と同じです。

SelectAIを行うための設定

日本語が表示できるSQLクライアントからADBに接続します。

クレデンシャル(genai_cred.sql)は前回と同じです。

genai_cred.sql
BEGIN
     DBMS_CLOUD.CREATE_CREDENTIAL(
             credential_name => 'GENAI_CRED',
             user_ocid       => 'ocid1.user.oc1..',
             tenancy_ocid    => 'ocid1.tenancy.oc1..',
             private_key     => '-----BEGIN PRIVATE KEY-----
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwaaSiAgEAAoIBAQDhxvD/oKFor6h5
:
SAA6TtWn9AD1zRu5raux/w==
-----END PRIVATE KEY-----',
             fingerprint     => '49:82:………3s:fb:8e'
         );
     END;
/

AIプロファイルはLLMにCohere Command R+を指定します。

aiprofile_command_r_plus.sql
BEGIN
  DBMS_CLOUD_AI.CREATE_PROFILE(
      profile_name => 'OCI_COHERE_COMMAND_R_PLUS',
      attributes   => '{"provider": "oci",
                        "credential_name": "GENAI_CRED",
                        "comments":"true",
                        "object_list": [
                               {"owner": "ADMIN", "name": "MEMBER_PROFILE"},
                               {"owner": "ADMIN", "name": "MEMBER_USAGE"}
                       ],
                        "model": "cohere.command-r-plus"
                       }');
END;
/
[user@linux] $ sqlplus admin/【パスワード】@genaidemo_low

SQL> @genai_cred

PL/SQLプロシージャが正常に完了しました。

SQL> @aiprofile_command_r_plus

PL/SQLプロシージャが正常に完了しました。

検索精度を上げるためにカラムへコメントを追加します。

COMMENT ON TABLE ADMIN.MEMBER_PROFILE IS 'メンバープロファイル';
COMMENT ON COLUMN ADMIN.MEMBER_PROFILE.MEMBER_ID IS 'メンバーID';
COMMENT ON COLUMN ADMIN.MEMBER_PROFILE.LAST_NAME_JP IS '漢字名前';
COMMENT ON COLUMN ADMIN.MEMBER_PROFILE.LAST_NAME IS 'ローマ字名前';
COMMENT ON COLUMN ADMIN.MEMBER_PROFILE.MAIL_ID IS 'メールアドレス';

COMMENT ON TABLE ADMIN.MEMBER_USAGE IS 'メンバー使用量';
COMMENT ON COLUMN ADMIN.MEMBER_USAGE.MEMBER_ID IS 'メンバーID';
COMMENT ON COLUMN ADMIN.MEMBER_USAGE.USAGE IS '使用量';

SelectAI実施

usage合計が50000を超えるユーザー情報を抽出しました。

SQL> EXEC DBMS_CLOUD_AI.SET_PROFILE('OCI_COHERE_COMMAND_R_PLUS');

PL/SQLプロシージャが正常に完了しました。

SQL> SELECT AI 合計使用量が50,000を超えるメンバーの名前、メールアドレスと合計使用量を教えて;

名前       メールアドレス             合計使用量
---------- ------------------------- -----------
shimizu    shimizu@example.com             59169
kobayashi  kobayashi@example.com           57460
tanaka     tanaka@example.com              59261
nakamura   nakamura@example.com            58101
matsumoto  matsumoto@example.com           61715
yamaguchi  yamaguchi@example.com           58876
yamada     yamada@example.com              56477
yoshida    yoshida@example.com             59913
hayashi    hayashi@example.com            123701
kimura     kimura@example.com              57349
takahashi  takahashi@example.com           60071

11行が選択されました。

SQL> SELECT AI SHOWSQL 合計使用量が50,000を超えるメンバーの名前、メールアドレスと合計使用量を教えて;

RESPONSE
--------------------------------------------------------------------------------
SELECT a."LAST_NAME" 名前, a."MAIL_ID" メールアドレス, SUM(b."USAGE") 合計使用量

FROM "ADMIN"."MEMBER_PROFILE" a
JOIN "ADMIN"."MEMBER_USAGE" b ON a."MEMBER_ID" = b."MEMBER_ID"
GROUP BY a."LAST_NAME", a."MAIL_ID"
HAVING SUM(b."USAGE") > 50000

抽出したデータを昇順に並べることも可能です。

SQL> SELECT AI 合計使用量が50,000を超えるメンバーの名前、メールアドレスと合計使用量を教えて。合計使用量の多い順に並べて;

メンバー名 メールアドレス             合計使用量
---------- ------------------------- -----------
hayashi    hayashi@example.com            123701
matsumoto  matsumoto@example.com           61715
takahashi  takahashi@example.com           60071
yoshida    yoshida@example.com             59913
tanaka     tanaka@example.com              59261
shimizu    shimizu@example.com             59169
yamaguchi  yamaguchi@example.com           58876
nakamura   nakamura@example.com            58101
kobayashi  kobayashi@example.com           57460
kimura     kimura@example.com              57349
yamada     yamada@example.com              56477

11行が選択されました。

SQL>
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?