Pythonコード50行未満でフル機能のAIエージェントアプリを実現(ステップバイステップガイド)
AIツールは、起業家がトレンドを特定し、意思決定を行う方法を変えつつあるが、スタートアップのビジネスチャンスを分析するためのスケーラブルなソリューションを構築するには、多くの場合、複数のデータソースを統合し、それらを迅速に処理する必要がある。しかし、適切なツールを備えた高度な大規模言語モデル(LLM)を使えば、このプロセスを自動化して実用的な洞察を提供することができる。
このチュートリアルでは AIスタートアップ動向分析エージェント.このAIエージェントは、スタートアップのニュースを分析し、新たなトレンドを特定し、スタートアップのアイデアを検証する。使用するPythonコードは50行未満で、以下のものと組み合わせる。 新聞4k 歌で応える ダックダックゴーそして クロード 3.5 ソネット
主な特徴
- ユーザー入力:起業家が関心のある特定の起業分野や技術を入力できる。
- ニュース収集:@DuckDuckGoを使う
最新の新興企業ニュースや市場分析を収集する
- 抄録作成:Newspaper4kを使って、検証された情報の簡潔な抄録を作成する。
- トレンド分析:ベンチャー資金調達、技術導入、市場機会の新たなモデルの特定
- フロントエンド・インターフェース:@streamlit
ユーザーフレンドリーなインタラクティブ・インターフェースの提供
システム・アーキテクチャは3つのエージェントで構成されている:
- ニュース収集:関連記事の検索と収集を担当
- サマリーライティング:記事内容を加工して要約する
- トレンド分析:サマリーの分析とトレンドの特定
実現のステップ:
- 環境のセットアップ:必要な依存関係のインストールとAPIキーの取得が含まれます。
- Streamlit アプリケーションの作成:ユーザーインターフェースの構築
- 3人のエージェントの機能を実装し、チームに統合する
- 分析ワークフローの実行と結果の提示
何を作るか
AIスタートアップ・トレンド分析エージェントは、新興起業家のために設計されたツールで、特定の分野における初期のトレンド、潜在的な市場ギャップ、成長機会を特定することで、実用的な洞察を生み出します。Newspaper4kとDuckDuckGoを組み合わせ、新興企業中心の記事や市場データをスキャンして分析します。Claude 3.5 Sonnetは、この情報を処理して新たなパターンを抽出し、起業家が有望なスタートアップの機会を特定するのを支援します。
官能性
- ユーザープロンプト起業家は、特定の起業分野や関心のある技術にエントリーして研究を行うことができる。
- ニュース・コレクションDuckDuckGoを通じて、最近の新興企業に関するニュース、資金調達の最新情報、市場分析などを収集しています。
- 抽象生成Newspaper4kを使って、検証された情報を簡潔にまとめましょう。
- トレンド分析新興企業の資金調達、技術導入、市場機会の動向を体系的に把握し、関連記事を分析。
- ストリームリット・インターフェイスこのアプリケーションは、Streamlitによって構築されたユーザーフレンドリーなインターフェイスを使用しています。
前提条件
作業を始める前に、以下のことをご確認ください:
- コンピュータにPythonをインストールする(3.7以上を推奨)
- 所有 Anthropic APIキー
- Pythonプログラミングの基本的な理解
- 好きなコードエディタを使う(PythonをよくサポートしているVS CodeかPyCharmをお勧めします)
ステップ・バイ・ステップ・ガイド
開発環境のセットアップ
まず、開発環境を整えよう:
- GitHubリポジトリをクローンする:
git clone https://github.com/Shubhamsaboo/awesome-llm-apps.git
- 入る AI_スタートアップ_トレンド分析エージェント フォルダー
cd ai_agent_tutorialss/ai_startup_trend_analysis_agent
- 取り付け 必要な依存関係::
pip install -r requirements.txt
- APIキーの取得: 登録 アンソロピック アカウントを作成し、APIキーを取得してください。
ストリームリット・アプリケーションの作成
アプリケーションを作成しよう。新規ファイル startup_trends_agent.py
そして以下のコードを追加する:
- 必要なライブラリをインポートする:
- ウェブアプリケーション構築用ストリームリット
- AIエージェントとツールの構築のために フィダータ
- 大規模言語モデリング クロード・ソネット3.5
- 検索のDuckDuckGo
- Newspaper4kによる記事処理
stとしてstreamlitをインポート
from phi.agent import エージェント
from phi.tools.duckduckgo import DuckDuckGo
from phi.model.anthropic import クロード
from phi.tools.newspaper4k import Newspaper4k
from phi.tools.import ツール
インポートログ
- Streamlitアプリケーションを作成する:
- シンプルで明快なインターフェース
- 安全なAPIキー入力
- テーマ別分析
# Streamlitアプリの設定
st.title("AIスタートアップ動向分析アシスタント📈")
st.caption("ワンクリックで興味のあるトピックに基づいた最新のトレンド分析とスタートアップの機会を得る")
topic = st.text_input("興味のあるスタートアップ分野を入力してください:")
anthropic_api_key = st.sidebar.text_input("Anthropic APIキーを入力してください", type="password")
if st.button("Generate Analysis"):: if not anthropic_api_key = st.sidebar.text_input("Enter Anthropic API key", type="password")
if not anthropic_api_key.
st.warning("必要なAPIキーを入力してください。")
else: st.spinnerで
with st.spinner("Processing your request..."):
try: #の初期化
# Anthropicモデルの初期化
anthropic_model = Claude(id = "claude-3-5-sonnet-20240620",api_key=anthropic_api_key)
- ニュース収集エージェントを作る:
- DuckDuckGoで検索
- 最新記事集
- 集中力を維持するため、結果は5件まで
# ニュース収集エージェントの定義 - DuckDuckGo検索ツールは、エージェントがウェブから情報を検索できるようにします。
search_tool = DuckDuckGo(search=True, news=True, fixed_max_results=5)
news_collector = エージェント(
name="news_collector"、
role="指定されたトピックに関する最新のニュース記事を収集する"、
tools=[search_tool]、
model=anthropic_model、
instructions=["Gather the latest articles on the topic"]、
show_tool_calls=True、
markdown=True、
)
- 要約生成エージェントを追加する:
- 記事内容の加工
- 簡潔な要約の作成
- 重要情報の保持
# 要約生成エージェントの定義
news_tool = Newspaper4k(read_article=True, include_summary=True)
summary_writer = エージェント(
name="Summary Generator"、
role="収集したニュース記事の要約を生成する"、
tools=[news_tool]、
model=anthropic_model、
instructions=["Provide a succinct summary of the article"]、
show_tool_calls=True、
markdown=True、
)
- トレンド分析エージェントを作成する:
- 要約の内容を分析する
- トレンドの把握
- 起業の機会を活用する
# トレンドアナライザーエージェントの定義
trend_analyzer = エージェント(
name="Trend Analyser"、
role="サマリーからのトレンド分析"、
model=anthropic_model、
instructions=["Intelligent emerging trends and potential entrepreneurial opportunities"]、
show_tool_calls=True、
markdown=True、
)
- エージェントをチームにまとめる:
- ワークフローの調整
- データフローの確保
- 文脈の一貫性を保つ
# Phidata用のマルチエージェント・チームのセットアップ:
agent_team = エージェント(
agent=[news_collector, summary_writer, trend_analyzer]、
指示=[
"まず、DuckDuckGoを使って、ユーザが指定したトピックに関連する最新のニュース記事を検索する。",
「次に、収集した記事のリンクを要約作成ツールに提供する。,
"重要:サマリージェネレーターがすべての記事リンクを確実に受け取ることが重要です。",
"次に、要約作成者は記事を読み、各記事について簡潔な要約を作成する。" , "要約作成者は、各記事について簡潔な要約を作成する。,
「要約後、要約はトレンドアナライザーに渡される。,
"最後に、Trend Analyserは、提供された要約に基づいて、新たなトレンドと潜在的な起業機会を特定し、詳細なレポートの形で提供する。" , "これにより、若い起業家であれば誰でも簡単に大きな価値を獲得することができる。" , 。
],.
show_tool_calls=True、
markdown=True。
)
- 分析ワークフローの実行
- 逐次処理
- データフローの確保
- ショーの結果
# ステップ1:ニュースの収集
news_response = news_collector.run(f "{topic}に関する最新のニュースを収集する")
articles = news_response.content
# ステップ2:記事を要約する
summary_response = summary_writer.run(f "以下の記事を要約してください。")
要約 = summary_response.content
# ステップ3:トレンドの分析
trend_response = trend_analyzer.run(f "以下の要約から傾向を分析する: ˶n{summaries}")
分析 = trend_response.content
# 結果を表示する - さらに使用する必要がある場合は、次の2行のコメントを解除してサマリーを取得できます!
# st.subheader("ニュースの要約")
# # st.write(サマリー)
st.subheader("Trend analysis and potential startup opportunities")
st.write(analysis)
except Exception as e.
st.error(f "エラーが発生しました:{e}")
else: st.error(f "エラーが発生しました:{e}")
st.info("トピックとAPIキーを入力し、"Generate Analysis "をクリックして開始します")
アプリケーションの実行
コードの準備ができたら、アプリケーションを起動する。
- ターミナルでプロジェクトフォルダーに移動し、以下のコマンドを実行する:
streamlit run startup_trends_agent.py
- StreamlitはローカルのURL(通常はhttp://localhost:8501)を提供する。ブラウザでそのURLを開き、APIキーを入力し、探検したいエリアを選択すれば、AIエージェントがあなたの代わりに調査してくれる。
実用アプリケーションのデモンストレーション
概要
50行以下のコードで、AIエージェントは起業家にトレンド分析のための実用的な洞察を提供する準備が整います。
さらに機能性を高めるために、以下の点を考慮することができる:
- ビジュアライゼーショントレンドはグラフ化され、より明確で実用的なモデルとなっている。
- データのフィルタリング地理的な場所、資金規模、技術タイプに基づいてユーザーが洞察を絞り込めるよう、高度なフィルターを追加。
- コーディネーションインサイトをより深く活用するために、アプリ内での共有やチームでのディスカッション機能を有効にする。
よりスマートなAIソリューションを構築するために、絶えず実験と改善を繰り返す!