海外テックニュース収集・AI翻訳・投資分析ダッシュボード
次世代コンピューティング、マテリアル・インフォマティクスなど、日本では情報が少ない先端分野の海外ニュースを自動収集し、AI で翻訳・要約・インパクト分析を行う投資ダッシュボードです。
公開URL: https://vectorbrief.online(招待制) 本サービスは外部のAI APIを利用したポートフォリオ作品のため、デモは招待制で公開しています。ご覧になりたい方は、X(@yook_dev)までお気軽にご連絡ください。
Vector は、海外の先端テックニュースを自動収集し、AI で日本語に翻訳・要約したうえで、投資判断に必要な要点・背景・トレンドを確認できるダッシュボードです。
内部に蓄積された記事と、外部から取得した記事を横断してリサーチし、質問への回答を生成します。
agent-research-readme.mp4
| ニュース詳細 | ブリーフィング詳細 |
|---|---|
![]() |
![]() |
| AI が記事を翻訳・要約し、要点と背景文脈を整理する。 | 複数記事をもとに、週次の市場・技術動向を読み物として整理する。 |
Vector は、最初から明確な設計思想を持って作り始めたアプリではありません。立ち上げ当初は、AI エージェントが生成したコードを十分に理解できないまま承認することも多く、まずは動くものを作るところから始まりました。
そこから、技術書を読み、既存実装をレビューし、実装中の失敗を振り返る中で、少しずつ「自分が何を大事にして設計するのか」を言語化してきました。
その考え方の変化と、現在の設計は目的別に以下へまとめています。
- 設計思想がどう変わってきたか → docs/design-journey/
- アプリケーションの設計と主要な設計判断 → docs/architecture.md
- AI エージェントとの分担や検証の進め方 → docs/how-i-build-with-ai.md
- 海外テックニュースは英語記事が多く、日本語話者の投資家が継続的に追うには負荷が高い
- 日々の記事は断片的で、AI・半導体・宇宙などの分野ごとに「今週何が起きたのか」を把握しづらい
- 投資判断の前段で必要な要点・背景・流れを拾うために、複数の記事を読み比べる時間がかかる
- テックニュースの自動収集
- AI による日本語翻訳・要約・背景整理
- カテゴリ別の記事一覧とフィルタリング
- 関連記事推薦
- 週次 LLM ブリーフィング
- 注目ワード / 急上昇ワードの集計
| 領域 | 採用技術 |
|---|---|
| フロントエンド | Next.js 16 (App Router / BFF)・React 19・TypeScript・Tailwind CSS v4・shadcn/ui |
| 認証 | Better Auth (frontend BFF で完結) |
| バックエンド | Python 3.13・FastAPI・Pydantic / SQLModel・Alembic |
| 非同期処理 | taskiq (worker / scheduler)・ElastiCache Valkey (queue / レート制限) |
| データ | Amazon RDS for PostgreSQL・pgvector (768次元ベクトル検索) |
| AI | Gemini (翻訳・要約・構造化)・DeepSeek (重要度・投資文脈分析) |
| 基盤・可観測性 | AWS ECS Fargate (ap-northeast-1)・Terraform・Docker Compose・Logfire (OpenTelemetry)・GitHub Actions |
Vector は、ブラウザから直接到達できる入口を Next.js BFF に寄せ、backend API と worker 群を内部側に閉じる構成です。
本番環境は AWS (ap-northeast-1) で動作しています。ALB を唯一の公開入口とし、frontend・API・scheduler・各 worker を ECS Fargate の service として分離、データは RDS PostgreSQL と ElastiCache Valkey に置いています。構成は Terraform (infra/aws/) で管理しています。
以前は Fly.io と Neon PostgreSQL で運用しており、現在は停止しています。
flowchart TB
Browser([Browser])
Internet[("インターネット<br/>ニュースソース / 外部 AI API")]
subgraph VPC["AWS ap-northeast-1 / VPC"]
subgraph PubIn["public subnet — 入口"]
ALB["ALB<br/>唯一の公開入口"]
end
subgraph AppNet["app subnet — public IP を持たない"]
FE["frontend<br/>Next.js BFF / 認証"]
API["api<br/>FastAPI"]
WORKER["worker / scheduler<br/>収集・AI分析・派生処理"]
end
subgraph DataNet["data subnet"]
RDS[("RDS PostgreSQL<br/>pgvector")]
VK[("ElastiCache Valkey<br/>キュー / レート制限")]
end
subgraph ProxyNet["proxy subnet"]
PROXY["egress proxy<br/>許可した宛先だけ通す"]
end
subgraph PubOut["public subnet — 出口"]
NAT["NAT Gateway"]
end
end
Browser ==>|HTTPS| ALB
ALB ==>|内部へ転送| FE
FE -->|内部 API 呼び出し| API
FE ~~~ WORKER
API --> RDS
API --> VK
WORKER --> RDS
WORKER --> VK
WORKER ==>|外向き通信| PROXY
PROXY ==>|許可した宛先だけ| NAT
NAT ==>|固定 IP で送信| Internet
linkStyle 0,1 stroke:#10b981,stroke-width:3px
linkStyle 8,9,10 stroke:#f59e0b,stroke-width:3px
classDef edge fill:#ecfdf5,stroke:#10b981,color:#111827;
classDef internal fill:#eef2ff,stroke:#6366f1,color:#111827;
classDef data fill:#fef3c7,stroke:#f59e0b,color:#111827;
class ALB,NAT edge
class FE,API,WORKER,PROXY internal
class RDS,VK data
公開入口、内部 API、外部 HTML 取得 worker、DB 権限を分けることで、外部入力を扱う処理の影響範囲を小さくしています。 この分割の背景と、非同期パイプライン・セキュリティ境界の設計判断は docs/architecture.md にまとめています(インフラ構成の記述は Fly.io 運用時のものです)。
AWS の各サービスをどういう基準で選び、どんなトレードオフを受け入れたのかは、Zenn の記事にまとめています。
個人開発サービスを Fly.io + Neon から AWS に移行した — 選定の理由とトレードオフ
収集した記事は、本文補完、翻訳・要約、重要度・投資文脈の分析、ベクトル生成という複数の非同期ステージを通して処理します。各ステージの実行結果は Pipeline Events に記録し、途中で処理が止まった場合は、backfill が DB の状態から未完了の工程を再発見して通常のキューへ再投入します。
この構成を採用した背景や、Redis Streams による再配送、重複実行から DB の整合性を守る仕組みは、Zenn の記事にまとめています。ぜひご覧ください。
ローカルでは Docker Compose で起動できます。Gemini / DeepSeek の API key と、各種 secret の設定が必要です。
cp .env.example .env
docker compose up -d --build起動後、http://localhost:3000 を開きます。
環境変数の一覧は .env.example を参照してください。
- docs/architecture.md: アプリケーション設計、非同期パイプライン、セキュリティ境界、設計判断(インフラ構成は Fly.io 運用時の記述)
- docs/design-journey/: 設計に対する考え方が変わっていった記録
- docs/how-i-build-with-ai.md: AI エージェントとの開発プロセス
本リポジトリには現時点でオープンソースライセンスを付与していません。 コードの再利用・改変・再配布を希望する場合は、事前に許諾を得てください。


