登録して招待リンクを共有すると、動画再生報酬と紹介報酬を獲得できます。

検索結果 AI投入使用,并将这一能力出口到海外。
AI投入使用,并将这一能力出口到海外。 コミュニティ
1つのキーワードが1つのコミュニティです。
コミュニティ作成
アカウント
見つかりません
AI投入使用,并将这一能力出口到海外。 を含む検索結果
# AIエージェントをソフトウェアに組み込むプラクティス # コンテキスト予算配分 🎯 「全部入れれば精度が上がる」は幻想です。コンテキストウィンドウは有限の予算として管理しましょう。 スロットごとに配分比率を決め、信号密度を最大化するパターンです。 🔥 解決する課題 RAGやメモリを使うエージェントでは、検索結果・会話履歴・システム指示・長期メモリが同じコンテキストウィンドウを奪い合います。情報を詰め込むほどコストは増え、会話が長くなるとシステム指示の割合が縮んで振る舞いが劣化します。さらに"Lost in the Middle"問題により、窓の中盤に置かれた重要な情報が実質的に無視されてしまいます。 💡 提案パターン コンテキストウィンドウをシステム指示・検索結果・会話履歴・メモリなどのスロットに分け、各スロットに最大占有率と優先度を設定します。システム指示は圧縮対象外の固定枠(10〜20%)として先に確保し、検索結果はリランク後にtop-k件に絞り、履歴は窓使用率が閾値を超えたら要約圧縮します。配置順序はLost in the Middle対策として、最重要情報を先頭に、直近入力を末尾に置きます。cost_sensitivityが高い環境ほどtop-kを絞り、圧縮閾値を下げ、履歴を短く保ちます。 ✅ 選定条件 使うとき: - RAGやメモリを使い、投入候補がモデル窓サイズの50%を超えうる - コスト感度が中以上で、投入トークンの増加がコストや推論時間に影響する - 複数ターンの会話で履歴が蓄積し、他の情報のスペースを圧迫する 使わないとき: - 投入情報がシステム指示+単発入力のみで窓の30%未満に収まる場合 - ロングコンテキストモデルを使い投入量が窓の20%未満、かつコスト感度が低い場合 ⚠️ 落とし穴 - システム指示を圧縮対象にしてはいけません。ツール定義や安全指示が削られると振る舞いが壊れます - リランクなしのtop-kは信号密度が低いです。ベクトル検索上位20件からクロスエンコーダで3〜8件に絞りましょう - 要約圧縮は非可逆です。重要な決定事項や固有名詞が落ちるリスクがあるため、キーワード抽出を併用してください 🔧 実装方針 - コンテキストウィンドウをスロット(system/user/retrieval/history/memory)に分割し、各スロットに最大占有率・優先度・圧縮可否を定義した構造体で管理します - システム指示は圧縮対象外の最高優先度として先に確保し、残りの予算を他スロットに優先度降順で配分します - 検索結果はベクトル検索の上位候補をクロスエンコーダでリランクしてから予算内に収め、信号密度を最大化します - 履歴スロットが予算を超過した場合は要約圧縮を適用し、圧縮前にキーワード抽出して重要情報の欠落を防ぎます #AIエージェント# #ソフトウェアアーキテクチャ#
もっと見る
# AIエージェント開発の意思決定ポイント 🎯 **ポイント** RAGのtop-k、なんとなく「5」にしていませんか?検索結果を多く入れれば根拠が増えると思いきや、LLMは中盤の情報を無視しがちで、コストだけが直線的に増加します。少なすぎればハルシネーション、多すぎればノイズと予算超過。このバランスを取るための実践的な考え方を解説します。 📋 **概要** 検索top-kは、RAG(Retrieval-Augmented Generation)において外部知識ストアから取得する文書チャンクの件数を制御するパラメータです。広義には「LLMのコンテキストウィンドウに投入する外部情報の量」を意味します。コンテキストウィンドウは有限の資源であり、システム指示・検索結果・会話履歴・長期メモリ・ツール出力が奪い合っています。検索結果を多く入れれば根拠は増えますが他の情報が押し出され、少なければ根拠不足でハルシネーションが増えます。 重要なのは件数だけでなく「何を上位に置くか」です。初期検索で広めに候補を取り、リランカーで信号密度の高い順に並べ替えて上位k件を投入するパイプラインが標準的です。 🔍 **意思決定のポイント** top-kの設定は主に以下の変数で決まります。 🔹 **コスト感度(cost_sensitivity)** — コスト感度が高いほどtop-kを絞ります。ただし最低限の根拠確保のためk=3を下回ることは稀です。kを5から20に増やすと検索結果部分のトークンは概ね4倍、コストもそれに比例します。 🔹 **失敗コスト(failure_cost)** — 失敗コストが高い領域では根拠の網羅性が重要。kを多めにとりリランクで品質を担保する戦略が有効です。ただしリランクスコアが閾値を下回る文書は切り捨てるべきです。 🔹 **説明責任(accountability)** — 回答の根拠として引用できる文書を確保する必要がある場合、kを増やすよりもリランクスコアの高い少数の文書を確実に含め、出典を明示する方が効果的です。 💡 **要点と詳細** 実践的な判定フローは以下の通りです。 1️⃣ 初期検索では広めに取得(概ねk=20〜50) 2️⃣ リランカーで関連性スコア順に並べ替え 3️⃣ スコアが閾値を超える文書のうち上位k件を投入 4️⃣ 投入後のトークン数がコンテキストウィンドウの50%を超えないよう制御 5️⃣ 超える場合は圧縮(要約)またはさらなる絞り込み 📊 目安値: - 初期検索の取得件数: 20〜50件(リランク用の候補プール) - リランク後の投入件数: 3〜8件(大半のユースケースで5件前後が出発点) - 検索枠のウィンドウ占有率: 20〜40%(50%超で圧縮検討) - チャンクサイズ: 200〜500トークン kの値は「件数の定数」ではなく「リランクスコアが閾値を超えた文書の件数(上限k件)」として動的に決めるのが理想です。高関連の文書が2件しかなければ2件だけ投入し、無理にk件まで埋めません。 ⚖️ **トレードオフ** 📉 top-kが小さすぎると — 回答に必要な情報が検索結果に含まれず、LLMが根拠なしに回答を生成します。特に複数文書からの情報統合が必要な場合(「A社とB社の比較」など)、1件では対応できません。取得件数が少ないと1件のノイズの影響も甚大で、k=2なら1件のノイズが50%を占めます。 📈 top-kが大きすぎると — "Lost in the Middle"問題が顕在化します。LLMはコンテキストの先頭と末尾に注意を集中させ、中盤の情報は実質的に無視される傾向があります。大量投入すると最重要情報が中盤に埋もれます。他の情報枠(システム指示・会話履歴・長期メモリ)も圧迫され、エージェント全体の振る舞いが劣化します。 🛠️ **ユースケース** ❓ **単純な事実質問**(「A社の設立年は?」)— k=2〜3で十分。単一の文書で回答可能なケースがほとんどです。 📊 **比較・分析質問**(「A社とB社の戦略の違いは?」)— k=5〜8が必要。複数ソースからの情報統合にはより多くの文書が必要です。クエリ分類器で場合分けすると効率的です。 🏥 **医療・法務の高精度Q&A** — 根拠の網羅性と出典の明示が両方求められる。初期検索を広く取りリランクで厳選、スコアの高い少数の文書を先頭または末尾に配置して"Lost in the Middle"を回避します。 リランカーを使わずにtop-kを増やすのは逆効果です。ベクトル検索の上位20件をそのまま投入するとノイズが大量に混入します。コンテキストウィンドウの使用率は常にモニタリングし、検索結果で投入した文書のうち実際に回答に使われた比率を追跡しましょう。使われない文書が多ければkを下げるか検索パイプラインの改善が必要です。 #AIエージェント# #ソフトウェアアーキテクチャ#
もっと見る
# AIエージェントをソフトウェアに組み込むプラクティス # コンテキスト予算配分 🎯 「全部入れれば精度が上がる」は幻想です。コンテキストウィンドウは有限の予算として管理しましょう。 スロットごとに配分比率を決め、信号密度を最大化するパターンです。 🔥 解決する課題 RAGやメモリを使うエージェントでは、検索結果・会話履歴・システム指示・長期メモリが同じコンテキストウィンドウを奪い合います。情報を詰め込むほどコストは増え、会話が長くなるとシステム指示の割合が縮んで振る舞いが劣化します。さらに"Lost in the Middle"問題により、窓の中盤に置かれた重要な情報が実質的に無視されてしまいます。 💡 提案パターン コンテキストウィンドウをシステム指示・検索結果・会話履歴・メモリなどのスロットに分け、各スロットに最大占有率と優先度を設定します。システム指示は圧縮対象外の固定枠(10〜20%)として先に確保し、検索結果はリランク後にtop-k件に絞り、履歴は窓使用率が閾値を超えたら要約圧縮します。配置順序はLost in the Middle対策として、最重要情報を先頭に、直近入力を末尾に置きます。cost_sensitivityが高い環境ほどtop-kを絞り、圧縮閾値を下げ、履歴を短く保ちます。 ✅ 選定条件 使うとき: - RAGやメモリを使い、投入候補がモデル窓サイズの50%を超えうる - コスト感度が中以上で、投入トークンの増加がコストや推論時間に影響する - 複数ターンの会話で履歴が蓄積し、他の情報のスペースを圧迫する 使わないとき: - 投入情報がシステム指示+単発入力のみで窓の30%未満に収まる場合 - ロングコンテキストモデルを使い投入量が窓の20%未満、かつコスト感度が低い場合 ⚠️ 落とし穴 - システム指示を圧縮対象にしてはいけません。ツール定義や安全指示が削られると振る舞いが壊れます - リランクなしのtop-kは信号密度が低いです。ベクトル検索上位20件からクロスエンコーダで3〜8件に絞りましょう - 要約圧縮は非可逆です。重要な決定事項や固有名詞が落ちるリスクがあるため、キーワード抽出を併用してください 🔧 実装方針 - コンテキストウィンドウをスロット(system/user/retrieval/history/memory)に分割し、各スロットに最大占有率・優先度・圧縮可否を定義した構造体で管理します - システム指示は圧縮対象外の最高優先度として先に確保し、残りの予算を他スロットに優先度降順で配分します - 検索結果はベクトル検索の上位候補をクロスエンコーダでリランクしてから予算内に収め、信号密度を最大化します - 履歴スロットが予算を超過した場合は要約圧縮を適用し、圧縮前にキーワード抽出して重要情報の欠落を防ぎます #AIエージェント# #ソフトウェアアーキテクチャ#
もっと見る
便利だけど知られていないClaude APIの機能 🧪 プロンプトを変えたけど、本当に良くなったのか...感覚じゃなくて数字で確認したくないですか? ClaudeのEvaluation Tool(評価ツール)は、Console内でプロンプトの評価を実行・比較できるツールです。本番投入前の品質検証を体系的に行えます。 📌 タイトル:Evaluation Tool(ConsoleでのEvaluation Tool使用) 🔗 URL: 🧩 概要 プロンプトを改善したとき、「本当に良くなったか」を客観的に判断するのは難しいです。Evaluation Toolは、テストケースに対してプロンプトを実行し、品質指標を定量的に評価する仕組みです。変更前後のプロンプトを同じテストセットで比較でき、「感覚的に良さそう」ではなく「数値的に改善した」ことを確認してからデプロイできます。 🛠 使い方 Anthropic Consoleで評価を設定します。テストケース(入力+期待される出力や評価基準)を用意し、プロンプトを実行して結果をスコアリングします。複数のプロンプトバージョンを並べて比較でき、どの変更がどれだけ効果があったかが一目でわかります。 🏗 本番システムへの組み込み方 ・プロンプト変更のゲートキーパー:プロンプトの更新前に必ず評価を実行し、スコアが下がっていないことを確認してからデプロイ。回帰を防げます。 ・モデルアップグレードの検証:新しいモデルバージョンに切り替える前に、既存のテストセットで品質を比較。予期しない品質低下を事前に検知。 ・チームのプロンプトレビュー:PRレビューのように、プロンプト変更時に評価結果を添付して品質の議論を客観化。 ・継続的な品質モニタリング:定期的に評価を実行して、時間経過による品質ドリフトを検知。 💡 ユースケース ✅ プロンプト変更の回帰テスト 🔄 モデルアップグレード前の品質検証 👥 チームでのプロンプトレビュー 📉 品質ドリフトの継続的検知 ⚠️ 注意点 評価の品質はテストケースの品質に直結します。偏ったテストセットでは信頼性の高い評価はできません。本番で遭遇する多様なケースをカバーするテストセットを整備することが重要です。また、定量評価だけでなく、生成結果の定性的なチェックも併用しましょう。 ✨ 「なんとなく良さそう」ではなく「数字で良くなった」を確認してからデプロイする。この習慣が、プロダクション品質のAIを作る基本です。 #Claude# #LLM#
もっと見る
便利だけど知られていないClaude APIの機能 🧪 プロンプトを変えたけど、本当に良くなったのか...感覚じゃなくて数字で確認したくないですか? ClaudeのEvaluation Tool(評価ツール)は、Console内でプロンプトの評価を実行・比較できるツールです。本番投入前の品質検証を体系的に行えます。 📌 タイトル:Evaluation Tool(ConsoleでのEvaluation Tool使用) 🔗 URL: 🧩 概要 プロンプトを改善したとき、「本当に良くなったか」を客観的に判断するのは難しいです。Evaluation Toolは、テストケースに対してプロンプトを実行し、品質指標を定量的に評価する仕組みです。変更前後のプロンプトを同じテストセットで比較でき、「感覚的に良さそう」ではなく「数値的に改善した」ことを確認してからデプロイできます。 🛠 使い方 Anthropic Consoleで評価を設定します。テストケース(入力+期待される出力や評価基準)を用意し、プロンプトを実行して結果をスコアリングします。複数のプロンプトバージョンを並べて比較でき、どの変更がどれだけ効果があったかが一目でわかります。 🏗 本番システムへの組み込み方 ・プロンプト変更のゲートキーパー:プロンプトの更新前に必ず評価を実行し、スコアが下がっていないことを確認してからデプロイ。回帰を防げます。 ・モデルアップグレードの検証:新しいモデルバージョンに切り替える前に、既存のテストセットで品質を比較。予期しない品質低下を事前に検知。 ・チームのプロンプトレビュー:PRレビューのように、プロンプト変更時に評価結果を添付して品質の議論を客観化。 ・継続的な品質モニタリング:定期的に評価を実行して、時間経過による品質ドリフトを検知。 💡 ユースケース ✅ プロンプト変更の回帰テスト 🔄 モデルアップグレード前の品質検証 👥 チームでのプロンプトレビュー 📉 品質ドリフトの継続的検知 ⚠️ 注意点 評価の品質はテストケースの品質に直結します。偏ったテストセットでは信頼性の高い評価はできません。本番で遭遇する多様なケースをカバーするテストセットを整備することが重要です。また、定量評価だけでなく、生成結果の定性的なチェックも併用しましょう。 ✨ 「なんとなく良さそう」ではなく「数字で良くなった」を確認してからデプロイする。この習慣が、プロダクション品質のAIを作る基本です。 #Claude# #LLM#
もっと見る
90年近く未解決の数学難問、OpenAIが約88時間で解決したと発表!ナビエ・ストークス方程式で特異点を確認→約1万のAIエージェントを投入、検証の正しさには疑問も 数学では答えを出す速さだけでなく、第三者が検証できるかも問われます。
もっと見る
AIエージェントをエンタープライズシステムに組み込むプラクティス 【非同期ジョブ+負荷制御】 💡 「全部リアルタイム」は破綻する。長時間処理をジョブ化し、優先度キューで負荷を制御すれば、スパイクにも耐えるエージェント基盤が手に入ります。 🔥 解決する課題 - 数十秒〜数分のエージェント処理でHTTPタイムアウトが発生する - スパイク時に全ユーザーのレイテンシが悪化し、サービスが崩壊する - 低優先度のバッチ処理がリアルタイム対話の品質を巻き添えにする - LLM呼び出しコストがスパイク時に制御不能になる 🏗️ 提案パターン リクエスト受信時にジョブIDを即時返却し、処理をバックグラウンドキューに投入します。進捗はSSE/WebSocketでストリーム通知し、完了時にWebhookやSlackでコールバックします。優先度キューでリアルタイム対話を最優先にし、バックグラウンド処理は後回しにします。さらに「オンライン知性」と「オフラインバッチ知性」を分離し、夜間バッチで大型モデルによる重い分析を実行、日中はその結果を即座に参照する構成が効果的です。 ✅ 選定条件 - 向き:処理が数十秒超、大量並列処理、スパイクのあるマルチテナント環境 - 不向き:会話的・数秒で完結する対話(ジョブ化のオーバーヘッドが体験を損なう) ⚠️ 落とし穴 - DLQ(Dead Letter Queue)を用意しないと、失敗ジョブがサイレントに消える - オフラインバッチの結果鮮度を管理しないと、古い分析結果で誤った判断を招く - テナント別クォータを設けないと、特定テナントの暴走が全体に波及する 🛠️ 実装方針 1. メッセージキュー(SQS / RabbitMQ / Kafka)でジョブを受け付け、即座にジョブIDを返却するAPIを構築します 2. ワークフローエンジン(Temporal / AWS Step Functions)でジョブの進捗管理・リトライ・DLQを一元化します 3. 優先度キューでリアルタイム対話とバックグラウンド処理を分離し、テナント別クォータ(Token Bucket / Sliding Window)を設定します 4. SSE/WebSocketで進捗をストリーム通知し、完了時はWebhook/Slackコールバックで結果を届けます 5. 夜間バッチ(Airflow等)で大型モデルによる重い分析を実行し、結果ストア(Redis / DynamoDB)経由で日中のオンラインエージェントが即座に参照できるようにします #AIエージェント# #エンタープライズアーキテクチャ#
もっと見る
AIエージェントをエンタープライズシステムに組み込むプラクティス 【階層化メモリ -- 4層メモリとコンテキスト・ブローカー】 💡 毎回ゼロから始まるAIエージェントは、何度も同じ質問をする新入社員と同じです。記憶を4層に分離し、「いま本当に必要な情報だけ」を動的に組み立てる仕組みが、実用レベルのエージェントを作ります。 🔥 解決する課題 - セッション跨ぎの文脈喪失:セッション間・エージェント間で文脈が失われ毎回やり直しになる - 文脈窓の有限性:全履歴を詰め込むとコスト・精度が劣化する - 記憶肥大:無制限な蓄積でコスト・プライバシーリスク・文脈汚染が増大する - Lost in the middle:大量コンテキスト投入でかえって回答精度が下がる 🏗️ 提案パターン メモリを4層に分離します。ワーキング(現セッション・揮発)、エピソード(過去要約・ユーザー単位)、セマンティック(RAG対象の知識)、組織知識(人・部署・関係の知識グラフ)。各層に適切な保存先・TTL・ACLを設定します。コンテキスト・ブローカーがユーザーの意図に応じて各層から情報を取得し、トークン予算内で優先度付け・要約・圧縮を行い、最も関連の高い情報だけでコンテキストを組み立てます。 ✅ 選定条件 - 採用する場合:セッション跨ぎ・エージェント跨ぎで文脈を引き継ぐ継続支援型エージェント - 採用しない場合:一発完結のステートレスタスク、固定の少量コンテキストで足りる用途 ⚠️ 落とし穴 - エピソードメモリの肥大化:生ログではなく要約を残し、重要度スコア + TTL + 時間減衰で制御します - コンテキストブローカーの品質:リランキングの精度が低いと不要情報が混入し、精度が劣化します - ACLの層間整合:メモリ層ごとにACLが異なる場合、集約時に最も厳しい権限に縮退させる設計が必要です 🛠️ 実装方針 1. ベクタDB(Pinecone / Weaviate / pgvector)をセマンティックメモリ層に、Neo4jを組織知識グラフ層に配置し、各層に保存先・TTL・ACLを設定します 2. エピソードメモリは生ログではなく要約パイプラインを通し、重要度スコア+時間減衰で自動的に忘却・圧縮する仕組みを実装します 3. コンテキスト・ブローカーをリランキング(Cohere Rerank / cross-encoder)で構築し、ユーザーの意図に応じてトークン予算(目安8,000トークン)内で最も関連の高い情報を動的に組み立てます 4. Mem0 / Zepなどのメモリ管理フレームワークを活用し、セッション跨ぎ・エージェント跨ぎのデータ引き継ぎを実装します 5. 各メモリ層にACLタグを付与し、集約時にコンテキスト・ファイアウォール(P10)と連携して最も厳しい権限に縮退させます #AIエージェント# #エンタープライズアーキテクチャ#
もっと見る
ポケカAIコンペ、とりあえずエージェントこさえたのでいざ実戦投入
# AIエージェント開発の意思決定ポイント # トレース・サンプリング率|Trace Sampling Rate 🎯 ポイント エージェントのトレース、全量記録していますか?それとも全く記録していませんか? 「全量か無か」ではなく「何を全量にするか」が正しい問いです。AIエージェントの1リクエストは数千〜数万トークンのトレースデータを生成します。全量記録すると観測コストが爆発し、記録しなければ障害時に原因究明が不可能。条件付きサンプリングがこのジレンマを解決します。 📋 概要 トレース・サンプリング率は、エージェントの実行トレース(各LLM呼び出し、ツール実行、意思決定のステップごとの記録)をどの割合で収集・保存するかを制御するパラメータです。100%ならすべてのリクエストのトレースを記録し、1%なら100リクエストに1件だけ記録します。 AIエージェントのトレースは従来のWebサービスのログとは質的に異なります。プロンプト全文、出力全文、ツール引数・戻り値、中間的な推論ステップなどを含めると、1リクエストで数十KB〜数百KBのデータが生成されます。さらにLLMの出力は確率的なため、「同じ入力を再投入すれば再現できる」という前提が成り立ちません。 🔍 意思決定のポイント サンプリング率はaccountability(説明責任)とcost_sensitivity(コスト感度)のバランスで決まりますが、最も重要なのは条件付きサンプリングの設計です 🎯 一律の確率ではなく、リクエストの属性に応じて率を変えます。 判定基準の優先順位: 1. エラー/例外が発生したリクエスト → 100%記録(必須) 2. HITL(人間介在)が発生したリクエスト → 100%記録 3. 高リスク操作(副作用あり、不可逆)を含むリクエスト → 100%記録 4. レイテンシがP95を超えたリクエスト → 100%記録 5. コストが閾値を超えたリクエスト → 100%記録 6. 成功したリクエスト → 標本率で記録(1〜10%) 💡 要点と詳細 目安値 📊 - エラー/例外発生 → 100%。再現性のない障害のデバッグに不可欠 - HITL発生(人間承認/エスカレーション) → 100%。承認判断の妥当性を事後検証 - 高リスク操作(送金、データ削除等) → 100%。不可逆操作の監査に必須 - レイテンシP95超過 → 100%。性能劣化の根本原因分析に必要 - 成功かつ低リスク → 1〜10%。品質の統計的モニタリングに十分 - 開発・ステージング環境 → 100%。コストが問題にならない範囲で全量記録 トレースの粒度をサンプリング率とは別に制御するのも重要です 📦 全量記録するリクエストでも、プロンプト全文はコールド層に、メタデータ(モデル名、トークン数、レイテンシ、ステータス)はホット層に分離します。 ⚖️ トレードオフ サンプリング率が低すぎると、障害の再現が不可能になります 🔍 LLMの出力は確率的なため、同じプロンプトを再投入しても同じエラーが再現するとは限りません。品質劣化の見逃し、監査要件の不達成、コスト異常の遅延検知も深刻なリスクです。 サンプリング率が高すぎると、観測コストが本番のLLM呼び出しコストに匹敵するか上回ることがあります 💸 パフォーマンスへの影響、PII(個人情報)の拡散リスク、大量データ中の信号がノイズに埋もれる問題も発生します。 サンプリング率は運用開始後に段階的に下げてください。最初は高い率(50〜100%)で始め、安定性を確認してから成功リクエストの率を徐々に下げます。 🛠️ ユースケース サンプリング判定はリクエストの終了時に行うことも検討してください 🔄 head-based sampling(開始時に決定)は実装が簡単ですが、エラーが発生するかどうかは事前に分かりません。tail-based sampling(完了後に決定)なら結果に基づいて判定できます。ただし中間データを一時的にバッファする必要があります。 correlation ID(trace ID)の伝播を確実にしてください 🔗 マルチステップのエージェント実行では、最初のリクエストから最後のツール呼び出しまで一貫したtrace IDが紐づいていないと、部分的なトレースしか得られません。非同期処理やキューを介する場合にIDが途切れやすいので要注意です。 ホット/コールド分離と組み合わせるのが効率的です。サンプリングされたトレースはコールド層に全文を、それ以外はホット層にメタデータのみを記録する構成が実用的です。 #AIエージェント# #ソフトウェアアーキテクチャ#
もっと見る