Shubhamsaboo/awesome-llm-apps

⭐ 53,098 🍴 6,188 Python📄 Apache License 2.0 GitHubで見る →

主な特徴

  • 70以上の実装済みLLMアプリケーションプロジェクト
  • 段階的な学習が可能な構成(Starter → Advanced → Multi-agent)
  • 複数のLLMプロバイダーのサポート(OpenAI、Anthropic、Google、オープンソース)
  • 実用的なユースケース(旅行計画、金融分析、医療画像解析、ゲームプレイ等)
  • Model Context Protocol (MCP)を使用した最新の実装例
  • ボイスエージェントによる音声インタラクション機能
  • RAGパターンの包括的なチュートリアル(基本から高度な実装まで)
  • メモリ機能を持つLLMアプリケーションの実装例
  • ローカルとクラウドの両方での実行をサポート

リポジトリ解析: Shubhamsaboo/awesome-llm-apps

基本情報

  • リポジトリ名: Shubhamsaboo/awesome-llm-apps
  • 主要言語: Python
  • スター数: 53,098
  • フォーク数: 6,188
  • 最終更新: アクティブに更新中
  • ライセンス: Apache License 2.0
  • トピックス: LLM Apps, RAG, AI Agents, Multi-agent Teams, MCP, Voice Agents, OpenAI, Anthropic, Google, DeepSeek, Qwen, Llama

概要

一言で言うと

RAG、AIエージェント、マルチエージェントチーム、MCP、ボイスエージェントなどを使用して構築されたLLMアプリケーションの包括的なコレクション。OpenAI、Anthropic、Google、およびローカルで実行可能なオープンソースモデルを活用したプロジェクト集。

詳細説明

このリポジトリは、LLMを活用したアプリケーションの実装例を網羅的に集めたもので、初心者から上級者まで幅広いレベルの開発者が活用できるリソースです。各プロジェクトは明確にカテゴリー分けされており、スターターレベルからエンタープライズレベルまでの実装例が含まれています。特に、実用的なAIエージェントの実装、RAGパターンの活用、マルチエージェントシステムの構築など、最新のAI技術トレンドを網羅しています。

主な特徴

  • 70以上の実装済みLLMアプリケーションプロジェクト
  • 段階的な学習が可能な構成(Starter → Advanced → Multi-agent)
  • 複数のLLMプロバイダーのサポート(OpenAI、Anthropic、Google、オープンソース)
  • 実用的なユースケース(旅行計画、金融分析、医療画像解析、ゲームプレイ等)
  • Model Context Protocol (MCP)を使用した最新の実装例
  • ボイスエージェントによる音声インタラクション機能
  • RAGパターンの包括的なチュートリアル(基本から高度な実装まで)
  • メモリ機能を持つLLMアプリケーションの実装例
  • ローカルとクラウドの両方での実行をサポート

使用方法

インストール

前提条件

  • Python 3.8以上
  • Node.js(MCPエージェントを使用する場合)
  • 各LLMプロバイダーのAPIキー(OpenAI、Anthropic、Google等)
  • SerpAPI(Web検索機能を使用する場合)
  • Git

インストール手順

# リポジトリのクローン
git clone https://github.com/Shubhamsaboo/awesome-llm-apps.git
cd awesome-llm-apps

# 使用したいプロジェクトに移動(例:AI Travel Agent)
cd starter_ai_agents/ai_travel_agent

# 必要な依存関係のインストール
pip install -r requirements.txt

基本的な使い方

Hello World相当の例(AI Travel Agent)

# travel_agent.py の基本実行
import streamlit as st
from agno.agent import Agent
from agno.models.openai import OpenAIChat

# APIキーの設定
openai_api_key = "your-api-key"

# シンプルなエージェントの作成
agent = Agent(
    name="Simple Travel Agent",
    role="Travel planning assistant",
    model=OpenAIChat(id="gpt-4o", api_key=openai_api_key),
    instructions=["Help users plan their trips"]
)

# Streamlitアプリの実行
streamlit run travel_agent.py

実践的な使用例(RAG Chain)

# PDFファイルを使用したRAGの実装
from langchain_google_genai import GoogleGenerativeAIEmbeddings
from langchain_chroma import Chroma
from langchain_community.document_loaders import PyPDFLoader

