生成AIに強みを持つベトナムオフショア開発
​株式会社スクーティー
お役立ち資料
生成AIに強みを持つベトナムのオフショア開発|株式会社スクーティー
  • Home
  • Services
    • オフショア開発/ラボ型開発サービス
    • 生成AIコンサルティングサービス >
      • ChatGPTラボ型開発サービス
    • ベトナムエンジニアの日本客先常駐開発(SES)サービス
    • ベトナム進出支援サービス
    • ベトナム視察ツアー
    • サーバ構築・運用保守ラボサービス
  • Solutions
    • AI文書読み取りサービス
    • AI記事制作代行サービス
    • Dify導入支援サービス
  • News
  • About
  • Blog
  • Download
  • Contact
  • Home
  • Services
    • オフショア開発/ラボ型開発サービス
    • 生成AIコンサルティングサービス >
      • ChatGPTラボ型開発サービス
    • ベトナムエンジニアの日本客先常駐開発(SES)サービス
    • ベトナム進出支援サービス
    • ベトナム視察ツアー
    • サーバ構築・運用保守ラボサービス
  • Solutions
    • AI文書読み取りサービス
    • AI記事制作代行サービス
    • Dify導入支援サービス
  • News
  • About
  • Blog
  • Download
  • Contact

ブログ

9/30/2024

DifyでOpenAIの最新モデルo1-previewとo1-miniを利用する方法

 
DifyでOpenAIの最新モデルo1-previewとo1-miniを利用する方法
※本記事は新ブログサイトへ移行しています。以下のリンクからそちらをご覧いただくことをおすすめいたします。
>> DifyでOpenAIの最新モデルo1-previewとo1-miniを利用する方法

こんにちは、スクーティー代表のかけやと申します。
​
弊社は生成AIを強みとするベトナムオフショア開発・ラボ型開発や、生成AIコンサルティングなどのサービスを提供しており、最近はありがたいことに生成AIと連携したシステム開発のご依頼を数多く頂いています。

先日OpenAI社から最新の言語モデルであるo1-preview/miniがリリースされましたが、Difyのv0.8.1アップデートで早速これらのモデルが使用できるようになっていました(本記事執筆時点でのDify最新バージョンはv0.8.3)。

​この記事では、Difyのv0.8.1アップデートで追加されたOpenAIの最新モデルo1-previewとo1-miniを使用する方法についてご紹介します。最後に簡単に、o1-previewとGPT-4oを切り替えて出力を比較するワークフローも作ってみましたので、ぜひそちらもご覧ください!
スクーティーのDify導入支援サービス

Difyとは

Difyとは、プログラムを書かずに簡単にAIアプリを作成できる超便利ツールです。

​Difyについては以下の記事をご覧ください!
  • Difyってなに?​という方:DifyでSEO記事作成を試してみる
  • Difyでワークフローの作り方:Difyのワークフローを使って今度こそSEO記事を作成する【2024年6月更新】

Difyの環境構築方法やバージョンアップ方法は本家のレポジトリを参照することをおすすめします。特にバージョンアップ方法はバージョンごとに微妙に方法が変わってきているため、最新版を確認する必要があります。

本記事の検証は、MacOSのローカルPC上に、Dify v0.8.1で検証しました。

Dify v0.8.1アップデートの概要

​Difyの v0.8.1では、ユーザーエクスペリエンス向上のため、多数の機能強化、新機能追加、そして重要なバグ修正が行われました。中でも特筆すべきは以下の点です。
​1. OpenAI o1シリーズモデルのサポート
v0.8.1の目玉となるのが、OpenAIの最新モデルであるo1-previewとo1-miniのサポートです。これらのモデルは、従来のモデルよりも複雑なタスクにおける推論能力に優れ、科学、コーディング、数学などの分野でより高度な問題解決を可能にします。

o1-previewは、高度な推論能力を備えたモデルですが、処理速度が遅く、利用料金も高額です。一方、o1-miniは、o1-previewよりも処理速度が速く、費用対効果に優れたモデルです。Dify.AIでは、これらのモデルを用途に合わせて使い分けることができます。

2. ワークフローの強化
複数の並列実行における問題や、条件分岐ノードにおける同時出力問題など、ワークフローに関する複数のバグが修正されました。これにより、より安定したワークフローの実行が可能になります。

3. UI/UXの改善
アップロード画像アイコンの配置ずれ修正や、Markdown段落マージンの調整など、UI/UXに関する細かな改善が行われました。これらの改善により、より快適にDify.AIを利用できるようになります。

4. その他の機能強化とバグ修正
BedrockにおけるClaudeモデルのサポート強化、クロスリージョン推論のサポート追加、エディターによるAPIキー作成機能の実装など、様々な機能強化が行われました。また、Ollama埋め込みモデルに関するエラーや、ローカライズ翻訳、変数EntityTypeのバグなど、複数のバグが修正されました。

Dify v0.8.1へのアップデート方法

