ボルトオンのガバナンスAPI¶
このノートブックでは、デプロイ済みLLMブループリントでボルトオンのガバナンスAPIを使用する方法がまとめられています。プレイグラウンドからデプロイされたLLMブループリントは、カスタムモデルのcustom.py
ファイルでchat()
フックをデフォルトで実装します。
ボルトオンのガバナンスAPIを使う¶
OpenAI APIの公式Pythonライブラリを使用して、DataRobot LLMブループリントデプロイにチャット補完リクエストを行うことができます。
!pip install openai=="1.51.2"
from openai import OpenAI
LLMブループリントのデプロイのIDとDataRobot APIトークンを指定します。
DEPLOYMENT_ID = "<SPECIFY_DEPLOYMENT_ID_HERE>"
DATAROBOT_API_TOKEN = "<SPECIFY_TOKEN_HERE>"
DEPLOYMENT_URL = f"https://app.datarobot.com/api/v2/deployments/{DEPLOYMENT_ID}"
OpenAIクライアントを作成するには、以下のコードを使用します。
client = OpenAI(base_url=DEPLOYMENT_URL, api_key=DATAROBOT_API_TOKEN)
チャット補完を要求するには、以下のコードを使用します。model
パラメーター指定の詳細については、以下の 注意事項を参照してください。
Note that specifying the system message in the request overrides the system prompt set in the LLM blueprint. Specifying other settings in the request, such as max_completion_tokens
, overrides the settings of the LLM blueprint.
completion = client.chat.completions.create(
model="datarobot-deployed-llm",
messages=[
{"role": "system", "content": "Answer with just a number."},
{"role": "user", "content": "What is 2+3?"},
{"role": "assistant", "content": "5"},
{"role": "user", "content": "Now multiply the result by 4."},
{"role": "assistant", "content": "20"},
{"role": "user", "content": "Now divide the result by 2."},
],
)
print(completion)
以下のセルを使って、ストリーミングレスポンスでチャット補完を要求します。
streaming_response = client.chat.completions.create(
model="datarobot-deployed-llm",
messages=[
{"role": "system", "content": "Explain your thoughts using at least 100 words."},
{"role": "user", "content": "What would it take to colonize Mars?"},
],
stream=True,
)
for chunk in streaming_response:
content = chunk.choices[0].delta.content
if content is not None:
print(content, end="")
注意事項¶
ボルトオンのガバナンスAPIを使用する際は、以下の点に注意してください。
変更せずにチャット補完フックを実装した場合、
chat()
フックの動作はscore()
フックとは異なります。具体的には、変更されていないchat()
フック はcompletion_create_params
引数を介してmodel
パラメーターを渡しますが、score()
フックはカスタムモデルコード内のモデルを指定します。デプロイされたLLMをプレイグラウンドに追加すると、検証では「チャットモデルID」フィールドに入力された値が
model
パラメーターの値として使用されます。LLMのデプロイがこの値をmodel
パラメーターとして受け入れることを確認します。受け入れない場合は、chat()
フックの実装を変更してmodel
パラメーターの値を上書きし、目的のモデルを定義します( ランタイムパラメーターを使用するなど)。詳細については、GenAIのトラブルシューティングを参照してください。ボルトオンのガバナンスAPIは、
datarobot-drum>=1.14.3
で実行されているカスタムモデルのGPU環境でも使用できます。