🤖 Azure OpenAI o1-preview をPythonを使ってAPI経由で活用して日常業務の質を高める📈

# 🤖 Azure OpenAI o1-preview をPythonを使ってAPI経由で活用して日常業務の質を高める📈

:::note info
本アカウントは、Azure OpenAIやAnthropic Claude、Google VertexAI GeminiなどのGenerative AIを活用して日々の業務生産性を向上させたい方向けの内容が多いです。
特に、業界・業種・学生などを問わずおすすめです。🎯
:::

## 👤 著者プロフィール
| 項目 | 詳細 |
|:--|:--|
| 使用デバイス | 主にMac |
| 業務内容 | IT営業（提案書作成、製品デモ制作） |

## 🤔 よくある課題

皆さんも日々の業務で以下のような経験はありませんか？

- GPT 4oやClaude 3.5 Sonnet、Gemini-1.5-Pro-002などのモデルは確かに優秀で活用できるけど、ここぞという思考を要する質問に対する回答があと一歩という感じ
- o1-previewを利用したいけど、ChatGPTに課金する程でも無いし、課金しても回数制限があるのは嫌
- o1-previewを自家製アプリやTerminal/コマンドプロンプトからサクッと利用したい

## 💡 解決策

私が採用しているのは、**Azure OpenAI o1-preview**をPythonを使ってAPI経由で活用しています。


### なぜAzure OpenAI o1-preview？

<summary>選定理由 📋</summary>

- **Azure採用理由**: 会社契約のAPIが利用可能
- **o1-preview採用理由**: 顧客向け提案や学習内容の深い理解を行う際に、確率ベースの浅い回答になりやすい通常のモデルと比較して深く芯を突いた回答や示唆を得ることができる（個人的に、、、）
- Claude 3.5 Sonnet (20241022)やGemini-Exp-1121など新しいモデルバージョンの追い上げもあるが、9月バージョンのモデルでもChatbot Arena LLM Leaderboardで首位である（LLMモデルのバージョンで1~2ヶ月過去のものが首位にあることに感動した）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214013/02fc2c20-c4dc-0bfc-cb12-46f637e78f93.png)


## 🛠 実装方法

### システムの流れ

1. [Azure AI Foundry | Azure OpenAI Service] にある[Shared resouces]に含まれる[Deployments]を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214013/59038237-a077-42b8-6faf-d7986e0c1d25.png)

2. [+ Deploy model]から[Deploy base model]を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214013/7d9c70e3-6468-573b-ad51-6690091df911.png)

3. [o1-preview]を選択して[Confirm]を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214013/42e41a20-46cc-765f-59f8-d3adb1c3597f.png)

4. [Deployment name]を入力のうえ内容を確認して[Deploy]を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214013/9ee08ac4-7fe1-cb8d-31f3-3a4af765ee82.png)

5. Pythonコードを作成して利用（コードは下記）

### コード実装
（環境変数は本来ベタ打ちしないですが、サンプル用に記載してます）