​Difyをv0.8.1にアップデートするには、以下の手順に従います。
基本的にリリースノートに記載しているコマンドラインを実行するだけです。
​# 1.docker-compose.yamlファイルのバックアップ (任意)
cd docker
cp docker-compose.yaml docker-compose.yaml.$(date +%s).bak

# 2.最新コードの取得
git checkout main
git pull origin main

# 3.サービスの停止 (dockerディレクトリで実行)
docker compose down

# 4.データのバックアップ
tar -cvf volumes-$(date +%s).tgz volumes

# 5.サービスのアップグレード
docker compose up -d

DifyでOpenAI o1モデルを使用する方法

​Dify v0.8.1にアップデート後、特に特別な設定なくOpenAI o1モデルを使用することができます。

Dify上で行うモデルの初期設定に関しては、上記で紹介した「DifyでSEO記事作成を試してみる」の記事をご覧ください。本記事では割愛します。
右上メニューから「Settings」を選択し、Difyのモデル設定画面で、o1-preview/miniが表示されていることを確認します。v0.8.1以降のバージョンアップが上手くいっていれば、下記のようにOpenAIのモデル一覧にo1-preview/miniが表示されます。
Difyのモデル設定画面で、o1-preview/miniが表示されていることを確認。
エージェントやワークフローを作成する画面でも、モデルの選択肢に​o1-preview/miniが表示されていることがわかります。
Difyのモデルの選択肢に​o1-preview/miniが表示されている

上記ではとりあえずo1-preview/miniが使用できることのみを確認していますが、Difyを業務利用する場合は他にも様々な設定をいれる必要があります。このあたりをまるっと依頼したいというご要望がございましたら、ぜひお気軽にご連絡ください!
Difyの導入支援サービスについて問い合わせる

Difyでo1-previewを使ってみる

o1-previewはコーディング能力がとにかく高いということで、プログラミングコンテストの問題を解くというタスクを、​o1-previewとGPT-4oにさせてみて、結果を比較しました。

検証にあたり、以下のような簡単なワークフローを作成しました。
​
詳細は割愛しますが、最初の入力でo1-previewかGPT-4oかを選択し、選択されたモデルで全く同じプログラミングコンテストの問題を、全く同じプロンプトで回答するというものです。

写真

第一問

長さLcmの竿の上をn匹のアリが毎秒1cmのスピードで歩いています。アリが竿の箸に到達すると竿のしたに落ちていきます。また、竿の上は狭くてすれ違えないので、に匹のアリが出会うと、それぞれの反対を向いて戻っていきます。各アリについて、現在の竿の左端からの距離xiはわかりますが、どちらの方向を向いているのかはわかりません。全てのアリが竿から落ちるまでにかかる最小の時間と最大の時間をそれぞれ求めなさい。 制約: 1≦L≦10^6、1≦n≦10^6、1≦xi≦L
o1-previewの出力
​L = 10
n = 3
x_list = [2, 6, 7]

t_min = 0
t_max = 0

for xi in x_list:
    t_min_i = min(xi, L - xi)
    t_max_i = max(xi, L - xi)

    t_min = max(t_min, t_min_i)
    t_max = max(t_max, t_max_i)

print(t_min)
print(t_max)
GPT-4oの出力
​def calculate_time(L, n, positions):
    min_time = 0
    max_time = 0
    
    for pos in positions:
        # 各アリについて最小到達時間を計算(近い方の端までの距離)
        min_time = max(min_time, min(pos, L - pos))
        # 各アリについて最大到達時間を計算(遠い方の端までの距離)
        max_time = max(max_time, max(pos, L - pos))
    
    return min_time, max_time

# 与えられた入力
L = 10
n = 3
positions = {2, 6, 7}

# 結果を計算
min_time, max_time = calculate_time(L, n, positions)

print(f"最小時間: {min_time}")
print(f"最大時間: {max_time}")
よくわからないと思いますが、両方とも正解です。
なんならコメントを付けてくれているGPT-4oのほうが親切な気もします。

第二問

​重さと価値がそれぞれwi, viであるようなn個の品物があります。これらの品物から、重さの総和がWを超えないように選んだときの、価値の総和の最大を求めなさい。 制約:1≦n≦100、1≦wi,vi≦100、1≦W≦10000
o1-previewの出力
n = 4
items = [(2, 3), (1, 2), (3, 4), (2, 2)]
W = 5

# DPテーブルの初期化
dp = [0] * (W + 1)

# 各品物についてDPテーブルを更新
for wi, vi in items:
    for w in range(W, wi - 1, -1):
        if dp[w - wi] + vi > dp[w]:
            dp[w] = dp[w - wi] + vi

# 結果の出力
print("最大の価値の総和:", max(dp))
GPT-4oの出力
​def knapsack(n, items, W):
    # DPテーブルを作成
    dp = [[0] * (W + 1) for _ in range(n + 1)]

    # DPテーブルを埋める
    for i in range(1, n + 1):
        weight, value = items[i - 1]
        for w in range(W + 1):
            if w >= weight:
                # アイテムを選ぶ場合と選ばない場合の価値の最大を選択
                dp[i][w] = max(dp[i - 1][w], dp[i - 1][w - weight] + value)
            else:
                # アイテムを選ばない場合
                dp[i][w] = dp[i - 1][w]

    # 最大価値を返す
    return dp[n][W]

