AIチャット
概要
StarnionのAIチャットは、LangGraphベースのエージェントと自然言語で会話できるコア機能です。単純な質問応答にとどまらず、家計管理、スケジュール管理、ドキュメント分析、画像生成、天気確認など、幅広いスキルをチャットメッセージひとつで呼び出すことができます。
エージェントはスレッド内で会話のコンテキストを保持し、以前の発言を記憶しているため、「もう一度説明して」「今言った金額で記録して」といったフォローアップ質問にも自然に対応できます。マルチモーダル入力(画像・ドキュメント・音声)もサポートしており、ファイルを添付するとAIが内容を分析・解説します。
チャットチャンネルの比較
Starnionには2つのチャットチャンネルがあります。
| 項目 | Web UI | Telegram |
|---|---|---|
| アクセス方法 | ブラウザで直接利用 | TelegramアプリでBotにチャット |
| ファイル添付 | ドラッグ&ドロップ、クリップボード貼り付け | Telegramのファイル添付機能を使用 |
| 会話管理 | 会話リスト、名前変更、検索 | 単一スレッド(チャンネルごと) |
| ストリーミング応答 | リアルタイムのタイピングエフェクト | 受信後に一括表示 |
| オフライン対応 | なし(ブラウザが必要) | Telegramアプリの通知に対応 |
| 推奨用途 | 長文ドキュメント作業、ファイル分析 | 外出先での素早い確認、通知受信 |
基本的な使い方
最初の会話を始める
Web UIで新しい会話を始めるには:
- 左サイドバーの 「+ 新しいチャット」 ボタンをクリックします。
- チャット入力欄にメッセージを入力し、Enterキーまたは送信ボタンを押します。
- AIの応答がリアルタイムストリームで表示されます。
最初のメッセージを送ると、会話のタイトルが自動生成されます。例えば「今日のランチは何にすればいい?」と聞くと「ランチのおすすめ」のようなタイトルが付きます。
ユーザー: こんにちは!今日の天気はどうですか?
AI: こんにちは!東京の現在の天気を確認します。
🔧 `weather` を実行中...
東京の現在の天気は晴れ、18°Cです。
大気質(PM2.5)は普通レベルです。
会話を続ける
既存の会話を選ぶと、以前のコンテキストが復元されます。同じスレッド内での発言はすべてAIが記憶しているため、「もう一度説明して」「さっき言った金額で記録して」のような参照も使えます。
ユーザー: アメリカーノに450円払いました
AI: カフェ / アメリカーノ / 450円を記録しました ☕
(2025年3月8日 · カード)
ユーザー: カテゴリを飲食からカフェに変更して
AI: 完了しました。カフェカテゴリに更新しました。
会話リストの管理
左サイドバーには最近の会話(最大100件)が新着順に表示されます。
- 名前変更: 会話タイトルの横にある編集アイコンをクリック
- 削除: 会話の横のメニューから「削除」を選択
- 検索: 上部の検索バーで会話のタイトルや内容を検索
ファイル添付
画像の添付
画像を添付すると、AIがビジュアル分析を行います。マルチモーダルビジョンモデルが画像を読み取り、質問に答えます。
添付方法:
- 入力欄左の 📎 アイコンをクリックしてファイルを選択
- 画像を入力欄にドラッグ&ドロップ
- Ctrl+V(またはCmd+V)でコピーした画像を貼り付け
例:
[レシート画像を添付]
ユーザー: このレシートの内容を家計簿に記録して
AI: レシートを分析しました。
- スターバックス アメリカーノ: 550円
- サンドイッチ: 680円
合計1,230円をカフェとして記録しますか?
対応フォーマット:JPEG、PNG、GIF、WebP
ドキュメントの添付
PDF、Wordファイル、テキストファイルなどを添付すると、AIが内容を分析・要約・質問応答します。
[契約書.pdf を添付]
ユーザー: この契約書の重要な条項をまとめて
AI: 契約書を分析しました。主要ポイントは以下の通りです:
1. 期間:2025年4月1日〜2026年3月31日
2. 違約条項:中途解約時は残期間の金額の20%
3. 自動更新:満了30日前までに通知がない場合、1年自動延長
対応フォーマット:PDF、DOCX、TXT、MD、CSV
音声の添付
音声ファイルを添付すると、AIが音声をテキストに変換したり、内容を分析したりします。
対応フォーマット:MP3、WAV、M4A、OGG
会話機能
会話名の変更
最初のメッセージの後、会話タイトルが自動生成されます。好みのタイトルに変更することもできます。
- サイドバーの会話タイトル右の編集(✏️)アイコンをクリック
- 新しいタイトルを入力してEnterまたは確認ボタンを押す
会話の削除
サイドバーの会話アイテムにカーソルを合わせると削除ボタンが表示されます。削除した会話は復元できず、そのスレッドのすべてのメッセージ履歴が完全に削除されます。
会話の検索
上部の検索バーにキーワードを入力すると、会話のタイトルとメッセージ内容を検索できます。結果をクリックすると該当の会話に直接移動します。
ストリーミング応答
StarnionはAIの応答をリアルタイムでストリーミングします。完全な応答を待つのではなく、生成されるにつれて単語が画面に表示されます。
ストリーミングの仕組み:
AI SDK v6 SSEストリームイベントの順序:
data: {"type":"start"}
data: {"type":"start-step"}
data: {"type":"text-start","id":"txt"}
data: {"type":"text-delta","id":"txt","delta":"こんにちは"}
data: {"type":"text-delta","id":"txt","delta":"!"}
data: {"type":"text-end","id":"txt"}
data: {"type":"finish-step"}
data: {"type":"finish","finishReason":"stop"}
data: [DONE]
ツール(スキル)実行中は、そのステータスがインラインで表示されます:
🔧 `weather` を実行中...
🔧 `finance_add` を実行中...
ストリーミングの最大待機時間は 3分 で、その後接続は自動的に閉じられます。
WebSocket接続
Web UIはリアルタイム双方向通信にWebSocketを使用しています。接続からメッセージ配信までの完全なフローを以下に示します。
ブラウザ Gateway (Go) Agent (Python)
| | |
|-- WS接続リクエスト --> | |
|<-- 接続承認 ----------| |
| | |
|-- {method:"chat", | |
| message:"こんにちは", | |
| thread_id:"uuid"} --> | |
| |-- gRPC ChatStream ------->|
| | |-- LLM呼び出し
| | |<-- トークンストリーム
| |<-- TEXTイベント ----------|
|<-- {event:"text", | |
| text:"こんにちは"} --| |
| |<-- TEXTイベント ----------|
|<-- {event:"text", | |
| text:"!"} ----------| |
| |<-- STREAM_END ------------|
|<-- {event:"done"} -------| |
| | |
接続の維持:
- Pingの間隔:サーバーが50秒ごとにPingを送信
- Pongのタイムアウト:60秒以内に応答がない場合、接続を切断
- 最大メッセージサイズ:64 KB
- 再接続:ブラウザが自動的に再接続を試みる
認証とセキュリティ:
- WebSocket接続が確立されると、ユーザーIDに基づいて会話の所有権が確認されます。
- 他のユーザーの会話へのアクセス試行は即座にブロックされます。
コンテキスト保持(RAG 4層メモリ)
Starnionエージェントは複数のレイヤーにまたがって会話コンテキストを管理します。
[メッセージ送信]
|
v
+------------------------+
| レイヤー1: 短期記憶 | 現在の会話スレッドの最近のメッセージ
| (インコンテキスト) | → LangGraphのthread_idで管理
+------------------------+
|
v
+------------------------+
| レイヤー2: 長期記憶 | ユーザーごとの重要情報を永続的に保存
| (ベクターストア) | → エンベディング検索で関連メモリを取得
+------------------------+
|
v
+------------------------+
| レイヤー3: ツール実行結果 | スキル実行結果(天気、支出など)
| (ツール結果) | → 現在の会話に自動的に含まれる
+------------------------+
|
v
+------------------------+
| レイヤー4: ユーザープロフィール | 名前、設定、ペルソナ設定
| (ユーザープロフィール) | → すべての会話のベースコンテキストを提供
+------------------------+
実際のコンテキスト保持の例:
[会話1 — 1週間前]
ユーザー: 交通費の月予算は10,000円です
AI: 承知しました!交通費の予算10,000円を記憶しておきます。
[会話2 — 今日]
ユーザー: 今月の交通費はいくら使いましたか?
AI: 今月の交通費を確認します。
🔧 `finance_summary` を実行中...
今月の交通費:7,340円(予算10,000円の73.4%)
残り2,660円 — うまく管理できていますね! 👍
会話履歴はLangGraphのthread_idで管理されます。新しい会話を始めるたびに新しいスレッドが作成されます。以前の会話に戻ると、そのスレッドのメモリが復元されます。
ヒントと使用例
AIチャットを最大限に活用する
具体的に入力する:
良い例:
ユーザー: 今夜、焼肉に18,000円を現金で払いました。飲食カテゴリで記録して。
効果が低い例:
ユーザー: 夕食を食べた
複数の項目をまとめて処理する:
ユーザー: 今日の支出をまとめて記録して
カフェ アメリカーノ 450円、ランチ 800円、コンビニ 320円
AI: 3件を記録しました。
- カフェ / アメリカーノ / 450円 ☕
- 飲食 / ランチ / 800円 🍱
- 飲食 / コンビニ / 320円 🏪
本日の合計支出:1,570円
日付を指定する:
ユーザー: 昨日映画を観ました。チケットは1,500円でした。
AI: 3月7日 · エンタメ/映画 · 1,500円を記録しました 🎬
その他の会話例
天気確認:
ユーザー: 明日は傘が必要ですか?
AI: 明日の東京の天気を確認します。
🔧 `weather` を実行中...
明日の午後(3月9日)から雨の予報です。🌧️
傘を持って行くことをお勧めします!
月間支出サマリー:
ユーザー: 今月はいくら使いましたか?
AI: 🔧 `finance_summary` を実行中...
3月の支出(1日〜8日):
- 飲食: 4,250円
- カフェ: 1,800円
- 交通費: 1,540円
- 合計: 7,590円
先月同時期比で12.3%増加しています。
飲食費の増加が主な要因です。
画像分析:
[料理の写真を添付]
ユーザー: これは何カロリーですか?
AI: 写真を分析しました。
ビビンバのようです。通常1人前は約500〜600kcal程度ですが、
ごま油の量によって変わります!
ドキュメントの要約:
[レポート.pdf を添付]
ユーザー: 重要なポイントを3行でまとめて
AI: 了解しました。3行でまとめます。
1. 2024年の売上は前年比23%増で、オンラインチャンネルが主導。
2. 顧客満足度は過去最高の92ポイントを達成。
3. 2025年の目標は新市場への進出とモバイルアプリのリニューアル。
💬 テレグラム使用例
ニオンに自然な言葉で話しかけるだけでOKです。特別なコマンドは不要 — 普段どおりにチャットしてください!
日常会話
今日天気いいね!何かおすすめある?
→ ニオンが天気に合った活動を提案します
最近ストレスがたまって辛い
→ ニオンが共感し、ストレス解消法を提案します
質問する
おいしい味噌汁の作り方を教えて
→ レシピをステップごとに教えます
今週の東京の天気はどう?
→ 天気情報を教えます
ファイル添付
[写真を添付] このレシートを整理して
→ レシートを分析して支出を自動記録します
[音声メッセージ](会議の録音)
→ 音声をテキストに変換して要約します
よくある質問
Q. 会話はどのくらいの期間保存されますか?
A. 会話はサーバーのデータベースに永続的に保存され、削除しない限り残ります。ただし、会話リストに表示されるのは最新の100件のみです。
Q. AIが以前の会話を覚えていないようです。
A. 新しい会話を始めると、以前のスレッドとは分離されます。過去の会話を続けるには、サイドバーからその会話を選択してください。コンテキストは同じ会話スレッド内で保持されます。
Q. 添付ファイルのサイズ制限はありますか?
A. 現在の上限は1ファイルあたり20 MBです。大きなファイルは圧縮または分割してからアップロードすることをお勧めします。
Q. 応答がストリーミング途中で止まったり切れたりしました。
A. ストリーミングの最大待機時間は3分です。複雑なタスクには時間がかかる場合があります。ネットワーク接続を確認するか、ページを更新してから再試行してください。
Q. 複数の会話を同時に進めることはできますか?
A. はい、複数のブラウザタブで異なる会話を進めることができます。ただし、ユーザーごとに1つのWebSocket接続しか維持されないため、新しいタブで接続を開くと既存のタブのリアルタイムストリーミングが中断される場合があります。
Q. TelegramとWeb UIの会話はリンクされていますか?
A. 現在、各チャンネルは独立したスレッドを管理しています。Telegramの会話とWeb UIの会話は別々に保存されます。
Q. どのAIモデルが使用されていますか?
A. デフォルトで設定されているモデルが使用されます。設定で好みのモデルに変更できます。利用可能なモデルの一覧は、設定 > モデルから確認できます。