```python:Python（プロンプトはサンプル）
import os
from openai import AzureOpenAI

client = AzureOpenAI(
  azure_endpoint = "---ここにAPIエンドポイントを入れてください---",
  api_key="---ここにAPIキーを入れてください---",
  api_version="2024-08-01-preview"
)

assistant_prompt = """
ユーザーの要件を満たす出力を日本語で示してください。
また、マークダウン形式に対応していないのでプレーンテキストで最大限読みやすいレイアウトやデザインを工夫してください。
"""

user_prompt = """
ディスクリート製造業に特化したオンプレミス型CRMおよびERPシステムのユーザーに対し、AzureまたはAWSベースのクラウド移行プロジェクトを提案してください。この提案書では、以下を明確に示してください。：
1. オンプレミスとクラウドベースの比較分析
従来のオンプレミス型システムの利点と課題
クラウドベースシステムの利点と課題
製造業特有のニーズ（例：リアルタイムデータ処理、製造プロセスの統合など）における違いの解説
2. AzureとAWSの詳細な比較
Azure: ディスクリート製造業向けの主なサービスとその強み（例：IoT Hub、Machine Learning Studio）
AWS: 同じく製造業向けの主なサービスとその強み（例：IoT Core、SageMaker）
両プラットフォームの費用構造や拡張性の違いを比較
セキュリティおよびコンプライアンス（例：ISO、GDPR）における対応力の評価
3. ハイブリッド戦略の可能性
オンプレミスとクラウドのハイブリッドアプローチの利点と課題
ハイブリッド戦略が有効となるシナリオの具体例（例：一部の重要データをオンプレミスに維持）
ハイブリッド実装時の推奨アーキテクチャ例
4. 実装までのスケジュール提案
要件定義、設計、移行、テスト、本番稼働までの主なフェーズを含むロードマップ
各フェーズに必要な期間（例：要件定義1ヶ月、移行3ヶ月など）
リスクとその軽減策を含むスケジュール管理の注意点
5. 必要なアクションとステークホルダー
開発側（弊社）と顧客側で必要なアクションの具体例
プロジェクト成功のために必要なステークホルダー（例：ITマネージャー、製造現場リーダー、経営層）の役割定義
6. 工数と見積もり概要
見積もりのための労力・工数の概要表を作成
各作業項目（要件定義、開発、移行、テストなど）ごとの労力時間とコストの概算
AzureとAWSそれぞれの利用料金試算と比較
結果として作成される提案書が、製造業特有の要件を反映した包括的なものであることを目指してください。
"""

response = client.chat.completions.create(
    model="o1-preview", # model = "deployment_name".
    messages = [
        {"role": "assistant", "content": assistant_prompt},
        {"role": "user", "content": user_prompt}
    ]
)

print(response.choices[0].message.content)
```

## 📸 出力イメージ
（長いので記事の一番下にテキストをベタ貼りしてます）
うまくできました‼️
やっぱり詳細に要件を満たす内容を出力してくれています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214013/c58494a6-19db-d852-2b18-fce5defe09b5.png)

## 🔥 活用のコツ

1. **外部アプリ/サービス連携**: Pythonを活用してAPI経由で呼び出せるので、Input/Outputを他の既存アプリやサービスと連携してサービス体験を拡張できる 🔀
2. **エイリアス設定**: `python sample.py`などをショートカット化 ⌨️
3. **プロンプト設計**: 体感ですが、詳細な要件や振り返り事項、期待する出力形式を記載することで、しっかり命令を反映してくれています。他のモデルだと特に重要なものを反映するだけだったり、出力量をサボる傾向がある 📝


## ⚠️ 注意点

:::note warn
- Azure OpenAIの環境設定は別途必要です
- 社内のセキュリティポリシーに準拠したAPI利用を心がけましょう
- あと普通に他のモデルに比べてAPI利用料が高いので乱用は注意！（GPT-4o miniなどとユースケースを棲み分けましょう）
:::


## 🎉 まとめ
Azure OpenAI o1-previewは、高度なAI機能を必要とする業務に最適なソリューションです。
適切な実装と利用戦略により、以下のメリットが得られます：
- 業務プロセスの効率化
- より深い分析と洞察の獲得
- スケーラブルなAIソリューションの構築

#### ぜひ皆様の業務効率化にお役立てください！ 🙌

