🤖
12月9日

Domino IQ × ローカルLLMで作るAI推論環境

Domino 14.5で登場した「Domino IQ」は、Notes/DominoアプリケーションにLLM(大規模言語モデル)を統合できる画期的な機能です。本記事では、GPUが不要で、APIの課金も気にせず試せる「ローカルLLM × リモートモード」の環境構築手順を解説します。Notes/Domino技術者がAI・LLMの世界に一歩踏み出すための最適な入門ガイドです。

※ この動画は、検証環境の動作を実時間で録画しています。早送り、もしくは適宜スキップしてご覧ください。

🎯 この構成のメリット

💻
GPUなしでOK

16GB以上のメモリがあれば動作可能

💰
課金不要

OpenAI等のAPI費用が発生しない

🔒
オフライン対応

機密データも安心して処理可能

📚
学習に最適

LLMプログラミングの入門に最適

📐 システム構成

Domino IQには「ローカルモード」と「リモートモード」の2つの動作モードがあります。ローカルモードはNVIDIA GPUが必須ですが、リモートモードでは外部のLLMエンドポイントを利用するため、Dominoサーバー自体にはGPUが不要です。

📧 Notes Client
LotusScript/Java
🖥️ Domino Server
Domino IQ (リモートモード)
🤖 LM Studio
gpt-oss-20b

今回は、LM Studioというアプリケーションを使い、ローカルPCでOpenAIのオープンソースモデル「gpt-oss-20b」を実行します。このモデルは21Bパラメータを持ちながら、アクティブパラメータは3.6Bと軽量で、16GBのメモリで動作可能です。

🔧 環境構築手順

Step 1: LM Studioのセットアップ

  1. LM Studioをダウンロード・インストール
    https://lmstudio.ai/ からダウンロードし、インストールします。Windows、Mac、Linuxに対応しています。
  2. モデルをダウンロード
    LM Studioを起動し、Modelsタブで gpt-oss-20b を検索してダウンロードします。約13GBのディスク容量が必要です。
  3. サーバーモードで起動
    Developerタブに移動し、「Start Server」をクリックします。デフォルトでは http://localhost:1234 でAPIサーバーが起動します。
  4. 外部アクセスを許可(必要に応じて)
    Dominoサーバーからアクセスする場合は、LM Studioの設定でネットワーク接続を許可するか、適切なファイアウォール設定を行います。

💡 gpt-oss-20bについて

OpenAIが公開したオープンソースモデルで、Apache 2.0ライセンスで自由に利用可能です。Mixture of Experts(MoE)アーキテクチャにより、21Bパラメータのうち3.6Bのみがアクティブになるため、効率的に動作します。推論レベル(low/medium/high)を調整でき、用途に応じて速度と品質のバランスを取れます。

Step 2: Domino IQのインストール

Domino IQはDomino 14.5以降で利用可能な機能ですが、別途インストールが必要です。

  1. インストーラーのダウンロード
    HCL Software License & Download Portal(FlexNet)から Domino IQ のインストーラーをダウンロードします。Domino 14.5のダウンロードページで「Domino IQ」を検索してください。
  2. インストールの実行
    ダウンロードしたインストーラーを実行します。Dominoサーバーがインストールされているディレクトリを指定し、インストールを完了させます。

    💡 リモートモードの場合

    外部LLMプロバイダー(LM Studio等)に接続するリモートモードのみを使用する場合、GPU関連のコンポーネントは不要です。インストール時にリモートモード用の最小構成を選択できます。

  3. インストールの確認
    インストール完了後、Dominoサーバーのプログラムディレクトリに以下のファイルが追加されていることを確認します:
    # 主要なファイル(例) nDominoIQ.dll (Windows) / libDominoIQ.so (Linux)

Step 3: Domino IQの有効化

  1. Domino Directoryで設定
    Domino Directoryを開き、Actions → Edit Directory Profile を選択します。「Domino IQ」タブで管理サーバーを設定し、DominoIQ.nsfを作成します。
  2. サーバーを再起動
    設定を保存し、参加するすべてのサーバーを再起動します。各サーバーにDominoIQ.nsfのレプリカが作成されます。

