Praison AI 入門ガイド

## インストール方法

Praison AIは以下の方法で簡単にインストールできます：

```bash
pip install praisonai
```

特定の機能を使用する場合は、以下のようにインストールします：

- UI機能を使用する場合: `pip install "praisonai[ui]"`
- チャット機能を使用する場合: `pip install "praisonai[chat]"`
- リアルタイム機能を使用する場合: `pip install "praisonai[realtime]"`

## 基本的な使い方

### UIモードの起動

<blockquote class="twitter-tweet" data-media-max-width="800"><p lang="ja" dir="ltr">🧵オープンソースAIエージェントフレームワーク「PraisonAI」を使って、映画制作エージェントをやってみた！！！<br>なんか色々と動いているが。。。これはマジでタスク管理や進捗管理が必要。。。 <a href="https://t.co/cppVf9vUyf">https://t.co/cppVf9vUyf</a> <a href="https://t.co/2yV714gHnZ">pic.twitter.com/2yV714gHnZ</a></p>&mdash; Maki@Sunwood AI Labs. (@hAru_mAki_ch) <a href="https://twitter.com/hAru_mAki_ch/status/1875842467943367140?ref_src=twsrc%5Etfw">January 5, 2025</a></blockquote>

Praison AIのウェブインターフェースを起動するには：

```bash
praisonai ui
```

デフォルトでポート8082で起動します。

### チャットモードの起動

チャットインターフェースを使用する場合：

```bash
praisonai chat
```

## エージェントの設定

Praison AIは`agents.yaml`ファイルを使用してエージェントを設定できます。以下に具体的な例を示します。

### 映画制作エージェントの例

```yaml
framework: praisonai
process: sequential
topic: 火星に住む猫の映画脚本作成
roles:
  researcher:
    backstory: 科学と動物行動学の専門知識を持つ研究者
    goal: 火星環境と猫の生態について詳細な情報を収集する
    role: Researcher
    min_reflect: 1
    max_reflect: 2
    tasks:
      research_task:
        description: |
          - 火星の環境（大気、気温、重力など）について調査
          - 猫の生理学的特徴と行動パターンの研究
          - 宇宙での生物の生存に関する既存の研究データの収集
        expected_output: 火星環境と猫の生態に関する詳細なレポート
    tools:
      - search_tool
      - wikipedia_tool

  story_designer:
    backstory: 創造的なストーリーテリングのエキスパート
    goal: 科学的な正確さと面白さを兼ね備えたストーリーを作成
    role: Story Designer
    tasks:
      story_development:
        description: |
          - 研究データを基にしたユニークなストーリーラインの作成
          - 主人公の猫のキャラクター設定
          - 火星での冒険要素の構築
        expected_output: |
          - 物語の概要
          - キャラクター設定
          - プロットの展開
    tools:
      - text_generation_tool

  scriptwriter:
    backstory: 映画脚本の執筆経験が豊富な脚本家
    goal: 魅力的な映画脚本を作成する
    role: Scriptwriter
    tasks:
      script_creation:
        description: |
          - ストーリーを映画脚本形式に変換
          - 効果的なダイアログの作成
          - シーンの詳細な描写
        expected_output: 完成した映画脚本（シーン、ダイアログ、ト書きを含む）
    tools:
      - writing_assistant_tool

dependencies:
  - story_designer: [researcher]  # ストーリー作成は研究結果に依存
  - scriptwriter: [story_designer]  # 脚本執筆はストーリー設計に依存
```

### エージェント設定の要素説明

1. **基本設定**
   - `framework`: 使用するフレームワーク（praisonai）
   - `process`: 処理の順序（sequential: 順次実行）
   - `topic`: プロジェクトのテーマ

2. **各役割（role）の設定**
   - `backstory`: エージェントの背景設定
   - `goal`: 達成すべき目標
   - `min_reflect`/`max_reflect`: 振り返りの回数設定
   - `tasks`: 具体的なタスク内容
   - `tools`: 使用するツール

3. **タスク（task）の設定**
   - `description`: タスクの詳細な説明
   - `expected_output`: 期待される成果物

4. **依存関係（dependencies）**
   - 各エージェントの作業順序を定義
   - 例：脚本家は物語作家の成果物に基づいて作業を行う

## 対応しているモデル

Praison AIは以下の主要なAIモデルに対応しています：

- OpenAI
- Groq
- Google Gemini
- Anthropic Claude
- Cohere
- Mistral
- Ollama
など

## 利用可能なツール

Praison AIには以下のような便利なツールが組み込まれています：

- DuckDuckGo検索
- Wikipedia検索
- YouTube情報取得
- Reddit情報取得
- ウェブクローリング
- Google Calendar連携

## Dockerでの実行

Docker環境でPraison AIを実行する場合は、提供されているDocker Composeファイルを使用できます：

<blockquote class="twitter-tweet" data-media-max-width="560"><p lang="ja" dir="ltr">🧵オープンソースAIエージェントフレームワーク「PraisonAI」を使って、映画制作エージェントをやってみた②<br>Dockerでも無事に起動できた！！！ <a href="https://t.co/lBqaE34IZs">https://t.co/lBqaE34IZs</a> <a href="https://t.co/y1MP4zUWw0">pic.twitter.com/y1MP4zUWw0</a></p>&mdash; Maki@Sunwood AI Labs. (@hAru_mAki_ch) <a href="https://twitter.com/hAru_mAki_ch/status/1875857551356743915?ref_src=twsrc%5Etfw">January 5, 2025</a></blockquote> 

```bash
docker-compose up
```

これにより、必要な環境変数を設定した状態でUIが起動します。

## 応用例

簡単なPythonスクリプトでPraison AIを使用する例：

```python
from praisonai import PraisonAI

# エージェントファイルを指定して初期化
praisonai = PraisonAI(agent_file="agents.yaml")

# 実行
result = praisonai.run()
```

## まとめ

Praison AIは柔軟で強力なAIフレームワークで、様々なユースケースに対応できます。UIモード、チャットモード、APIモードなど、用途に応じて適切な使用方法を選択できます。また、様々なAIモデルやツールに対応しているため、プロジェクトのニーズに合わせて最適な構成を選択できます。


## リポジトリ

https://github.com/Sunwood-ai-labs/PraisonAI-sandbox


<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>