#### 上記Python出力テキストのベタ貼り 🖼️
```出力内容:出力内容
*********************************************************************************************
**ディスクリート製造業向けオンプレミス型CRMおよびERPシステムのクラウド移行提案書**

*********************************************************************************************

お客様各位、

この度は、弊社のクラウド移行サービスにご関心をお寄せいただき、誠にありがとうございます。本提案書では、AzureまたはAWSをベースとしたクラウド移行プロジェクトについて、製造業特有の要件を踏まえた包括的なご提案をさせていただきます。

---------------------------------------------------------------------------------------------
**目次**

1. オンプレミスとクラウドベースの比較分析
2. AzureとAWSの詳細な比較
3. ハイブリッド戦略の可能性
4. 実装までのスケジュール提案
5. 必要なアクションとステークホルダー
6. 工数と見積もり概要

---------------------------------------------------------------------------------------------
**1. オンプレミスとクラウドベースの比較分析**

**1.1 従来のオンプレミス型システムの利点と課題**

*利点:*

- **カスタマイズ性の高さ**：企業の独自要件に合わせたシステム構築が可能。
- **データの完全な掌握**：データが社内に留まるため、セキュリティ管理がしやすい。
- **ネットワーク遅延の低減**：リアルタイム性が求められる製造プロセスで有効。

*課題:*

- **高い初期投資コスト**：サーバーやネットワーク機器の購入費用が発生。
- **運用・保守負担**：システムの維持・更新に専門人材が必要。
- **スケーラビリティの制限**：需要変動に柔軟に対応しづらい。

**1.2 クラウドベースシステムの利点と課題**

*利点:*

- **コスト効率**：初期投資が抑えられ、運用費用も使用量に応じた支払い。
- **スケーラビリティ**：需要に合わせてリソースを柔軟に拡張・縮小可能。
- **最新技術の活用**：IoTやAIなどの先端サービスを容易に導入。

*課題:*

- **データセキュリティへの懸念**：クラウド上のデータ管理に不安。
- **ネットワーク依存**：安定したインターネット接続が必要。
- **カスタマイズ制限**：一部、独自機能の実装に制約がある場合がある。

**1.3 製造業特有のニーズにおける違いの解説**

- **リアルタイムデータ処理**：
  - *オンプレミス*：低遅延でのデータ処理が可能。
  - *クラウド*：エッジコンピューティングで遅延を最小化。
- **製造プロセスの統合**：
  - *オンプレミス*：既存システムとの統合が容易。
  - *クラウド*：APIや接続サービスで他システムとの連携を実現。
- **設備保全と予知保全**：
  - *オンプレミス*：データ分析に制限がある。
  - *クラウド*：ビッグデータ解析や機械学習で高度な保全が可能。

---------------------------------------------------------------------------------------------
**2. AzureとAWSの詳細な比較**

**2.1 Azureの主なサービスと強み**

- **IoT Hub**：多数のデバイスを統合管理し、リアルタイムにデータ収集。
- **Machine Learning Studio**：ドラッグ＆ドロップで機械学習モデルを構築。
- **Azure Digital Twins**：物理環境のデジタルモデルを構築、シミュレーション可能。
- **強み**：
  - *Microsoft製品との高い互換性*：既存のWindows環境との統合が容易。
  - *エンタープライズ向け機能*：Active DirectoryやOffice 365との連携。

**2.2 AWSの主なサービスと強み**

- **IoT Core**：安全な双方向コミュニケーションでデバイスを管理。
- **SageMaker**：機械学習モデルの開発からデプロイまでをサポート。
- **AWS Greengrass**：エッジデバイスでのローカルデータ処理。
- **強み**：
  - *広範なサービス群*：200以上のサービスで多様なニーズに対応。
  - *グローバルインフラ*：世界中にデータセンターを配置、高い可用性。

**2.3 費用構造や拡張性の比較**

- **費用構造**：
  - *Azure*：料金体系がシンプルで、エンタープライズ向けの割引が豊富。
  - *AWS*：細かな料金設定で、必要最小限のコストで利用可能。
- **拡張性**：
  - 両者とも高い拡張性を持ち、オートスケーリング機能を提供。

**2.4 セキュリティおよびコンプライアンスの評価**

- **Azure**：
  - ISO、GDPR、HIPAAなど多数の認証を取得。
  - セキュリティセンターによる統合的なセキュリティ管理。
- **AWS**：
  - 同様に多くの認証を取得。
  - AWS ShieldやGuardDutyで高度なセキュリティ対策。

---------------------------------------------------------------------------------------------
**3. ハイブリッド戦略の可能性**

**3.1 ハイブリッドアプローチの利点と課題**

*利点:*

- **柔軟性の向上**：オンプレミスとクラウドの利点を両立。
- **段階的な移行**：全システムを一度に移行せず、リスクを低減。
- **データ主権の維持**：機密データをオンプレミスに保持可能。

*課題:*

- **複雑な管理**：二つの環境の統合管理が必要。
- **追加コスト**：ハイブリッド環境を維持するためのコストが発生。

**3.2 有効なシナリオの具体例**

- **機密性の高いデータをオンプレミスに保持し、他のデータをクラウドで処理**
- **レガシーシステムとの連携を維持しつつ、新規開発部分をクラウドで実装**
- **製造現場のリアルタイム制御はオンプレミスで、データ分析はクラウドで実施**

**3.3 推奨アーキテクチャ例**

- **オンプレミス環境とクラウド間を専用線で接続し、安全なデータ通信を実現**
- **APIゲートウェイを活用し、システム間のシームレスな連携を構築**
- **エッジコンピューティングを導入し、現場でのリアルタイム処理とクラウドでのビッグデータ分析を両立**

---------------------------------------------------------------------------------------------
**4. 実装までのスケジュール提案**

| フェーズ           | 期間       | 主な活動内容                                 |
|--------------------|------------|--------------------------------------------|
| 要件定義           | 1ヶ月      | 現行システムの分析、移行範囲と対象の明確化     |
| 基本設計           | 1ヶ月      | システム構成の設計、アーキテクチャの決定       |
| 詳細設計           | 1ヶ月      | 各機能の詳細設計、データ移行計画の策定         |
| 開発・設定         | 3ヶ月      | クラウド環境の構築、機能開発・設定             |
| 移行・テスト       | 2ヶ月      | データ移行、結合テスト、ユーザ受入テスト       |
| 本番稼働準備       | 0.5ヶ月    | マニュアル作成、運用体制の準備                 |
| 本番稼働           | -          | システム切替、安定稼働の確認                   |
| **合計期間**       | **8.5ヶ月**|                                            |

**スケジュール管理の注意点**

- **リスクと軽減策**：
  - *データ移行の遅延*：十分なテスト期間を確保し、問題検出を早期化。
  - *システム統合の不具合*：段階的な統合テストを実施し、問題を分割して対処。
  - *ステークホルダー間の調整不足*：定期的な進捗報告とコミュニケーションを強化。

---------------------------------------------------------------------------------------------
**5. 必要なアクションとステークホルダー**

**5.1 開発側（弊社）のアクション**

- **プロジェクトマネジメント**：全体の進捗管理、リスク管理。
- **システム設計・開発**：要件に基づくシステム構築。
- **データ移行支援**：安全かつ効率的なデータ移行の実施。
- **テスト支援**：各種テストの計画・実施、問題解決。

**5.2 顧客側のアクション**

- **要件定義への参加**：業務要件の提供、確認。
- **テスト参加**：ユーザ受入テストへの協力、フィードバック提供。
- **運用体制の構築**：運用に必要な人員配置、マニュアル確認。

**5.3 ステークホルダーの役割定義**

- **ITマネージャー**：プロジェクト全体の意思決定、社内調整。
- **製造現場リーダー**：現場要件の提供、現場への周知・教育。
- **経営層**：プロジェクト承認、ビジネス戦略との整合性確認。

---------------------------------------------------------------------------------------------
**6. 工数と見積もり概要**

**6.1 作業項目別労力時間とコスト概算**

| 作業項目           | 労力時間（人月） | コスト概算（万円） |
|--------------------|-----------------|----------------|
| 要件定義           | 2人月           | 200            |
| 基本設計           | 2人月           | 200            |
| 詳細設計           | 2人月           | 200            |
| 開発・設定         | 6人月           | 600            |
| 移行・テスト       | 4人月           | 400            |
| 本番稼働準備       | 1人月           | 100            |
| **合計**           | **17人月**      | **1,700**      |

**6.2 AzureとAWSの利用料金試算と比較**

- **Azure利用料金試算**：
  - 仮想マシン：月額50万円
  - ストレージ：月額10万円
  - ネットワーク他：月額5万円
  - **合計（月額）**：65万円

- **AWS利用料金試算**：
  - EC2インスタンス：月額45万円
  - S3ストレージ：月額12万円
  - ネットワーク他：月額8万円
  - **合計（月額）**：65万円

※実際の料金は使用状況により変動します。

**6.3 総合評価**

- **コスト面**：両プラットフォームで大きな差異はなし。
- **機能面**：既存システムや要件に合わせて適切な方を選択。

---------------------------------------------------------------------------------------------
**結論**

本提案では、ディスクリート製造業特有の要件を踏まえ、オンプレミス型システムからAzureまたはAWSへのクラウド移行をご提案いたしました。高いスケーラビリティと最新技術の活用により、製造プロセスの効率化と競争力の向上が期待できます。

クラウド移行は多くのメリットをもたらしますが、慎重な計画と専門的な知識が不可欠です。弊社はお客様と共に最適なソリューションを構築し、成功へと導くことをお約束いたします。

ご検討のほど、何卒よろしくお願い申し上げます。

*********************************************************************************************

```


> 本記事に関するご質問やご意見がありましたら、コメントにてお気軽にお寄せください。