构建您自己的自托管瘦客户端#
概述#
瘦客户端和 CLI 提供了访问 cuOpt 服务的便利性,但这些只是关于如何与 cuOpt 服务通信的参考。如果您想创建自己的瘦客户端,下面讨论了 API 的底层细节。
注意
请不要使用 cuopt_self_host_client.py
或 cuopt_sh_client.py
作为您的瘦客户端名称,只是为了避免在您从 pypi 安装了 cuopt 瘦客户端时产生混淆。
调用 cuOpt 服务#
当负载是文件时发送 cuOpt 请求#
requestBody
包含一个 JSON 对象,该对象将由 cuOpt 处理。
以 JSON 数据作为直接字符串的示例
1curl --location 'http://ip:port/cuopt/requests' \
2--header 'Content-Type: application/json' \
3-d 'JSON_DATA'
以 JSON 数据作为文件的示例
1curl --location 'http://ip:port/cuopt/requests' \
2--header 'Content-Type: application/json' \
3--header 'CUOPT-DATA-FILE: data_file_path' \
4-d '{}'
JSON_DATA
应遵循为 cuOpt 输入描述的 Open-API 规范。
cuOpt 结果检索#
cuOpt 服务采用异步接口进行调用和结果检索。当您发出调用请求时,系统会将您的问题提交给求解器并返回一个请求 ID。
1{
2 "reqId": "ef4c1967-d543-467c-af7e-8c7899d75be8",
3}
轮询响应
您必须轮询请求 ID 以获取响应。响应可能包含解决方案,或者可能包含错误。
1curl --location 'http://ip:port/cuopt/requests/{request-id}'
HTTP 状态 200 已完成结果
HTTP 状态 202 轮询响应
HTTP 状态 4xx 用于任何服务器级别故障
为了获得最佳性能,期望客户端在确定不再需要与服务器进行进一步通信之前,不会关闭连接。