sattoでナレッジ管理・共有を快適にする方法

# はじめに
こんにちは！理久と申します！
普段は株式会社ピネアルでDifyなどを使った生成AIツールの開発をしたり、Xやnoteで生成AIに関する情報発信をしています！
X: [https://x.com/rik423__ai](https://x.com/rik423__ai)
note: [https://note.com/riku0423/](https://note.com/riku0423/)


今回は、公式エバンジェリストを務めるソフトバンク発の生成AIエージェント『satto』について記事を書きたいと思います！

## sattoとは

ソフトバンクが開発した生成AIエージェント「satto」は、“いつでもあなたをサッと助けてくれる存在”を目指して開発されている生成AIエージェントサービスです。フリーランスや会社員、学生など「生成AIをもっと効果的に活用したいがうまく使いこなせない」と感じているさまざまな現場のユーザーが、シンプルな操作だけで業務を簡単に実行するためのパートナーとして設計されています。

### sattoの主な特徴

- **プロンプト不要**: ユーザーは複雑なプロンプトを入力することなく、生成AIを利用できます。これにより、AIの利用がより直感的になります

- **カスタムスキルの構築**: 様々なアプリケーションと連携し、自分好みのスキルを作成することが可能です。作成したスキルは他のユーザーと共有でき、コミュニティ全体での知識の蓄積が促進されます

- **ワークフロービルダー機能**: ユーザー自身が業務フローを設計できる機能があり、個々のニーズに合わせた最適なワークフローを構築できます

- **自動化のサポート**: 大規模言語モデル（LLM）やSaaSサービスと連携し、一連の業務プロセスをスムーズに自動化します。これにより、業務の効率化が期待されます

## 公式エバンジェリストのsatto活用法
今回は私が一番使っているsattoスキルを紹介します！

ズバリ！

**情報管理をsatto終わらせるスキル**

です！

参考：
https://x.com/rik423__ai/status/1861217072782680140


機能としては、

サイトURLを入力→スクレイピングしてサイト情報を取得→本文要約、ページタイトル生成→（タグ生成）→Notionのページとして出力

という感じです！
「気になったサイトあるけど今は時間ないなぁ、、、ブックマークしとこう！」と思って、そのままになってるみたいな経験、誰しもあると思います。このスキルを使えば、ワンクリックでURL保存〜サイト要約までできるようになるので、情報を見逃したりすることは減ると思います！

今回はこのスキルの作り方を紹介しようと思います！


## 必要なもの
- satto
- Notion APIキー
    - https://programming-zero.net/notion-api-setting/
- jinaAI APIキー
    - https://jina.ai/

です！

## 実装してみよう！

### スクレイピングでサイト情報を取得しよう
![スクリーンショット 2024-12-01 20.09.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3892456/9fe4f420-5bcf-4bb4-e34e-fca344cb2e22.png)

まずはjinaAIをセッティングして、サイトをスクレイピングして情報を取得します。

URL
```
https://r.jina.ai/{{CONTEXT.TEXT}}
```

Header
```
{"Authorization":"Bearer jina_API_KEY"}
```

APIキーは自分のものに書き換えてください。

これで、sattoスキルを使用するときに選択したURLのサイト情報を取得することができます。

### サイトを要約・タイトルを作成しよう

![スクリーンショット 2024-12-01 20.13.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3892456/3078a76b-7573-bac3-7674-23afa0121684.png)

サイト情報の要約と、ページのタイトルを生成します。タイトルは、一言でサイトの概要が掴めるようなものを生成するようにしています。
プロンプト
```
<prompt>

<task>

ユーザーの入力した内容<context>を要約してください。サイトに記載されている情報の要点を押さえて、要約だけでサイトにどんな情報が記載されているのか分かるようにしてください。

</task>

<output>

150字以内で出力してください。

</output>

<context>

前のブロック（Jina）の結果

</context>

</prompt>
```

```
<prompt>

<task>

ユーザーの入力した内容<context>の内容を端的に表すタイトルを考えてください。そのタイトルだけでどんなサイトなのか分かるようなものにしてください。

</task>

<output>

３０字以内で出力してください。

</output>

<context>

前のブロック（Jina）の結果

</context>

</prompt>
```

### 様々な情報を出力させて自分好みのDBにしよう

2,3個目のブロックだけでも情報をまとめてくれるので、十分便利です。けれど、Notionにはタグなど、データを管理するための仕組みが他にもあります。今回はタグをつけるように出力を設定しています。これ以降は自分のDBに合わせてデータを出力させましょう！

![スクリーンショット 2024-12-01 20.18.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3892456/b6e80737-8905-85e7-aa51-07df35ddf703.png)

JSON modeにすると、無駄な出力なく、特定のデータだけを出力させることができるので、今回のように一語だけ出力させたい時などに便利です！

![スクリーンショット 2024-12-01 20.18.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3892456/c593899a-3416-aaf3-d6c0-f9ee96f398b3.png)


## Notionにデータを送信する
![スクリーンショット 2024-12-01 20.20.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3892456/501882dd-d180-8d58-55e4-6bb9d29813f0.png)

必要な情報をすべて出力できたら、それをNotion APIを使って送信します。
URL
```
https://api.notion.com/v1/pages
```
Header
```
{"Authorization":"Bearer Notion_API_KEY","Content-Type":"application/json","Notion-Version":"2022-06-28"}
```
Body
```
{ "parent": { "database_id": "DB_ID" }, "properties":{"Title":{"title":[{"text":{"content":"{{01JBR4DBB8C1YARGZH3WE9NDAA.output}}"}}]},"URL":{"url":"{{CONTEXT.TEXT}}"},"Summary":{"rich_text":[{"text":{"content":"{{01JBR43XTEVA7GW1A6JX3RJT63.output}}"}}]},"Tag":{"multi_select":[{"name":"{{01JBRCHJVP0RAHYM9HM2VQY9GX.01JBRCP91DK8EATKT2BG9GZ2GK}}"},{"name":"{{01JBRCHJVP0RAHYM9HM2VQY9GX.01JBRCPGTYKJR915WDWFV1ANZR}}"},{"name":"{{01JBRCHJVP0RAHYM9HM2VQY9GX.01JBRCXTWQJ4A2HGN9Z8G5Z70R}}"}]}}}
```

Bodyは自身の出力に合わせて変更してください！NotionDB_IDは、URLの、notion.so/○○?v=の○○の部分です。

```
https://www.notion.so/{{DB_ID}}?v=
```

## +α 出力を調整しよう

このままでは、最終的な出力はNotionのデータ送信結果など、ぱっと見何のデータか分からないものが表示されてしまうので、分かりやすく追加したページのURLをLLMで抽出→チャット画面に表示するようにしましょう！

![スクリーンショット 2024-12-01 20.25.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3892456/f98ff3c2-d5d6-9c30-9ad0-b0f6fdd7cd98.png)


これで完成です！皆さんのsattoでも動いたでしょうか？自分のナレッジ管理に使用したり、社内の共有ページで他の人との知識共有に使用したりと、様々な場面で活躍するスキルだと思います！ぜひ使ってみてください！

---
## 最後に
ここまで読んでくださりありがとうございました！sattoの便利さ、伝わったでしょうか？
こんな便利な連携ができるというより、ちょっとした不便を解決することができるツールを自分で作ることができる点が何よりの魅力だと思います。sattoは誰もがAIを使いこなして自分の仕事をちょっとでも楽にするための第一歩となるツールになると信じています！

皆さんも、自分が欲しいsattoスキルを作成して、自分の生活・業務をsatto快適にしましょう！