# エンベディングモデルの初期化
embedding_model = GoogleGenerativeAIEmbeddings(model="models/embedding-001")

# ベクトルデータベースの作成
db = Chroma(
    collection_name="my_knowledge_base",
    embedding_function=embedding_model,
    persist_directory='./my_db'
)

# PDFファイルの読み込みと処理
loader = PyPDFLoader("document.pdf")
docs = loader.load()
db.add_documents(docs)

# 質問応答の実行
results = db.similarity_search("What is the main topic?")

高度な使い方(マルチエージェントチーム)

# AI Finance Agent Teamの実装例
from crewai import Agent, Task, Crew

# 複数の専門エージェントの作成
market_analyst = Agent(
    role='Market Research Analyst',
    goal='Analyze market trends and provide insights',
    backstory='Expert in financial markets with 10 years experience'
)

financial_advisor = Agent(
    role='Financial Advisor',
    goal='Provide personalized investment recommendations',
    backstory='Certified financial planner specializing in portfolio management'
)

risk_manager = Agent(
    role='Risk Assessment Specialist',
    goal='Evaluate and mitigate investment risks',
    backstory='Risk management expert with quantitative analysis skills'
)

# チームの構成とタスクの実行
crew = Crew(
    agents=[market_analyst, financial_advisor, risk_manager],
    tasks=[market_analysis_task, recommendation_task, risk_assessment_task]
)

result = crew.kickoff()

ドキュメント・リソース

公式ドキュメント

  • README.md: プロジェクト全体の概要、70以上のプロジェクトリストと説明
  • 各プロジェクトのREADME: 個別プロジェクトの詳細な実装手順とAPI設定方法
  • Unwind AI サイト: https://www.theunwindai.com (追加のチュートリアルとリソース)

サンプル・デモ

  • starter_ai_agents/: 初心者向けの14個のAIエージェント実装例
  • advanced_ai_agents/: 上級者向けの単一エージェントとマルチエージェントの実装
  • rag_tutorials/: 16種類のRAGパターンの実装例(基本から高度な実装まで)
  • voice_ai_agents/: 音声対応エージェントの実装例
  • mcp_ai_agents/: Model Context Protocolを使用した最新の実装例

チュートリアル・ガイド

  • AI Agent Framework Crash Course(基礎から学べるフレームワーク講座)
  • 各プロジェクトディレクトリ内の個別README(ステップバイステップの実装ガイド)
  • LLMメモリ管理チュートリアル(6種類のメモリパターン実装)
  • Chat with X シリーズ(GitHub、Gmail、PDF、YouTube等との対話実装)
  • ファインチューニングチュートリアル(Llama 3.2の例)

技術的詳細

アーキテクチャ

全体構造

このリポジトリは、複数の独立したプロジェクトを体系的に整理したモノレポ構造を採用しています。各プロジェクトは自己完結型で、独自の依存関係とREADMEを持ち、特定のユースケースや技術パターンを実装しています。プロジェクトは難易度と機能によってカテゴリー分けされており、学習パスとして活用できます。

ディレクトリ構成

awesome-llm-apps/
├── starter_ai_agents/          # 初心者向けAIエージェント(14プロジェクト)
│   ├── ai_travel_agent/        # 旅行計画エージェント
│   ├── ai_data_analysis_agent/ # データ分析エージェント
│   ├── ai_music_generator/     # 音楽生成エージェント
│   └── ...                     # その他の基本エージェント
├── advanced_ai_agents/         # 上級AIエージェント
│   ├── single_agent_apps/      # 単一エージェントアプリ(12プロジェクト)
│   ├── multi_agent_apps/       # マルチエージェントアプリ
│   │   ├── agent_teams/        # エージェントチーム(9プロジェクト)
│   │   └── ...                 # その他のマルチエージェント
│   └── autonomous_game_playing_agent_apps/ # ゲームプレイエージェント
├── rag_tutorials/              # RAGチュートリアル(16種類)
│   ├── rag_chain/              # 基本的なRAGチェーン
│   ├── agentic_rag/            # エージェント型RAG
│   ├── corrective_rag/         # 修正型RAG(CRAG)
│   └── ...                     # その他のRAGパターン
├── voice_ai_agents/            # 音声AIエージェント(3プロジェクト)
├── mcp_ai_agents/              # MCPエージェント(4プロジェクト)
├── advanced_llm_apps/          # 高度なLLMアプリ
│   ├── chat_with_X_tutorials/  # Chat with Xシリーズ
│   ├── llm_apps_with_memory/   # メモリ機能付きアプリ
│   └── llm_finetuning/         # ファインチューニング
└── docs/                       # ドキュメントとリソース

