0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

生成AI、はじめました ~Difyのチャットボット作成Ⅱ ハイプリッド検索~

0
Posted at

はじめに

前回に続いて、生成AI関連ネタです。

連休で試したこと(含むその過程)を、複数回に分けて紹介してゆきます。
本稿は、3本目のその後、箸休め回です。

1本目:生成AI、はじめました ~環境の準備とお試し~
2本目:生成AI、はじめました ~Difyのデプロイとプロバイダー登録~
3本目:生成AI、はじめました ~Difyのチャットボット作成~
箸休め:生成AI、はじめました ~Difyのチャットボット作成Ⅱ ハイプリッド検索~ ★本稿
4本目:生成AI、はじめました ~PCのリソース使用量確認~ (!Coming Soon!)

本稿で紹介すること

  • Gemmaダウンロード
  • APIサービング w/LM Studio
  • Pythonプログラムお試し
  • Difyモデルプロバイダー登録
  • ナレッジ登録
  • ナレッジを参照したチャットボット作成
  • チャットボットお試し

1.Gemmaダウンロード

検索ウィンドウに「embed」を入力すると、検索結果の上位にある「embeddinggemma-300m-qat-GGUF
」をダウンロードします。

スクリーンショット 2026-01-03 171936.png

2.APIサービング w/LM Studio

gpt-oss-20bに同じく、モデルを読み込み、APIサービングさせます。

スクリーンショット 2026-01-03 172008.png

3.Pythonプログラムお試し

LM Studioが提供する「cURL command」を実行します。
結果としてベクトルが得られていればOKです。

cURL
curl http://192.168.68.16:1234/v1/embeddings \
  -H "Content-Type: application/json" \
  -d '{
    "model": "google/embedding-gemma-300m",
    "input": "生成AI、はじめました"
}'

Pythonで「urllib.request」を実行しても、同じ結果は得られます。

urllib.request
import urllib.request
import json
from pprint import pprint

url = 'http://192.168.68.16:1234/v1/embeddings'
req_header = {
    'Content-Type': 'application/json',
}
req_data = json.dumps({
    'model': 'google/embedding-gemma-300m',
    'input': '生成AI、はじめました'
})

req = urllib.request.Request(url, data=req_data.encode(), method='POST', headers=req_header)

try:
    res = urllib.request.urlopen(req, timeout=10)
    body = json.loads(res.read())

    #print(body)
    pprint(body)
except urllib.error.HTTPError as e:
    print(e.code)
except urllib.error.URLError as e:
    print(e.reason)

4.Difyモデルプロバイダー登録

gpt-oss-20bに同じく、モデルプロバイダーとして登録します。

スクリーンショット 2026-01-03 172201.png
スクリーンショット 2026-01-03 172228.png

5.ナレッジ登録

以下の設定に変えて、予めPDF形式で保存したファイル群をナレッジとして登録します。
 インデックス方法:高品質
 埋め込みモデル:embedding-gemma-300m
 検索設定:ハイブリッド検索
上記3つを選択した以外、細かな設定はデフォルトままです。

スクリーンショット 2026-01-03 172336.png
スクリーンショット 2026-01-03 172343.png

6.ナレッジを参照したチャットボット作成

以下リンクと基本は同じ、参照する知識として前項で登録した高品質な知識を指定します。

7.チャットボットお試し

分かり易い差が生じるように、敢えてキーワード「インストール」とだけ指定して実行します。

まずは、前回連載で作った、参照する知識として経済的な知識を指定したチャットボット。
スクリーンショット 2026-01-03 172511.png

次に、今回連載で作った、参照する知識として高品質な知識を指定したチャットボット。
スクリーンショット 2026-01-03 172518.png

知識の登録の際、ハイブリッド検索の設定を変えたり、、、
フローの「LLM」ブロック、コンテキストの設定(SYSTEMプロンプト他)を変えたり、、、
まだ試行錯誤の積み重ねで生成AIの回答は変わりそうな予感ですが、パスw

まとめ

埋め込みモデル(Embedding)をLM Studioで扱う方法、Difyで扱う方法を体験はできました。
業界業種、さらにその中で特価した狭いドメイン知識を使ったチャットボットを簡単に手掛けるのならやはりDifyが1つの選択肢になりますね。
AIを使うことも、AIを作ることも、民主化を進めてゆくにはよいツールだと改めて思いました。

おまけ

LM StudioでAPIサービング中のgpt-oss-20bもPythonプログラムからCallしてみます。
openaiライブラリを利用すれば楽チンですね、しかも、ローカルPCで動かしているのでコスト面の心配は不要になりますね。

openai
from openai import OpenAI

client = OpenAI(
    base_url = "http://192.168.68.16:1234/v1",
    api_key = "dummy"
)

response = client.chat.completions.create(
    model="openai/gpt-oss-20b",
    messages=[
        {"role": "system",
         "content": ("ユーザの質問に対して丁寧に回答してください。")},
        {"role": "user", "content": "日本の首都名とその観光名所は?"}
    ]
)

print(response.choices[0].message.content)
実行結果 **日本の首都:東京**

主な観光名所(代表的なものをまとめました)

カテゴリ 名所 特色・おすすめポイント
歴史・文化 皇居 日本天皇の居所。庭園や二重橋が有名で、公開される季節限定の見学もあります。
浅草寺(浅草) 東京最古の寺院。雷門と仲見世通りは観光客に人気です。
上野恩賜公園・上野動物園 大型庭園、博物館群(東京国立博物館等)、春の桜が有名です。
鎌倉(近郊) 鎌倉大仏や鶴岡八幡宮など歴史的な寺社があります。
モダン・ショッピング 秋葉原 アニメ、ゲーム、電化製品のメッカ。オタク文化が集まるエリアです。
渋谷(渋谷スクランブル交差点) 世界的に有名な交差点と多彩なファッション・飲食店があります。
原宿(竹下通り) 若者向けのファッションとユニークなお菓子屋が並ぶエリアです。
エンターテイメント 東京ディズニーリゾート(千葉県浦安市) ディズニーランド・シーの2園で、家族連れに大人気。
お台場 未来的な建築とレインボーブリッジが美しい海辺エリア。
自然・景観 東京タワー 高さ333mの東京を一望できる展望台があります。
スカイツリー(浅草) 世界で2番目に高い電波塔。夜景が美しいです。
隅田川クルーズ 東京湾と隅田川沿いの風景を楽しめます。

旅行時のポイント

  1. アクセス

    • JR・地下鉄・バスなど多様な交通網があります。
    • 観光地が集中しているため、1日で複数エリアを巡ることも可能です。
  2. 季節ごとのおすすめ

    • 春:上野の桜、浅草の祭り。
    • 夏:隅田川クルーズやお台場の海風。
    • 秋:秋葉原のライトアップイベント。
    • 冬:東京タワー・スカイツリーのイルミネーション。
  3. 食文化

    • 東京は寿司、天ぷら、ラーメンなど全国各地の料理が楽しめます。
    • 近隣にある築地市場(現在は豊洲市場)で新鮮な海産物を堪能してください。

東京は歴史と未来が共存する都市です。ぜひお気に入りの観光名所を見つけて、素敵な旅をお楽しみください!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?