Upsonicサンプル：Upsonicを使用したAIニュース分析の実装解説

## Upsonicとは

Upsonicは、企業向けのLLM（大規模言語モデル）オーケストレーションフレームワークです。以下の特徴を持っています：

<blockquote class="twitter-tweet" data-media-max-width="800"><p lang="ja" dir="ltr">📢 UpsonicというAIエージェントフレームワークについて詳しく解説していきます！<br><br>1️⃣ Upsonicとは？<br>・エンタープライズ向けのLLMオーケストレーションフレームワーク<br>・タスク指向のアーキテクチャを採用<br>・AWS、GCP、ローカル環境でのデプロイに対応<br>・コスト効率の高いタスク実行が可能 <a href="https://t.co/xAj8W8Ighl">https://t.co/xAj8W8Ighl</a></p>&mdash; Maki@Sunwood AI Labs. (@hAru_mAki_ch) <a href="https://twitter.com/hAru_mAki_ch/status/1882783279260279150?ref_src=twsrc%5Etfw">January 24, 2025</a></blockquote> 

### 主要な特徴

1. **Production-Ready設計**
   - AWS、GCP、またはDockerを使用したローカル環境での展開が可能
   - ステートレスな企業向けアーキテクチャ

2. **タスク中心の設計**
   - 基本的なLLM呼び出し
   - V1エージェントによる高度なタスク
   - MCPを統合したV2エージェントによる複雑な自動化

3. **統合機能**
   - MCPサーバーサポート（マルチクライアント処理）
   - ツール呼び出しサーバー
   - Computer Use統合（Anthropicの機能を使用）

## サンプルコードの基本構造

<blockquote class="twitter-tweet" data-media-max-width="800"><p lang="ja" dir="ltr">📢 UpsonicというAIエージェントフレームワークを触ってみる②<br>claude-3-5-sonnet なら無事に動いた！！！<br>まずは基本的なニュースまとめエージェントを作成しました！ <a href="https://t.co/8idTONRlKX">https://t.co/8idTONRlKX</a> <a href="https://t.co/mMoOEkfHrf">pic.twitter.com/mMoOEkfHrf</a></p>&mdash; Maki@Sunwood AI Labs. (@hAru_mAki_ch) <a href="https://twitter.com/hAru_mAki_ch/status/1885332813748351344?ref_src=twsrc%5Etfw">January 31, 2025</a></blockquote> 


```python
from upsonic import UpsonicClient, Task, AgentConfiguration
from upsonic.client.tools import Search

# クライアント設定
client = UpsonicClient("localserver")
client.set_config("ANTHROPIC_API_KEY", api_key)
client.default_llm_model = "claude/claude-3-5-sonnet"

# タスクとエージェントの定義
task = Task(description="AnthropicとOpenAIの最新ニュースを調査する", tools=[Search])
product_manager_agent = AgentConfiguration(
    job_title="プロダクトマネージャー",
    company_url="https://upsonic.ai",
    company_objective="人々がタスクを完了するのを助けるAIエージェントフレームワークを構築する",
)
```

## 処理フローの詳細

### Step 1: サーバー接続の確立
```log
╭─────────────── Upsonic - Server Connection ────────────────╮
│  Server Type:                  Local(LocalServer)          │
│  Connection Status:            ✓ Established               │
╰────────────────────────────────────────────────────────────╯
```
- ローカルサーバーに接続
- APIキーの設定を確認

### Step 2: 企業情報の分析
```log
╭────────────────── Upsonic - Call Result ─────────────────╮
│  LLM Model:          claude/claude-3-5-sonnet            │
│  Company Objective:  Enterprise AI市場での展開           │
│  Estimated Cost:     ~0.0045$                            │
│  Time Taken:         4.34 seconds                        │
╰──────────────────────────────────────────────────────────╯
```
- エージェントが会社の目的と文脈を理解
- プロダクトマネージャーとしての視点を設定

### Step 3: タスクの分解
```log
╭────────────────── Upsonic - Call Result ─────────────────╮
│  Total Subtasks:   3                                     │
│  Subtask 1:        Anthropicニュース検索                 │
│  Subtask 2:        OpenAIニュース検索                    │
│  Subtask 3:        比較分析                             │
│  Time Taken:       6.16 seconds                         │
╰──────────────────────────────────────────────────────────╯
```
- メインタスクを3つのサブタスクに分解
- 各サブタスクに必要なツールを割り当て

### Step 4: ニュース収集と分析
#### Anthropicニュース分析:
```log
╭────────────────── Upsonic - Agent Result ────────────────╮
│  Result:           Anthropicの最新動向:                  │
│                    - Claude 3の発表                      │
│                    - 新機能の追加                       │
│  Time Taken:       26.05 seconds                        │
╰──────────────────────────────────────────────────────────╯
```

#### OpenAIニュース分析:
```log
╭────────────────── Upsonic - Agent Result ────────────────╮
│  Result:           OpenAIの最新動向:                     │
│                    - GPT-4の更新                         │
│                    - 新サービスの展開                    │
│  Time Taken:       40.64 seconds                        │
╰──────────────────────────────────────────────────────────╯
```

### Step 5: 最終レポート生成
```log
╭────────────────── Upsonic - Agent Total Cost ────────────╮
│  Estimated Cost:                ~0.1825$                 │
│  Total Time Taken:              101.44 seconds          │
╰──────────────────────────────────────────────────────────╯
```

## パフォーマンス分析

### 処理時間の内訳
1. 企業情報分析: 4.34秒
2. タスク分解: 6.16秒
3. Anthropic分析: 26.05秒
4. OpenAI分析: 40.64秒
5. レポート生成: 17.73秒

### コストの内訳
- 企業情報: $0.0045
- タスク分解: $0.0068
- Anthropic分析: $0.0418
- OpenAI分析: $0.1096
- レポート生成: $0.0145
- 総コスト: $0.1825

## 主な特徴

1. **自動化されたワークフロー**
   - タスクの自動分解
   - 並行した情報収集
   - 構造化されたレポート生成

2. **コスト効率**
   - 必要な情報のみを収集
   - 効率的なAPI利用
   - リアルタイムのコスト追跡

3. **品質管理**
   - プロダクトマネージャーの視点での分析
   - 一貫した情報の構造化
   - 詳細なログ記録

このサンプルは、Upsonicを使用して複雑なニュース分析タスクを自動化する方法を示しており、企業のAI実装における実践的な例となっています。

## リポジトリ

https://github.com/Sunwood-ai-labs/upsonic-sample-001-news-digest-analyzer


## 📚 参考資料

- [Upsonic 公式ドキュメント](https://upsonic.ai)
- [python-dotenv ドキュメント](https://github.com/theskumar/python-dotenv)

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