メインコンテンツへスキップ
見出し画像

完全無料で自分専用 AIを作れる Dify試してみた (Gemini使用)

    こんにちは。Rcatです。
    今回は簡単に自分用AIを作れるというDifyを試してみました。
    色々複雑なことができるようですが、今回は導入からGoogleのGeminiを設定して実行するまでを記事にしておきます。

    この記事では自分のパソコンに導入する方法を紹介していますが、オンライン版もありますので、難しいと感じた方はオンライン版の方を推奨します。

    本記事の内容は一部古いです。
    最新のバージョン1では、モデルの設定やポート番号などの環境設定の仕方がこの記事とは異なります。下記で対応しているのでこちらも参照ください。

    DIfy系目次記事


    本シリーズはこちら

    次回はこちら

    Dify活用例

    試験勉強用問題集の全自動生成

    SNS全自動分析

    チャット→コマンド変換

    文章校正&ルビ振り

    全自動校正&翻訳

    S.M.A.R.Tチェック自動化

    環境

    Difyはオンラインでログインして使うこともできますが、"簡単に"自前で環境を整えることもできるので、自前で整えることにします。
    オンライン版の方は"使ってみる"までスキップしてください。
    導入するのは下記で紹介している24Hサーバー用PCです。
    OSはLinux (Ubuntu)です。

    導入

    Difyの入手

    公式サイトからダウンロードします

    今回はgitコマンドを使うのでGitHubを選びます

    画像

    TeraTermでサーバーにログインしてgitコマンドを打ちます

    画像
    rcat@rcat-Green-G5:/SSD/testdify$ git clone ht tps://gius/dify.git #一応URLはぼかしておきます
    Cloning into 'dify'...
    remote: Enumerating objects: 55677, done.
    remote: Counting objects: 100% (12214/12214), done.
    remote: Compressing objects: 100% (1342/1342), done.
    remote: Total 55677 (delta 11352), reused 11132 (delta 10865), pack-reused 43463
    Receiving objects: 100% (55677/55677), 32.62 MiB | 20.20 MiB/s, done.
    Resolving deltas: 100% (39887/39887), done.
    rcat@rcat-Green-G5:/SSD/testdify$ ls
    dify
    rcat@rcat-Green-G5:/SSD/testdify$ cd dify
    rcat@rcat-Green-G5:/SSD/testdify/dify$ ls
    AUTHORS             LICENSE    README_CN.md  README_JA.md  dev     sdks
    CONTRIBUTING.md     Makefile   README_ES.md  README_KL.md  docker  web
    CONTRIBUTING_CN.md  README.md  README_FR.md  api           images

    Dockerを導入する

    Dockerはプログラムの実行環境をイメージとして公開し、誰でも再現が可能になるものです。
    DifyはDockerにてイメージが公開されているため、Dockerを使うとコマンドひとつで起動ができます

    私は昔下記記事にてゲームサーバー用に導入していたので今回はスルーです。
    ご自身で導入するか、私が見た記事を参考にインストールしてみてください。
    https://qiita.com/xx0vlucifer0xx/items/2c84537b67a19b156ec8

    Difyを起動する

    ダウンロードしたデータの中にdockerフォルダがあるので移動後、"docker compose up"で起動。はい終わりです。
    止める時は"docker compose stop"です。

    rcat@rcat-Green-G5:/SSD/testdify/dify$ cd docker
    rcat@rcat-Green-G5:/SSD/testdify/dify/docker$ ls
    docker-compose.middleware.yaml  docker-compose.png          nginx
    docker-compose.milvus.yaml      docker-compose.qdrant.yaml
    docker-compose.pgvecto-rs.yaml  docker-compose.yaml
    rcat@rcat-Green-G5:/SSD/testdify/dify/docker$docker compose  up

    ポートを変えるには?

    ※このセクションは古いバージョンでのみ有効です
    Ver1の対応については、以下の記事をご確認ください。

    DifyはWEBアプリなので80番ポートで待ち受けします。
    他で使いたい場合はポートを変えておきます。
    Docker起動前に変更してください。

    docker-compose.yamlの中の最後の方に"80:80"という表記があるので、左側を好きなポート番号に変えてください。

    画像

    使ってみる

    アクセス方法

    Difyにアクセスします。
    今回は別のPCなのでURLは次のようになります。あくまで私の場合なので一例です。
    "http://192.168.0.4:25021"
    Difyを同じPCで起動していて、かつポートを変えていない場合は下記で行けるはずです。
    "http://localhost"

    オンライン版の場合は、アカウントを作成してログインするだけです

    初回は管理者アカウントの設定があるみたいです。
    適当に作りましょう

    画像

    ログインできました。

    画像

    Geimiをセットアップ

    このセクションの一部は古いバージョンでのみ有効です。
    バージョン1.0以降はこちらをご確認ください。
    APIキーの取り方などは随時Googleの方で確認するようにしてください。

    オンライン版ではGPT3.5が無料で使えるみたいですが、ローカル版では違うみたいなので、無料で使えそうなGoogleのGeminiをセットアップします。

    設定のモデルプロバイダーからGeminiをセットアップ

    画像

    APIキーを聞かれるので、下の"Get your API Key from Google"からキーを作成してください。
    APIキーの取り方はこの下に動画もありますので参照してください。
    出来上がったらキーを入れて保存します

    画像

    2025/3現在のモデルの種類と呼び出し上限については以下のようになっていました。
    フラッシュ関連は1日1500回まで使えます。ただし、1分間に10回から30回という制限があるので呼び出し間隔には注意しましょう。
    また、上限はモデルごとの話なので、2.0フラッシュと2.0フラッシュライトの両方を使えば1日3000回使えます。え、マジですか?本当にいいんですか?ありがとうございます。

    https://ai.google.dev/gemini-api/docs/rate-limits?hl=ja

    画像

    APIキーの取り方

    こちらの動画をご覧ください
    ※すぐに削除しているので動画内ではAPIキーを隠していません。

    Geminiでテストボットを作る

    最初から作成を押し、とりあえずチャットボットを選びます

    画像
    画像

    作成したら、右上のモデル選択でGeminiを選びます
    この時点で右側のデバッグ画面でチャットが可能です。

    画像

    保存する

    右上の"公開する"から更新をすると保存できます

    画像

    APIエンドポイントについて

    このセクションは後からの追記ですので前後の内容と連続性がありません。

    ローカル版のAPIエンドポイントは下記ですが、

    画像

    オンライン版は下記です。

    画像

    暗号化されているhttpsか、そうでないhttpかで差がありますので注意して下さい。
    ローカルなどでhttp:を定数で使っているとオンラインでアクセスできません。

    ちなみに、ベースURLの部分だけであればhttpでもhttpsでもアクセス可能です。

    >>> import requests
    >>> r= requests.get("http://api.dify.ai/v1/")
    >>> r.json()
    {'welcome': 'Dify OpenAPI', 'api_version': 'v1', 'server_version': '0.14.2'}

    が、APIを実行しようとすると405エラーを返されるので、オンラインとローカルではきちんとこの部分の使い分けをしないといけませんね。


    まとめと次回

    今回は専用AIを簡単に作れるDifyを触ってみました。
    デバッグチャットしただけで終わりとか何なんだと思われるかもしれませんが、この記事は次回につなげるための導入に書いたものです。
    というわけで次回はPythonを使ってこのチャットボットにアクセスして文章を要約させる等を行っていきます。
    最終的にはDiscordのAI BOTになる予定です。(というかこの記事書いてる時点で実は出来てたりする。)
    それではまたお会いしましょう


     
     
    モノづくりが趣味。 "売ってないなら自分で作ればいいじゃない"をコンセプトに、機械/電気/AI/プログラム/ネットワーク 全部やります。 記事執筆はAI不使用。 ご連絡や利用規約はプロフィール記事参照。

    あなたへのおすすめ