测试人工智能服务部署

人工智能服务提供在线推理功能,您可以利用它对新数据进行实时推理。 对于需要批量评分的用例,可以运行批量部署作业来测试人工智能服务部署。

测试人工智能服务部署的方法

人工智能服务提供在线推理功能,您可以利用它对新数据进行实时推理。 这种推理能力适用于需要实时预测的应用,如聊天机器人、推荐系统和欺诈检测系统。

要测试在线推理的人工智能服务,可以使用watsonx.ai用户界面、Python客户端库或 REST API。 如需了解更多信息,请参阅在线评分的推理人工智能服务部署

对于需要批量评分的用例,可创建并运行批量部署作业。 您可以将任何有效的 JSON 输入作为有效负载提供给 REST API 端点,以便进行推理。 有关详细信息,请参阅测试人工智能服务的批量部署

测试在线评分的人工智能服务部署

您可以使用watsonx.ai用户界面、REST API 或watsonx.ai Python客户端库推断您的人工智能服务在线部署。

利用用户界面进行推理

您可以使用用户界面,通过提供任何符合模型模式的有效 JSON 输入有效负载来推断您的人工智能服务。 请按照以下步骤推断您的人工智能服务部署:

  1. 在部署空间或项目中,打开 "部署"选项卡并单击部署名称。

  2. 单击 "测试"选项卡输入提示文本,并从部署的资产中获取响应。

  3. 输入 JSON 格式的测试数据,生成 JSON 格式的输出。

    限制:

    您不能输入文本格式的输入数据来测试人工智能服务部署。 您必须使用 JSON 格式进行测试。

    利用 JSON 模式部署推理人工智能服务

要从用户界面推理作为人工智能服务部署的流应用程序,请按照以下步骤操作:

  1. 在部署空间或项目中,打开 "部署"选项卡并单击部署名称。

  2. 单击 " 预览 "选项卡与已部署的应用程序聊天。

    通过聊天推断人工智能服务部署

使用 REST API 进行推理

注:

如果您的服务未被使用,它可能处于 dormant 状态。 调用此服务失败。 要查看所有部署的状态,请运行以下命令:

curl -X GET "<Your watsonx URL>/ml/v4/deployments?space_id=<spaceid>&version=2025-08-01

如果您的部署处于休眠状态,请运行以下命令:

curl -X GET /ml/v4/deployments/<your deployment ID or name>?attempt_activation=true&version=2025-08-01

请确保该 version 参数值不小于 2025-08-01。 API 的早期版本行为有所不同。

此命令将返回包含状态 initializing 和状态码的部署元 202数据。

请稍等几分钟,然后再次运行该命令。

如果该命令返回了部署元数据和状态码 200,您就可以开始对该服务进行推理了。

使用 "/ml/v4/deployments/{id_or_name}/ai_serviceREST 端点推断在线评分的人工智能服务(包含 "generate()功能的人工智能服务):

# Any valid json is accepted in POST request to /ml/v4/deployments/{id_or_name}/ai_service
payload = {
    "mode": "json-custom-header",
    't1': 12345 ,
    't2': ["hello", "wml"],
    't3': {
        "abc": "def",
        "ghi": "jkl"
    }
}

response = requests.post(
    f'{HOST}/ml/v4/deployments/{dep_id}/ai_service?version={VERSION}',
    headers=headers,
    verify=False,
    json=payload
)

print(f'POST {HOST}/ml/v4/deployments/{dep_id}/ai_service?version={VERSION}', response.status_code)

from json.decoder import JSONDecodeError
try:
    print(json.dumps(response.json(), indent=2))
except JSONDecodeError:
    print(f"response text >>\n{response.text}")

print(f"\nThe user customized content-type >> '{response.headers['Content-Type']}'")

使用 "/ml/v4/deployments/{id_or_name}/ai_service_streamREST 端点为流式应用推断人工智能服务(包含 "generate_stream()功能的人工智能服务):

TOKEN=f'{client._get_icptoken()}'
%%writefile payload.json
{
    "sse": ["Hello" ,"WatsonX", "!"]
}
!curl -N \
    -H "Content-Type: application/json" -H  "Authorization: Bearer {TOKEN}" \
    {HOST}'/ml/v4/deployments/'{dep_id}'/ai_service_stream?version='{VERSION} \
    --data @payload.json

输出

id:1 事件:消息数据:你好

id: 2 event: message data:WatsonX

id:3 事件:消息数据: !

id:4 事件:EOS

使用Python客户端库进行推理

使用 "run_ai_service函数,通过提供评分有效载荷来运行人工智能服务:

ai_service_payload = {"query": "testing ai_service generate function"}

client.deployments.run_ai_service(deployment_id, ai_service_payload)

使用 "run_ai_service_stream函数,通过提供评分有效载荷,为流媒体应用运行人工智能服务。

ai_service_payload = {"sse": ["Hello", "WatsonX", "!"]}

for data in client.deployments.run_ai_service_stream(deployment_id, ai_service_payload):
    print(data)

要获取更多信息,请参阅:

测试人工智能服务的批量部署

如果您为人工智能服务(包含 "generate_batch()函数的人工智能服务资产)创建了批量部署,您可以使用watsonx.ai用户界面、Python客户端库或 REST API 创建并运行批量部署作业。

用户界面测试

要了解从部署空间用户界面为人工智能服务创建和运行批量部署作业的更多信息,请参阅在部署空间中创建作业

使用Python客户端库进行测试

请按照以下步骤创建并运行一个作业,以测试批处理部署:

  1. 创建一个任务来测试人工智能服务的批量部署:

    batch_reference_payload = {
        "input_data_references": [
            {
                "type": "connection_asset",
                "connection": {"id": "2d07a6b4-8fa9-43ab-91c8-befcd9dab8d2"},
                "location": {
                    "bucket": "wml-v4-fvt-batch-pytorch-connection-input",
                    "file_name": "testing-123",
                },
            }
        ],
        "output_data_reference": {
            "type": "data_asset",
            "location": {"name": "nb-pytorch_output.zip"},
        },
    }
    
    job_details = client.deployments.create_job(deployment_id, batch_reference_payload)
    job_uid = client.deployments.get_job_uid(job_details)
    print("The job id:", job_uid)
    
  2. 检查工作状态:

    ##  Get job status
    client.deployments.get_job_status(job_uid)
    

了解更多