【Qiita初】miibo Dify Cozeの次はGumloop🌀??

:::note
[Gumloop](https://www.gumloop.com/)のハンズオンは[★ワークフローの作成手順](https://qiita.com/vanchan2625/items/6bf146395014a6548445#%E3%83%AF%E3%83%BC%E3%82%AF%E3%83%95%E3%83%AD%E3%83%BC%E3%81%AE%E4%BD%9C%E6%88%90%E6%89%8B%E9%A0%86)の章からになります。
:::

## Gumloop🌀とは

**[Gumloop](https://www.gumloop.com/)** とはワークフローにAI機能を組み込むことができ、業務プロセスの自動化や効率化を図ることができるサービスです。
ZapierやMake、Difyなどが類似サービスになるかと思います。

<img width="70%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3597730/085e3cfa-8291-e5b5-e8db-1e184ab7cc9d.jpeg">

最近はmiibo、Dify、Cozeなどが話題の中心になることが多いですが、今回はまだ注目をされていない **[Gumloop](https://www.gumloop.com/)** を使って株式市場分析ツールを作りたいと考えました。

**[Gumloop](https://www.gumloop.com/)**  の何がいいかというと[テンプレート](https://www.gumloop.com/templates)が豊富なところかと考えます。

<img width="70%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3597730/5035e5e7-0a73-c022-854b-d004d787283c.jpeg">

サイトのUIは日本語に対応していませんが、テンプレートを参考にすることで直感的にワークフローを作成することができます。

## ★ワークフローの作成手順
### 完成イメージ
<font color="red">今回はハンズオンとして、**現在の株式市場を分析してくれるツール**を作成します。</font>

<details><summary><strong>今回のプロダクトを作製した経緯</strong></summary>

## 最近の株式市場
8月5日の日本株式市場は、1987年のブラックマンデーを超える過去最大の下げ幅を記録しました。
一方で翌日、8月6日は大幅に反発し、過去最大の上げ幅を記録して取引を終えました。

<img width="70%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3597730/61e4e4a0-0b83-d5b7-9af8-e85922299491.jpeg">

でも、投資素人の私からしたらこの状況が良いのか悪いのかよく分かりません。

## 投資の玄人集団？「WSB」
アメリカで非常に人気のある[Reddit](https://www.reddit.com/)という投稿型ソーシャルニュースサイトがあります。
日本でいう2ch（現・5ch）に近いサイトです。

そのサイトのなかに[wallstreetbets](https://www.reddit.com/r/wallstreetbets/)（通称WSB）というコミュニティが存在します。

<img width="70%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3597730/f876e497-8f83-60aa-9da7-56c244ebdd0c.jpeg">

WSBは、特に若いリテール投資家の間で人気があり、多くの注目を集め続けているそうです。
過去にはヘッジファンドに大きな損失を与えたことがあるほど（詳しくは[参考記事](https://qiita.com/vanchan2625/items/6bf146395014a6548445#%E5%8F%82%E8%80%83%E8%A8%98%E4%BA%8B)参照）非常に大きい影響力を持っています。

そこで、**この混沌とした株式市場のWSBの見解を知りたい！** と思いました。

## 問題点
しかし、サイトは英語で読みづらく、1つ1つの投稿を追っていくのも大変です。
そもそも知識が少ないため、投稿を正しく理解できる自信もありません。

そこで、**WSBの投稿を要約して現在の株式市場を分析してくれるツール** があればいいのにと思いました。

</details>


画像が2枚に分かれています。
<img width="100%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3597730/ba6c121e-a3c9-b59e-8f3f-8cbde82aac8f.jpeg">

<img width="70%" src="https://storage.googleapis.com/zenn-user-upload/f7550e72394f-20240807.jpg">

### 準備編
**ここからはハンズオン的に手順を説明していくので、やってみたい方は本記事と [Gumloop](https://www.gumloop.com/)の画面を見比べながら進めていってください。**

<details><summary>①トップメニューの右上から`Start For Free`を選択します。</summary>

[トップメニュー](https://www.gumloop.com/)の右上から`Start For Free`を選択します。
<img width="70%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3597730/d11bbc46-0233-39c9-22f3-d800cfad586e.jpeg">
</details>

<details><summary>②`Hub`の画面にきたら右上から`Sign In`を選択します。</summary>
<img width="70%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3597730/4a9e52e0-3a6d-d932-aedb-e16bb9296223.jpeg">
</details>

<details><summary>③サインインの画面がでてきたら下の`Create an account`を選択します。</summary>
<img width="50%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3597730/a1562451-dbdc-9a49-3c4b-f9bb92b7c5e1.jpeg">
</details>

<details><summary>④EmailかGoogleアカウントかGitHubアカウントでGumloopのアカウントを作成することができます。</summary>
<img width="50%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3597730/25d52768-da21-34bb-87d8-8093067f4596.jpeg">
</details>

<details><summary>⑤アカウントが作成できたら、再度`Hub`のページの中段右上から`+ New Flow`を選択します。</summary>
<img width="70%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3597730/18166efb-37da-862f-9d8b-4e134a6160b3.jpeg">
</details>

<details><summary>⑥まっさらなページが表示されます。</summary>
<img width="70%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3597730/eb918da1-3e2a-f9d4-2e50-532b161a2409.jpeg">
</details>

### 実装編
<details><summary>①画面中央の`Add Your First Node`を選択します。</summary>
<img width="70%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3597730/aa8a29a4-4a71-0229-e7d9-b3b467052101.jpeg">

左に`Node Library`のメニューが表示されます。
<img width="70%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3597730/9ef4cde0-2b4b-4f20-4261-91c2a9e42078.jpeg">
</details>

<details><summary>②入力ブロックを配置するために`input`と検索をし`Inputブロック`選択します。</summary>
**株式（市場）名を入力するために使用します。**

以降、ブロックを追加する際は、同様に検索をして選択をし、配置していきます。
<img width="50%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3597730/c13cc73a-ecc4-f2cf-2c77-10bc16628f75.jpeg">

Inputブロックが配置されます。
<img width="70%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3597730/ff655f53-30d9-2d02-bde3-7104516ffd87.jpeg">
</details>

<details><summary>③次に`Reddit Scraperブロック`を配置します。</summary>
**入力ブロックで入力した株式（市場）の情報をwallstreetbets内で検索して抽出するために使用します。**
<img width="70%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3597730/fa8b488b-5daa-33b2-31d3-3e11f01fc1d9.jpeg">

* 入力ブロックの`output`をReddit Scraperブロックの`query`にドラッグアンドドロップで接続します。
* Reddit Scraperブロックの`subreddit`に`wallstreetbets`と入力します。
* 他のパラメータはデフォルトのままで問題ありません。
</details>

<details><summary>④次に`join List itemsブロック`を配置します。</summary>
**Reddit Scraperブロックで出力した情報をリストからテキストに変換するために使用します。**
<img width="70%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3597730/ea74d8ca-8551-ca5c-191f-5ed6d1eea5e7.jpeg">

* Reddit Scraperブロックの`post contents`をJoin List itemsブロックの`list`にドラッグアンドドロップで接続します。
* `Join by Newline`はチェックを入れておきます。

:::note warn
`Reddit Scraperブロック`と`Join List itemsブロック`が接続できない場合があります。その場合は、一旦右上の`▶Run`をすることで接続ができるようになります。
<img width="70%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3597730/06d87877-6d9b-a678-d63d-47d0226f5351.jpeg">
:::
</details>

<details><summary>⑤次に`Combine Textブロック`を配置します。</summary>
**入力ブロックで入力した株式（市場）名とReddit Scraperブロックで出力した情報を使用してLLMで分析させるためのプロンプトを作成するために使用します。**
<img width="70%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3597730/b7d24c7a-4738-77be-82ba-a6cc4e4c9331.jpeg">

Combine Textブロックの`format`に以下のプロンプトを入力します。
```:原文プロンプト
## Instructions
You are a top stock trader.
Follow the steps below.
Failure to follow these steps will result in a $1 million fine.

* Read Reddit posts and do sentiment analysis. Don't categorize by post, but make a holistic judgment based on overall sentiment.

* When outputting, first state your conclusion: There is a XX% chance of buying (selling) Input1. Then explain why on a new line.

* Related Reddit posts:Input2

* Don't use Markdown.
```

```:日本語訳
## 手順
あなたはトップクラスの株式トレーダーです。
以下の手順に従ってください。
これらの手順に従わない場合は、100 万ドルの罰金が科せられます。

* Reddit の投稿を読んで感情分析を行ってください。投稿ごとに分類するのではなく、全体的な感情に基づいて総合的な判断を下してください。

* 出力するときは、まず結論を述べます。Input1を購入 (販売) の可能性は XX% です。次に、新しい行でその理由を説明します。

* 関連する Reddit の投稿: Input2

* Markdown を使用しないでください。
```

:::note warn
以下のGIFのように`Input1`と`Input2`はドラッグアンドドロップで置き換えてください。
:::
<img width="100%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3597730/8097f215-c15d-82d2-7a7a-1a3d543bd552.gif">

* Inputブロックの`output`をCombine Textブロックの`input1`にドラッグアンドドロップで接続します。
* Join List itemsブロックの`joined text`をCombine Textブロックの`input2`にドラッグアンドドロップで接続します。
</details>

<details><summary>⑥次に`Ask AIブロック`を配置します。</summary>
**Combine Textブロックで作成したプロンプトを入力して株式（市場）の分析を行うのに使用します。**
<img width="70%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3597730/5d3b0e0a-23bf-f0d1-f60d-573a91836008.jpeg">

* Combine textブロックの`combined text`をAsk AIブロックの`prompt`にドラッグアンドドロップで接続します。
* Ask AIブロックの`Show extra settings`を選択して`model preference`からLLMのモデルを選択します。

:::note warn
`GPT-4o`と`Claude 3.5 Sonnet`はAdvanced AI Modelsに分類されるので**20クレジット**を消費します。
他のLLMモデルは**2クレジット**なので求められる精度によってモデルの選択が必要です。

今回は7/18に発表されたばかりの`GPT-4o mini`も搭載されていたので、`GPT-4o mini`を選択しました。
:::

* 他のパラメータはデフォルトのままで問題ありません。
</details>

<details><summary>⑦次に`Translateブロック`を配置します。</summary>
**Ask AIブロックで生成した回答を英語から日本語に翻訳するのに使用します。**
<img width="70%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3597730/23ee03f5-b522-6a6f-8965-8e6b21967e82.jpeg">
* Ask AIブロックの`response`をTranslateブロックの`text`にドラッグアンドドロップで接続します。
* Translateブロックの`Input language`を`English`、`Output Language`を`Japanese`に選択します。
</details>

<details><summary>⑧最後に`Outputブロック`を配置します。</summary>
**Translateブロックで翻訳した内容を出力するのに使用します。**
<img width="70%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3597730/23ee03f5-b522-6a6f-8965-8e6b21967e82.jpeg">

* Translateブロックの`translated text`をOutputブロックの`output`にドラッグアンドドロップで接続します。
* パラメータはデフォルトのままで問題ありません。
</details>

## 動作確認
Inputブロックの`default value`に知りたい株式（市場）を入力します。
今回は、`TOPIX`（東証株価指数）について知りたいので`TOPIX`と入力します。
そして、右上のRunを選択します。
<img width="70%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3597730/5e654125-168b-6d1e-a3c9-0751ad1557a8.jpeg">

右側に各ブロックの結果が表示されているので`Outputブロックの`詳細を確認します。
分析結果が出力されています。
<img width="50%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3597730/0fbf6230-78c5-8266-0e93-1adff3f8b82c.jpeg">

https://x.com/vanchan2625/status/1821095881732714725

## Gumloopの使用感
テンプレートが豊富で直感的にワークフローが作成できる点がメリットなものの、Freeプランでは**月間1000クレジット**しか使用することができません。
その次のプランが**月額$97**になるので手を出すのをためらってしまいます。

<img width="70%" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3597730/0777312e-a5e5-caed-69c0-dd5a8f1e5a0f.jpeg">

また、ワークフローのAPIを発行するのには現状、**月額$297**のProプランに加入する必要があります。
なかなか渋い料金設定ですね。

この点が他のツールと差がなくなってくれば普及が進んでいくかもしれません。

連携できるサービスも正直他のツールで事足りるかなという印象でしたが、Outputとして`SMS通知`ができる機能がありました。

今後何かに使えないかアンテナを立てていきたいです。

## 参考記事

https://note.com/goshenite_gn/n/n9c49a33a901a

## これまで作製したプロダクトのご紹介
https://qiita.com/vanchan2625/items/18791b8873c94dee139a

https://qiita.com/vanchan2625/items/20e246d91ae9cd71273c

https://qiita.com/vanchan2625/items/3d49e33ce0815369debf