Step 4: Domino IQの設定

⚠️ 必須設定: TLSの無効化

LM StudioはHTTPのみをサポートするため、Domino側でTLSを無効化する必要があります。本番環境では推奨しませんが、検証環境では以下の設定を notes.ini に追加します。

# notes.ini に追加 DOMIQ_DISABLE_EXTERNAL_TLS=1

DominoIQ.nsfを開き、Configurationsビューで「Add Configuration」をクリックします。

項目 設定値
Endpoint mode Remote
Server 対象のDominoサーバー名
Endpoint URL http://[LM StudioのIP]:1234/v1/chat/completions
※画面ではhttpsと表示されますが、httpが使用されます
Model openai/gpt-oss-20b または gpt-oss-20b
API Key not-needed(任意の文字列)

📝 デバッグ設定(推奨)

問題発生時の調査に役立つため、以下のデバッグ設定を有効化することをお勧めします。

# notes.ini に追加(または set config コマンドで設定) DEBUG_DOMINOIQ_LLMPAYLOAD=1 DEBUG_DOMINOIQ_LLMREQUEST=1 # 各リクエストのログが以下の形式で出力されます # domiqllmthr-{number}_{server_name}_{date@time}

Step 5: システムプロンプトとコマンドの作成

DominoIQ.nsfでAIに指示を与えるためのシステムプロンプトとコマンドを作成します。

# システムプロンプトの例(要約用) You are a helpful assistant. Please summarize the following text in Japanese, keeping the key points concise and clear.

Step 6: LotusScriptからの呼び出し

Domino IQの新しいクラス(NotesLLMRequest、NotesLLMResponse)を使用して、LotusScriptからLLMを呼び出すことができます。以下はボタンクリックでストリーミング応答を取得するサンプルです。

Sub Click(Source As Button) Dim session As New NotesSession Dim llmreq As NotesLLMRequest Set llmreq = session.CreateLLMRequest() Dim Text As String Set workspace = New NotesUIWorkspace Set uidoc = workspace.currentdocument Text = uidoc.FieldGetText("Prompt") On Event LLMCompletionStreamNotify From llmreq Call ProcessResponse Call llmreq.CompletionStream("Aero/Kazaoto", "Normal",Text) Exit Sub processError: Dim errMess As String errMess = "Error " & Err & ": " & Error$ Messagebox(errMess) Exit Sub End Sub

✅ 動作確認

すべての設定が完了したら、簡単なテストを実行して動作を確認しましょう。エージェントを作成し、上記のLotusScript関数を呼び出すことで、LM Studio上のgpt-oss-20bモデルを使った推論が実行されます。

正常に動作すれば、AIによる応答がNotesクライアントに返されます。デバッグログを有効にしている場合は、リクエストとレスポンスの詳細をログファイルで確認できます。

🔍 トラブルシューティング

症状 対処法
接続エラーが発生する LM Studioがサーバーモードで起動しているか、ファイアウォール設定を確認
TLS関連のエラー DOMIQ_DISABLE_EXTERNAL_TLS=1 が設定されているか確認
モデルが見つからない LM Studio側でモデルがロードされているか、モデル名が正しいか確認
応答が遅い メモリ不足の可能性。他のアプリを終了するか、より軽量なモデルを検討

📚 参考資料

🎄 まとめ

Domino IQのリモートモードとLM Studioを組み合わせることで、GPUや外部APIへの課金なしにAI推論環境を構築できます。この環境は、Notes/Domino技術者がLLMの世界に足を踏み入れるための最適な入り口です。

ぜひこの構成を試して、Domino IQの可能性を体験してみてください。習熟したら、本番環境ではセキュアな接続(TLS有効化とNginxリバースプロキシ)や、より高性能なモデル(OpenAI API等)への移行も検討できます。

🚀 次のステップ

  • メールの要約機能を試してみる
  • 独自のシステムプロンプトを作成してみる
  • 異なるモデル(Llama、Qwen等)を試してみる
  • 本番環境向けにTLS設定を構成する