1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Snowflake Cortex LLM Functionsをテーブル内のフィールドを引数にして呼び出す

Posted at

Snowflake Cortex LLM Functionsとは

Snowflake Cortex LLM FunctionsはSQLでLLMを呼び出すことができる1Snowflake独自の関数です。

シンプルな呼び出し

SELECT SNOWFLAKE.CORTEX.COMPLETE('snowflake-arctic', 'こんにちは');

simple

テーブル内のフィールドを引数にした呼び出し

SQLからは単純に関数として扱えるので、当然、テーブルに対するSELECT文の中に入れ込むこともできます。

SELECT SNOWFLAKE.CORTEX.COMPLETE('snowflake-arctic', 'こんにちは') FROM SOME_TABLE LIMIT 10;

まったく意味のないSQLですが、LLMが行数と同じ回数だけ呼び出されました。

ten-times

CONCAT関数を使うことで文字列を結合することができます。これを使ってフィールドを結合したプロンプトを各行ごとに組み立てることで、意味のある処理が実現できます。
以下のSQLはお店の店名からそのジャンルを分類しようという試みです。

-- Snowflake Cortexでテーブルの各行に対してLLMを呼び出す
-- https://docs.snowflake.com/en/sql-reference/functions/complete-snowflake-cortex#responses-from-table-column
SELECT
    STORE_NAME,
    SNOWFLAKE.CORTEX.COMPLETE(
        'snowflake-arctic',
        CONCAT('nameタグで囲まれた文字列は飲食店の店名です。この店名が本格イタリアンであると推定されるときは1、そうでなければ0を出力してください。: <name>', STORE_NAME, '</name>')
    ) AS RESPONSE
FROM SHIBUYA LIMIT 500;

精度については検討の余地がありますが、それらしく動くことが確認できました!

classify

なお、LLMなので想定と異なる出力をしてくれることもあります。後処理が大事。

error

  1. Snowparkと呼ばれるPythonライブラリから呼び出すことも可能

1
2
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
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?