主要コンポーネント

  • Agno Framework: エージェント構築のための高レベルフレームワーク

    • 場所: 各エージェントプロジェクトで使用
    • 依存: OpenAI、Anthropic等のLLMプロバイダー
    • インターフェース: Agent、Tool、Model等のクラス
  • LangChain Integration: RAGと高度なLLMアプリケーション構築

    • 場所: RAGチュートリアル、Chat with Xシリーズ
    • 依存: langchain、langchain-community、各種エンベディングモデル
    • インターフェース: チェーン、プロンプト、ローダー、スプリッター
  • CrewAI Framework: マルチエージェントチームの調整

    • 場所: advanced_ai_agents/multi_agent_apps/agent_teams/
    • 依存: crewai、各LLMプロバイダー
    • インターフェース: Agent、Task、Crew、Process
  • Streamlit UI: ユーザーインターフェース構築

    • 場所: ほぼすべてのプロジェクトで使用
    • 依存: streamlit
    • インターフェース: st.title、st.text_input、st.button等
  • MCP Server: Model Context Protocolサーバー

    • 場所: mcp_ai_agents/
    • 依存: Node.js、npm、mcp-sdk
    • インターフェース: MCPクライアント、ツール定義

技術スタック

コア技術

  • 言語: Python 3.8+(型ヒント、async/await、データクラス等を活用)
  • フレームワーク:
    • Agno: エージェント構築の抽象化レイヤー
    • LangChain: LLMアプリケーション開発フレームワーク
    • CrewAI: マルチエージェント協調フレームワーク
    • Streamlit: インタラクティブWebアプリケーション
  • 主要ライブラリ:
    • openai: OpenAI APIクライアント
    • anthropic: Claude APIクライアント
    • google-generativeai: Gemini APIクライアント
    • chromadb: ベクトルデータベース
    • langchain-community: コミュニティ統合
    • serpapi: Web検索API統合
    • browseruse: ブラウザ自動化
    • elevenlabs: 音声合成

開発・運用ツール

  • パッケージ管理: pip、requirements.txt(プロジェクトごとに独立)
  • 環境管理: Python仮想環境推奨
  • APIキー管理: 環境変数、Streamlit secrets、直接入力
  • デプロイ:
    • ローカル実行(streamlit run)
    • Streamlit Community Cloud対応
    • Docker対応(一部プロジェクト)

設計パターン・手法

  • エージェントパターン: 自律的なタスク実行と意思決定
  • RAGパターン: 知識ベースからの情報検索と生成の組み合わせ
  • チェーンオブレスポンシビリティ: LangChainによる処理の連鎖
  • オーケストレーションパターン: CrewAIによるマルチエージェント調整
  • ツール使用パターン: 外部API、検索、計算等の機能統合
  • メモリパターン: 会話履歴、パーソナライゼーション、状態管理

データフロー・処理フロー

  1. ユーザー入力: StreamlitまたはCLIインターフェースから
  2. 前処理: 入力の検証、フォーマット、コンテキスト追加
  3. エージェント処理:
    • 単一エージェント: 直接LLM呼び出しまたはツール使用
    • マルチエージェント: タスク分解、役割分担、協調実行
    • RAG: ベクトル検索、コンテキスト取得、拡張生成
  4. ツール実行: 必要に応じて外部API、検索、計算等
  5. 後処理: 結果の整形、フィルタリング、検証
  6. 出力: Streamlit UI、音声、ファイル等での結果表示

API・インターフェース

公開API

エージェント作成API (Agno)

  • 目的: カスタムAIエージェントの作成と設定
  • 使用例:
from agno.agent import Agent
from agno.models.openai import OpenAIChat