# 入力
n = 4
items = [(2, 3), (1, 2), (3, 4), (2, 2)]
W = 5

# 実行
max_value = knapsack(n, items, W)
print("最大価値:", max_value)
こちらも両方とも正解です。
​
​・・・ということで、差が付きませんでした汗
​
ただ、o1-previewは論理的な思考やコーディング能力が優れており、GPT-4oは文章作成能力が優れていることがわかっているので、用途に応じてモデルを切り替えてタスクをやってもらうということがやりやすくなりました!

​​​生成AIを使用したシステム開発のご要望はこちらから

最後までお読みいただき、ありがとうございます!

​弊社では、LLM(大規模言語モデル)やアーキテクチャの選定、技術検証、生成AIを使用したプロトタイピングやシステム開発、お客様社内での啓蒙活動等を対応させていただく「生成AIコンサルティング」サービスを提供しています。

また、業務利用できるChatGPTのような仕組みである「セキュアGAI」も提供しています。

もちろん、Difyの構築のお手伝いも可能です。

もし本記事で生成AIに興味が湧き、生成AIとのシステム連携などのニーズがございましたら、ぜひ下記フォームからお気軽にお問い合わせください!
​記事の投稿者:掛谷知秀

​記事の投稿者:掛谷知秀

株式会社スクーティー代表取締役
デジタル一眼レフカメラのファームウェア開発、広告システムの設計、実装、管理などを経て、2012年にベトナムに渡航。2015年に株式会社スクーティー創業。ベトナムのオフショア開発事業を展開中。直近ではChatGPTとのシステム連携や、生成AIを使用したプロダクト開発など、生成AI領域に注力している。また、個人でもOpenAI APIやDifyを使用したアプリケーション開発を趣味としてやっている。​

​​​その他の生成AI関連サービス

​安全な環境でChatGPT「セキュアGAI for enterprise」
​安全な環境でChatGPT「セキュアGAI for enterprise」
セキュアGAI for enterprise で、安全にChatGPTを使用できます。Azure OpenAI API Serviceを使用して、Azureのプライベートな環境内で完結するChatGPTと同様の機能を提供します。
AIが接客「バーチャルアシスタント」
AIが接客「バーチャルアシスタント」
接客ができる人材の確保にお困りではありませんか?バーチャルアシスタントが人材不足の課題を解決します!多言語も対応可能です。
    ベトナムオフショア開発/ラボ型開発
    ベトナムオフショア開発/ラボ型開発
    生成AIコンサルティング
    生成AIコンサルティングサービス
    安全な環境でChatGPT「セキュアGAI for enterprise」
    安全な環境でChatGPT「セキュアGAI for enterprise」
     AIが接客「バーチャルアシスタント」
     AIが接客「バーチャルアシスタント」
    ベトナムオフショア開発|ラボ開発
    オフショア開発や生成AIに関する資料はこちらから無料でDLいただけます

    アーカイブ

    10月 2024
    9月 2024
    8月 2024
    7月 2024
    6月 2024
    5月 2024
    4月 2024
    3月 2024
    2月 2024
    1月 2024
    12月 2023
    11月 2023
    1月 2023
    11月 2022
    9月 2022
    8月 2022
    3月 2022
    2月 2022
    1月 2022
    11月 2020
    8月 2020
    7月 2020
    5月 2020
    2月 2020
    1月 2020
    12月 2019
    11月 2019
    10月 2019
    5月 2019
    4月 2019
    11月 2018
    10月 2018
    8月 2018
    2月 2018
    9月 2017
    7月 2017
    6月 2017
    5月 2017
    4月 2017
    3月 2017
    2月 2017

    カテゴリー

    すべて
    Chat GPT
    ChatGPT
    Dify
    オフショア開発
    ブロックチェーン
    ベトナムNOW!
    ベトナムオフショア
    ベトナム一目惚れ
    生成AI
    開発事例

    最新記事の購読

    RSSフィード

      【ベトナムNOW!】でベトナム情報をお届けします

    【ベトナムNOW!】に申し込む
スクーティーのラボ型開発サービス
オフショア開発資料ダウンロード

リンク

HOME
SERVICES
SOLUTIONS
NEWS
ABOUT
CONTACT
DOWNLOAD
個人情報保護方針​
​

プロダクト

安全な環境でChatGPT「セキュアGAI for enterprise」
AIが接客「バーチャルアシスタント」
​

ブログ

ベトナムのオフショア開発に関するブログ
The Scuti Blog(英語)
​

株式会社スクーティー

生成AIに強みを持つベトナムのオフショア開発サービスを提供しています。​優秀なベトナム人エンジニアでチームを組み、安価で高速な開発体制を作りましょう。
​
Scuti Co., Ltd.
Scuti.inc © COPYRIGHT 2023. ALL RIGHTS RESERVED.