Fully automated business research and idea document Production
Inspiration Eternal は、商品・サービスの新規業界開拓を目的としたドキュメント制作の完全自動化 AI エージェントです。ビジネスソリューションやサービスの開発に関連するアイデアの創出から、それらの評価、市場分析、そして最終的なレポート作成までを AI が自動的に行います。
- レポート作成: アイデア・テキスト生成に終わらず、情報をまとめた PPTX を制作
- 自動アイデア生成: ユーザーの入力に基づいて、AI がビジネスアイデアを複数生成
- アイデア評価: 生成されたアイデアを革新性、新規性、社会的インパクトなどの観点から自動評価
- Web 調査: 選定されたアイデアについて、Web からのデータ収集により市場調査を実施
- 進捗実況: SSE(Server-Sent Events)を利用したリアルタイムの処理状況表示
- FastAPI: バックエンドフレームワーク
- LLM API: GPT-4o-mini などの AI モデルを活用
- SSE (Server-Sent Events): リアルタイム進捗状況の配信
- Python-PPTX: PowerPoint レポートの自動生成
- Google-SerchAPI: PowerPoint レポートの自動生成
- Next.js: React ベースのフレームワーク
- Tailwind CSS: UI デザインのためのユーティリティファースト CSS フレームワーク
- Mac book air / M2 - Sequia
- Cursor 0.47.5
- Node.js v22.13.1
- conda 24.11.0
- Python 3.11.11
※API が必要となります。
-
リポジトリをクローンします:
git clone https://github.com/yourusername/ie.git cd ie -
Python 仮想環境を作成した後、依存関係をインストールします:
cd backend pip install -r requirements.txt -
環境変数を設定します:
各種 LLM と、Google Search エンジンの API Key と ENGINEID を記入。 LLM は、1 種あれば大丈夫です。Google Search の API と ENGINE ID はなくても動きます。DEEPSEEK_API_KEY=YOUR_API_KEY GEMINI_API_KEY=YOUR_API_KEY OPENAI_API_KEY=YOUR_API_KEY GOOGLE_SEARCH_API_KEY=YOUR_API_KEY GOOGLE_SEARCH_ENGINE_ID=YOUR_API_KEY
-
依存関係をインストールします:
cd frontend/app npm install -
環境変数を設定します: ie/frontend/app ディレクトリに、.env.local を作成し、下記を記述します。
NEXT_PUBLIC_BACKEND_URL=http://localhost:8080
-
バックエンドサーバーを起動します:
cd backend python -m uvicorn main:app --reload -
フロントエンドを起動します:
cd frontend/app npm run dev -
ブラウザで http://localhost:3000 にアクセスすると使用できます。
- トップページで、あなたのビジネスソリューションやサービスについての情報を入力します。
- しばらくすると、生成されたアイデアの PPTX 資料を DL できます。
使用デモ動画:https://youtu.be/P1QVCL8d93g
flowchart TD
Start([ユーザー]) --> InputForm["プロンプト入力画面<br>(PromptScreen)"]
InputForm -->|"プロンプト送信<br>(ビジネスソリューション概要)"| ClientSend["APIリクエスト送信<br>(/api/generate)"]
subgraph Frontend["フロントエンド (Next.js)"]
ClientSend --> WaitProcess["処理待機画面表示<br>(GenerationScreen)"]
WaitProcess -->|"SSE接続開始<br>(/api/stream-progress/{job_id})"| ReceiveUpdates["リアルタイム進捗受信<br>(EventSource)"]
ReceiveUpdates -->|"処理完了"| OutputDisplay["結果表示画面<br>(OutputScreen)"]
OutputDisplay -->|"ダウンロード"| FileDownload["ファイルダウンロード<br>(/api/pptx-download)"]
OutputDisplay -->|"新規プロンプト"| InputForm
end
subgraph Backend["バックエンド (FastAPI)"]
ClientSend --> ReceiveRequest["リクエスト受信<br>(/api/generate)"]
ReceiveRequest --> CreateJob["ジョブID生成<br>(TaskManager)"]
CreateJob --> QueueTask["タスクキュー追加"]
QueueTask --> ProcessTask["タスク処理<br>(Agent実行)"]
ProcessTask -->|"進捗状況"| StreamUpdate["SSEでの進捗配信<br>(/api/stream-progress/{job_id})"]
StreamUpdate --> ReceiveUpdates
subgraph AIAgent["AIエージェント処理"]
PT["タスク処理"] --> SolutionDef["ソリューション定義<br>(set_solution)"]
SolutionDef --> IdeaGen["アイデア生成<br>(generate_ideas)"]
IdeaGen --> IdeaEval["アイデア評価<br>(evaluate_ideas)"]
IdeaEval --> CreateDraft["ラフ案作成<br>(create_rough_draft)"]
CreateDraft --> EvaluateDraft["ラフ案評価<br>(evaluate_drafts)"]
EvaluateDraft --> WebResearch["Web調査実行<br>(perform_research)"]
WebResearch --> CreateWriteup["レポート作成<br>(create_writeups)"]
CreateWriteup --> GenerateReport["最終レポート生成<br>(generate_final_report)"]
end
ProcessTask --> PT
GenerateReport --> SaveResults["結果保存<br>(results/{timestamp}/report/*)"]
SaveResults -->|"完了通知"| TaskComplete["タスク完了ステータス更新"]
TaskComplete --> StreamUpdate
end
FileDownload -->|"ダウンロード"| ReportFiles[("PPTX<br>レポートファイル")]
classDef userAction fill:#4F4F4F,stroke:#cdfe00,color:#fff,stroke-width:1px
classDef clientProcess fill:#2D2D2D,stroke:#4682B4,color:#fff,stroke-width:1px
classDef serverProcess fill:#1A1A1A,stroke:#6495ED,color:#fff,stroke-width:1px
classDef aiProcess fill:#000000,stroke:#9370DB,color:#fff,stroke-width:1px
classDef dataStore fill:#000000,stroke:#FF7F50,color:#fff,stroke-width:1px,stroke-dasharray:5 5
classDef output fill:#000000,stroke:#32CD32,color:#fff,stroke-width:1px
class Start userAction
class InputForm,ClientSend,WaitProcess,ReceiveUpdates,OutputDisplay,FileDownload clientProcess
class ReceiveRequest,CreateJob,QueueTask,ProcessTask,StreamUpdate,TaskComplete serverProcess
class PT,SolutionDef,IdeaGen,IdeaEval,CreateDraft,EvaluateDraft,WebResearch,CreateWriteup,GenerateReport aiProcess
class SaveResults dataStore
class ReportFiles output
このプロジェクトはMIT ライセンスの下で公開されています。ライセンスの全文は添付の LICENSE ファイルをご覧ください。
また、使用しているサードパーティライブラリのライセンス情報はTHIRD_PARTY_LICENSES.mdにまとめています。
コントリビューションを歓迎します。バグ報告、機能リクエスト、プルリクエストなどをお気軽にご提出ください。
このプロジェクトは以下のオープンソースライブラリに依存しています:
- FastAPI
- Next.js
- Python-PPTX
- Tailwind CSS
- その他多くのライブラリ
このプロジェクトは、下記の論文やイベントからインスパイアされたり良い刺激をいただきました。
The AI Scientist: Towards Fully Automated Open-Ended Scientific Discovery
https://arxiv.org/abs/2408.06292
AI Agent Hackathon:https://zenn.dev/hackathons/2024-google-cloud-japan-ai-hackathon
AI Code Agent 祭り:https://code-agents.connpass.com/event/342240/
