コンテンツにスキップ

スクリプト開発 / コネクターオブジェクト DFF.CONN / LLM(OpenAI 互換)

LLM コネクター操作オブジェクトは、コネクターに設定された OpenAI 互換 Chat Completions API を介してテキスト対話を行います。

本コネクターは、対象サービスが OpenAI Chat Completions API と互換である必要があります

サービスによってサポートされるモデルやリクエストパラメータは異なる場合があります。詳細は対象サービスのドキュメントに従ってください。

1. コネクター構成

LLM コネクターを作成する際は、以下のフィールドを設定する必要があります:

フィールド 必須 / デフォルト値 説明
Base URL 必須 / https://api.openai.com/v1 OpenAI 互換 API のベースアドレス
API Key 必須 対象サービスにアクセスするための API Key
Model 必須 デフォルトで使用するモデル ID。対象サービスがサポートする Chat Completions モデル ID である必要があります

Base URLAPI Key を入力後、Model 選択ボックスを展開すると、インターフェースは対象サービスの /models エンドポイントを介してモデルリストの読み込みを試みます。読み込みに失敗した場合でも、対象サービスがサポートするモデル ID を手動で入力できます。

メッセージは対象サービスに送信され、費用が発生する可能性があります

コネクターが指す対象サービスを確認してください。メッセージに API Key、パスワード、または無関係な機密データを送信しないでください。

2. コネクター操作オブジェクトの取得

DFF.CONN(...) のパラメータは次のとおりです:

パラメータ 必須 / デフォルト値 説明
connector_id str 必須 コネクター ID
model str None コネクター設定のデフォルトモデルを上書きします
timeout int/float 60 リクエストタイムアウト時間(秒)
1
2
3
4
llm = DFF.CONN('llm_connector_id')

# 現在の操作オブジェクトのデフォルトモデルとリクエストタイムアウト時間を上書きします
another_llm = DFF.CONN('llm_connector_id', model='another-model', timeout=30)

3. .chat(...)

OpenAI 互換 Chat Completions API を呼び出します。メソッドシグネチャは次のとおりです:

Python
1
llm.chat(messages, model=None, **kwargs)

パラメータは次のとおりです:

パラメータ 必須 / デフォルト値 説明
messages str/list[dict] 必須 対話メッセージ。文字列を渡すと自動的に 1 件の user メッセージに変換されます。メッセージリストを渡すとそのまま送信されます
model str None この呼び出しのみモデルを上書きします
**kwargs 任意 なし 他のキーワード引数は OpenAI Python SDK の client.chat.completions.create(...) に透過されます. 利用できるかどうかは対象サービスによります

このメソッドは Chat Completions の完全なレスポンスを dict に変換して返します. テキスト返信は通常 choices[0].message.content にあります.

Chat Completions のリクエストパラメータとレスポンス構造については,OpenAI API / Create chat completion を参照してください.

3.1 単一ターン対話

messages には文字列を直接渡すことができます:

1
2
3
4
5
llm = DFF.CONN('llm_connector_id')

response = llm.chat('DataFlux Func とは何ですか?')
reply    = response['choices'][0]['message']['content']
print(reply)

文字列は自動的に以下のメッセージリストに変換されて送信されます:

Python
1
2
3
4
messages = [{
    'role'   : 'user',
    'content': 'DataFlux Func とは何ですか?',
}]

3.2 複数ターン対話

本コネクターは対話履歴を保存しません. 複数ターン対話が必要な場合は,スクリプト側で保存し,毎回の呼び出し時に完全なメッセージリストを渡してください:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
llm = DFF.CONN('llm_connector_id')

messages = [
    {
        'role'   : 'system',
        'content': '簡潔に答えてください.',
    },
    {
        'role'   : 'user',
        'content': 'DataFlux Func とは何ですか?',
    },
]

response = llm.chat(messages, temperature=0)
reply    = response['choices'][0]['message']['content']

messages.append({
    'role'   : 'assistant',
    'content': reply,
})
messages.append({
    'role'   : 'user',
    'content': 'それはどのようなタスクに適していますか?',
})

response = llm.chat(messages, temperature=0)

3.3 一時的なモデル上書き

モデルは以下の優先順位で選択されます:

  1. .chat(...)model パラメータ;
  2. DFF.CONN(...)model パラメータ;
  3. コネクター設定の Model.
1
2
3
4
llm = DFF.CONN('llm_connector_id', model='default-model-for-this-object')

# この呼び出しでは another-model を使用します
response = llm.chat('こんにちは!', model='another-model')

4. 能力の境界とセキュリティ上の注意事項

  • 本コネクターは Chat Completions API を呼び出します. Responses API は呼び出しません.
  • 本コネクターは非ストリーミング応答のみをサポートします. stream=True を渡さないでください.
  • 本コネクターは対話履歴を保存せず,コンテキスト長も自動的に管理しません. モデルのコンテキストウィンドウ,DataFlux Func タスクのタイムアウト,および呼び出し元の要件に基づいて,メッセージ履歴と出力サイズを制限する必要があります.
  • 他のパラメータは **kwargs で透過できますが,本コネクターはツール呼び出し,ファイル,画像,オーディオなどの管理を担当せず,モデルが返すツールパラメータも自動的に実行しません.
  • モデル出力は信頼できないデータです. モデルが生成したコード,コマンド,SQL,またはツールパラメータを実行する前に,必ず別途検証して承認を確認してください.