SnowflakeのCortex AIを使ってみた

## はじめに
SnowflakeのCortex AIを使ってみた記録です。

## 使ってみた関数
今回は新たに追加された5つの関数について、紹介していきます。
`COMPLETE`
`SUMMARIZE`
`TRANSLATE`
`SENTIMENT`
`EXTRACT_ANSWER`

<br>

### COMPLETE
ChatGPTのように結果を返してくれる関数で、使用したいモデルを指定することができます。
現在使用できるモデル言語は、以下の通りです
- mistral-large
- mixtral-8x7b
- llama2-chat-70b
- mistral-7b
- gemma-7b

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3958389/8e7dd316-c6e8-2622-018a-5547b50654dc.png)

<br>

ではさっそく、試してみましょう。
最初に`mistral-large`を選択して、Snowflakeについて質問をしてみました。
```ruby:title.rb
select SNOWFLAKE.CORTEX.COMPLETE('mistral-large','Snowflakeについて説明してください' );
```
出力結果は、以下の通りとなりました。
↓↓↓
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3958389/7c5a61fc-591f-d4cf-26d0-03bb3e4b9132.png)

<br>

ちなみに、`mistral-7b`を使って同様に質問をしたところ...
```ruby:title.rb
select SNOWFLAKE.CORTEX.COMPLETE('mistral-7b','Snowflakeについて説明してください' );
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3958389/7ca57c08-b2d5-c426-5ca0-3388bebeb671.png)
長文の英語で帰ってきましたが、内容は悪くありません。

<br>

### SUMMARIZE
入力したテキストの要約をしてくれます。
```ruby:title.rb
select snowflake.cortex.summarize(
    'It is fair to say that Timo Werner has not set the Premier League alight since he joined last January - but what do the numbers say?
    Well he has made 25 league appearances for Tottenham, scoring twice and picking up six assists for his club in that time.
    The league leaders since 14 January 2024 are Erling Haaland with 26 goals and Bukayo Saka and Cole Palmer with 13 assists apiece.
    Werner is not missing lots of chances though - he has had nine big chances in that time with an xG of 4.7.
    By way of comparison Haaland has had 50 big chances and his xG is 27.5.'
);
```
↓↓↓
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3958389/70d25a70-8393-63c2-64b1-01bd70299a6c.png)

<br>

対応言語は英語のみなので、日本語で入力すると英語で要約されるうえ、最初に入力した内容と一部違う内容で返してしまいます。
```ruby:title.rb
select snowflake.cortex.summarize(
    '25年シーズンのJ1開幕カードで、東京Vと来季J1に復帰する清水による名門対決が組まれることが11日、分かった。関係者によれば来年2月15日、対決の舞台は国立競技場になる見通しという。
　   開幕にふさわしい因縁の一戦となる。両チームは昨季J1昇格プレーオフ決勝で激突した。5万3264人観衆を集めた一戦は、土壇場の後半51分に東京Vが同点に追いつく激闘。シーズン成績上位の東京Vが16年ぶりのJ1復帰を決めた。
    一方の清水は勝利目前の失点で涙をのんだ。まさに天国と地獄を分けた90分。舞台も同じ国立となれば当然、当時の記憶がよみがえる。'
);
```
↓↓↓
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3958389/2e02532e-6980-d326-9b3c-6f330fca7121.png)

<br>


### EXTRACT_ANSWER
入力内容に対して質問を投げかけると、その回答とポジネガの判定結果を返します。
```ruby:title.rb
SELECT SNOWFLAKE.CORTEX.EXTRACT_ANSWER(
    'On February 11, it was learned that Tokyo V and Shimizu, which will return to J1 next season, will face off in the opening match of the 2013 J1 season. According to sources, the match will take place at the National Stadium on February 15, 2013.
　   The matchup will be a battle of foes, befitting of the seasons opening match. The two teams clashed in last seasons J1 promotion playoff final, which drew 53,264 spectators. Tokyo V, the seasons top-ranked team, decided to return to J1 for the first time in 16 years.
    Shimizu, on the other hand, was brought to tears by a goal conceded just before the victory. The 90 minutes were the difference between heaven and hell. The same national stadium as the game naturally brought back memories of that time.',
    'Which teams are featured?'
);
```
↓↓↓
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3958389/9851de90-1ad1-9463-000c-da7b01bf116a.png)

<br>

なお、英語で入力しないと正しい回答をしてくれませんでした。
```ruby:title.rb
SELECT SNOWFLAKE.CORTEX.EXTRACT_ANSWER(
    '25年シーズンのJ1開幕カードで、東京Vと来季J1に復帰する清水による名門対決が組まれることが11日、分かった。関係者によれば来年2月15日、対決の舞台は国立競技場になる見通しという。
　   開幕にふさわしい因縁の一戦となる。両チームは昨季J1昇格プレーオフ決勝で激突した。5万3264人観衆を集めた一戦は、土壇場の後半51分に東京Vが同点に追いつく激闘。シーズン成績上位の東京Vが16年ぶりのJ1復帰を決めた。
    一方の清水は勝利目前の失点で涙をのんだ。まさに天国と地獄を分けた90分。舞台も同じ国立となれば当然、当時の記憶がよみがえる。',
    'Which teams are featured?'
);
```
↓↓↓
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3958389/4a74b32b-7f98-cda1-88b0-54468ca2a4b4.png)



## 最後に
今回はSnowflakeに導入された5つの関数を使ってみました。
今後も、新たなAI機能が搭載されるのが楽しみですね。