agent = Agent(
    name="CustomAgent",
    role="Your agent role",
    model=OpenAIChat(id="gpt-4o", api_key=api_key),
    instructions=["Instruction 1", "Instruction 2"],
    tools=[YourCustomTool()],
    add_datetime_to_instructions=True
)

response = agent.run("Your query here")

RAG Chain API (LangChain)

  • 目的: ドキュメントベースの質問応答システム構築
  • 使用例:
from langchain.chains import RetrievalQA

qa_chain = RetrievalQA.from_chain_type(
    llm=llm,
    retriever=vectorstore.as_retriever(),
    chain_type="stuff"
)

result = qa_chain.run("Your question")

設定・カスタマイズ

環境変数設定

# APIキーの設定
export OPENAI_API_KEY="your-key"
export ANTHROPIC_API_KEY="your-key"
export GOOGLE_API_KEY="your-key"
export SERP_API_KEY="your-key"

Streamlit設定

# .streamlit/config.toml
[theme]
primaryColor = "#FF6B6B"
backgroundColor = "#FFFFFF"
secondaryBackgroundColor = "#F0F2F6"
textColor = "#262730"

拡張・プラグイン開発

  • カスタムツールの作成: Agno Toolクラスを継承
  • カスタムエージェントの作成: Agent基底クラスを拡張
  • カスタムチェーンの作成: LangChainのChainクラスを継承
  • MCPサーバーの追加: Node.jsでMCPプロトコルを実装

パフォーマンス・スケーラビリティ

パフォーマンス特性

  • レスポンス時間: LLM APIの遅延に依存(通常1-10秒)
  • ベクトル検索: ChromaDBで数千〜数万文書を高速検索可能
  • 並行処理: マルチエージェントシステムで並列タスク実行
  • ストリーミング: 多くのプロジェクトでストリーミングレスポンス対応

スケーラビリティ

  • 水平スケーリング: Streamlitアプリの複数インスタンス起動
  • ベクトルDB: ChromaDB、Pinecone等でのスケールアウト
  • API制限: レート制限に対応した再試行メカニズム
  • キャッシング: Streamlitのキャッシュ機能活用

制限事項

  • APIコスト: 大規模使用時のLLM APIコストに注意
  • コンテキスト長: 各LLMモデルのトークン制限
  • 並行ユーザー数: Streamlit Community Cloudの制限
  • ローカルモデル: GPU/メモリ要件(Llama、DeepSeek等)

評価・所感

技術的評価

強み

  • 包括的なプロジェクトコレクション:70以上の実装例で幅広いユースケースをカバー
  • 段階的学習パス:初心者から上級者まで体系的に学習可能
  • 実用的な実装:理論だけでなく実際に動作するアプリケーション
  • 最新技術の採用:MCP、マルチエージェント、高度なRAGパターン等
  • 複数LLMプロバイダー対応:ベンダーロックインを回避
  • アクティブなメンテナンス:定期的な更新と新プロジェクトの追加

改善の余地

  • 統一的なテストフレームワークの欠如
  • プロジェクト間の依存関係管理の改善
  • より詳細なパフォーマンスベンチマーク
  • エンタープライズ向けのセキュリティ考慮事項の文書化

向いている用途

  • LLMアプリケーション開発の学習と実験
  • プロトタイプ開発の出発点
  • 特定のユースケースのリファレンス実装
  • AIエージェントシステムの構築方法の理解
  • RAGパターンの実装方法の習得

向いていない用途

  • そのままのプロダクション利用(追加のセキュリティ・エラーハンドリングが必要)
  • 大規模エンタープライズシステムの直接的な実装
  • リアルタイムクリティカルなアプリケーション

総評

このリポジトリは、LLMアプリケーション開発の優れた学習リソースであり、実用的な実装例の宝庫です。特に、段階的に複雑さが増すプロジェクト構成により、開発者は自分のレベルに合わせて学習を進められます。最新のAI技術トレンドを反映した実装例が豊富で、実際のプロジェクトの出発点として非常に有用です。ただし、プロダクション利用には追加の考慮事項が必要であり、あくまで学習・プロトタイプ開発のためのリソースとして位置づけるべきでしょう。