Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -46,29 +46,52 @@ class ChatCompletionCreateKwargs(TypedDict, total=False):
def _encode_user_message(
message: UserMessage,
) -> list[openai_types.ChatCompletionMessageParam]:
"""Convert Mirascope `UserMessage` to a list of OpenAI `ChatCompletionMessageParam`."""
"""Convert Mirascope `UserMessage` to a list of OpenAI `ChatCompletionMessageParam`.

Multiple text content parts are combined into a single user message.
Tool outputs become separate tool messages.
"""
current_content: list[openai_types.ChatCompletionContentPartTextParam] = []
result: list[openai_types.ChatCompletionMessageParam] = []

def flush_message_content() -> None:
nonlocal current_content
if current_content:
content: str | list[openai_types.ChatCompletionContentPartTextParam]
if len(current_content) == 1:
content = current_content[0]["text"]
else:
content = current_content
result.append(
openai_types.ChatCompletionUserMessageParam(
role="user", content=content
)
)
current_content = []

message_params: list[openai_types.ChatCompletionMessageParam] = []
for part in message.content:
if part.type == "text":
message_params.append(
openai_types.ChatCompletionUserMessageParam(
role="user",
content=part.text,
current_content.append(
openai_types.ChatCompletionContentPartTextParam(
text=part.text, type="text"
)
)
elif part.type == "tool_output":
message_params.append(
flush_message_content()
result.append(
openai_types.ChatCompletionToolMessageParam(
role="tool",
content=str(part.value),
tool_call_id=part.id,
)
)
else:
raise NotImplementedError
raise NotImplementedError(
f"Unsupported user content part type: {part.type}"
)
flush_message_content()

return message_params
return result


def _encode_assistant_message(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,9 @@ class ResponseCreateKwargs(TypedDict, total=False):
def _encode_user_message(
message: UserMessage,
) -> ResponseInputParam:
if len(message.content) == 1 and (first := message.content[0]).type == "text":
return [EasyInputMessageParam(content=first.text, role="user")]

current_content: list[ResponseInputContentParam] = []
result: ResponseInputParam = []

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -259,19 +259,19 @@ interactions:
access-control-allow-origin:
- '*'
age:
- '12769'
- '111296'
cache-control:
- max-age=31536000
content-length:
- '13444'
content-type:
- image/png
date:
- Tue, 21 Oct 2025 18:53:57 GMT
- Tue, 21 Oct 2025 16:24:31 GMT
etag:
- '"3484-640857429fa00"'
expires:
- Wed, 21 Oct 2026 18:53:57 GMT
- Wed, 21 Oct 2026 16:24:31 GMT
last-modified:
- Mon, 06 Oct 2025 23:03:04 GMT
nel:
Expand All @@ -281,30 +281,30 @@ interactions:
- '{ "group": "wm_nel", "max_age": 604800, "endpoints": [{ "url": "https://intake-logging.wikimedia.org/v1/events?stream=w3c.reportingapi.network_error&schema_uri=/w3c/reportingapi/network_error/1.0.0"
}] }'
server:
- ATS/9.2.11
- mw-web.codfw.main-79758cdbb8-7zq6v
server-timing:
- cache;desc="hit-front", host;desc="cp4042"
- cache;desc="hit-front", host;desc="cp2035"
set-cookie:
- WMF-Last-Access=21-Oct-2025;Path=/;HttpOnly;secure;Expires=Sat, 22 Nov 2025
- WMF-Last-Access=22-Oct-2025;Path=/;HttpOnly;secure;Expires=Sun, 23 Nov 2025
12:00:00 GMT
- WMF-Last-Access-Global=21-Oct-2025;Path=/;Domain=.wikipedia.org;HttpOnly;secure;Expires=Sat,
22 Nov 2025 12:00:00 GMT
- GeoIP=US:WA:Seattle:47.61:-122.31:v4; Path=/; secure; Domain=.wikipedia.org
- WMF-Last-Access-Global=22-Oct-2025;Path=/;Domain=.wikipedia.org;HttpOnly;secure;Expires=Sun,
23 Nov 2025 12:00:00 GMT
- GeoIP=US:WA:Seattle:47.54:-122.30:v4; Path=/; secure; Domain=.wikipedia.org
- NetworkProbeLimit=0.001;Path=/;Secure;SameSite=None;Max-Age=3600
- WMF-Uniq=YRbJ4-Bs1BfY2AA3JkmgpAKTAAAAAFvdzEh8SnF6gcn5bgnyea2ZhGgWlfsXiSpd;Domain=.wikipedia.org;Path=/;HttpOnly;secure;SameSite=None;Expires=Wed,
21 Oct 2026 00:00:00 GMT
- WMF-Uniq=R8GvmqBl7290uqCWGVhdvgKUAAAAAFvd4GlVWN7OEwrrnpWMi47mN3lSAPFSdlaP;Domain=.wikipedia.org;Path=/;HttpOnly;secure;SameSite=None;Expires=Thu,
22 Oct 2026 00:00:00 GMT
strict-transport-security:
- max-age=106384710; includeSubDomains; preload
x-analytics:
- ''
x-cache:
- cp4042 hit, cp4042 hit/82570
- cp2031 hit, cp2035 hit/151636
x-cache-status:
- hit-front
x-client-ip:
- 71.212.69.193
- 50.251.218.18
x-request-id:
- caab84fb-a054-4b1a-bb70-4e9ad2a65a34
- 7ef10e6b-a84f-4330-b7ba-281fe9cf015f
status:
code: 200
message: OK
Expand Down Expand Up @@ -348,36 +348,37 @@ interactions:
response:
body:
string: !!binary |
H4sIAAAAAAAAAwAAAP//dFTBcqMwDL3nKzycmw6kSSD5jr11dhhhBHFjLI8tp007+fcdTCCwbW+g
Jz1Les/+WgmRqDo5isSht2WKuNlk2UZintZpUaXpvmiKtIB8V+eyyA57wJdDVWV5sd3ncvuCyVNP
QdUbSh5pyPh7XDoExrqEHsvyfZYWu32aR8wzcPB9jaTOamSsh6IK5Ll1FEzfVwPa4xBWWivTJkfx
tRJCiMTCFV1fX+MFNVl0yUqIW0xG56jHTNA6BpQZTylrZFDaL1HPLkhWZBbxDj5KCmwDl0xn/A4y
kS4l6CVdRzXqvrPW8npL60262a7TYp3u7+uKlMlRvMZJhnkmJTrf/i7EAba7KESxzSCXFdY7zJsd
ysgcWfhqMfKg99DiA/ht4xGUZBjNo6l5YwvacR/4wVN1TABjiGHc4evfBaiptY6qH5BIdBTJnxMK
1UGLQnkBQlNLokHg4JRpBQhvT+iUBC3eVOvhXdjw+alRvCs+iQs4RcELeQIHktF5QUYo9sIqlOif
k+nI2/1r6iJxpONk4L3yDIaH5D4xJiUWHGiNeik3uzA40zq89KeXo/nLKORkB+uos1xKkCcsz3id
Yw7Bk1n4GpuGHM+SeulC14EbKyebe2iQr6Wq0bBqFC4s79FdlMSS1XhNGgh6EC3xTA7nQzB2Fl2/
7j6cPaf3aBTn3llDroPH/8wUMW/Y2r3jC7qKvOLrYMVahe5xPYc9nkjJYfGBKZmAh0cSJlvOnJNO
QTvv0QUjo+/ilMpDpce3JMQbMA2gzOIqb/aHp+/A7IGY5oza1Y/KdDHr/09EdvgJ+Il3kv83aiYG
Peu4KKYlBr/Uu0OGGhh6/tvq9g8AAP//AwAFUezz3AUAAA==
H4sIAAAAAAAAA3RUwXLiMAy99ys0OUMnsJAC37Eze+jsZBRHCS6O5bFlWtrpv+/EgZBs2xvoSS9P
0pM/HgAyXWcHyDwFV+ar/Gn3VCnaoGoKpDwvds2+KHa52q43u9V+g+umWatNvsNim1fbOlv0FFy9
kJIbDdtAQ1x5QqG6xB5bPRWr1dN2VewSFgQlhr5GcecMCV3JKlSn1nO0va4GTaAhrI3Rts0O8PEA
AJA5vJDv62s6k2FHPnsA+EzJ5D33mI3GpIC2t6+UNQlqE+ZoEB+VaLazeIdvJUdxUUrhE30FhdmU
Cs2cruOaTK+sdbLc8HKdrzfLfLfMi+u4EmV2gOfUydDPuIkutD8v4le+QpUW0dAe8y0V1b5eVzkm
5sQiF0eJh0LAlu7ATxNPoGIrZO+ipsJmtLd50JuM1SkBrWXB2wyf/85Aw63zXH2DJKIDZL+PBLrD
lqAmp5UEkCPBH33SjmqNYLjlBbwetTqCDoDQGq4I+lY4UA3cwItuA76Ci+/vhsBpUhTgVcsRzug1
xwDqiB6VkA/Atv9At4Bw6So2+l3bFrpoRPc2i2jgZPnVUN3SYzYK/rz+GnvIPJs0FwxBB0ErQ3Kf
mJIyhx6NITM3i/g4+Np5OvfaytvplMkGo5mc585JqVAdqTzRZYp5wsB2dhXUNOxlktQvPnYd+lvl
eCQBG5JLqWuyohtNs4MJ5M9aUSn6dmQNRjOsPAvCnqZNCHWOPEpM4dVjfo2m1V6VNew7vP+fWCrl
DVO7Kj6TrzhouQxGrnXs7sc9zPHIWg2Dj8LZCNwdlgm7cuK7fAy6qUYfrUquTV3qgJW5vUQx3c/Y
gLazh2Bd7BdfgcnzMvaZdlffK/NZr/8/MOv9d8B3vOP6f6IWFjRT5t04xBjm++5IsEbBnv/z4fMf
AAAA//8DAIg4CzQaBgAA
headers:
CF-RAY:
- 99242db22db8fd8a-SEA
- 992cb8409f9531ba-SEA
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Type:
- application/json
Date:
- Tue, 21 Oct 2025 22:26:50 GMT
- Wed, 22 Oct 2025 23:19:31 GMT
Server:
- cloudflare
Set-Cookie:
- __cf_bm=k93_.5nSyKbdeLgO5__6Kff.Kj5vQV7YP8_aY.v8Dd8-1761085610-1.0.1.1-ahdR5HJQyBdLjs1gA_LTCb_oBgaupOtTiQAQk0DGVMnvS829T1P8iajClDEdIMEOLp9UoC25_5ZjOT8XjWY0INUhBk75BtlLAYruVEltg5Q;
path=/; expires=Tue, 21-Oct-25 22:56:50 GMT; domain=.api.openai.com; HttpOnly;
- __cf_bm=fhM9KzwDLU2cL1VZZV7OBm3Ry52hnX0vX1kqMCoauQw-1761175171-1.0.1.1-EMkjJBe8rIGB_birWFD2ameW_FSd6TABR4bjuA.fxqmmAaSXMxrbb9dOqIwWmQPfP272VVTeBRtideqVGqZRlpbFvfn5YmT1uMZnaGdIKr4;
path=/; expires=Wed, 22-Oct-25 23:49:31 GMT; domain=.api.openai.com; HttpOnly;
Secure; SameSite=None
- _cfuvid=Nf0EabN3PVlhmI4nh0YqCzV7oAi.8XlYOkxicPocPrg-1761085610853-0.0.1.1-604800000;
- _cfuvid=nmOvdErqqdKswiFL46FqmJVN5X0pH.l0s_dFu9h9Rh8-1761175171858-0.0.1.1-604800000;
path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security:
- max-age=31536000; includeSubDomains; preload
Expand All @@ -392,13 +393,13 @@ interactions:
openai-organization:
- sotai-i3ryiz
openai-processing-ms:
- '3548'
- '3071'
openai-project:
- proj_2kPLXdwNOjkHt3ifb0aZ4FwU
openai-version:
- '2020-10-01'
x-envoy-upstream-service-time:
- '4028'
- '3076'
x-ratelimit-limit-requests:
- '5000'
x-ratelimit-limit-tokens:
Expand All @@ -412,7 +413,7 @@ interactions:
x-ratelimit-reset-tokens:
- 57ms
x-request-id:
- req_43d13c4e70ad4e109961321929b5bd8c
- req_88f829a1c37141fca848cb2aaab1e79b
status:
code: 200
message: OK
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,29 +39,29 @@ interactions:
response:
body:
string: !!binary |
H4sIAAAAAAAAAwAAAP//dFTLbuMwDLznKwSfm8LO2/mOBfZQLAxaom1tZFOQqKRpkX9fWE4ce9ve
Eg45HnJIfS6ESLRKjiJx6G2R5rtyv5YyW0Gq1Fam6e5QHdIDlOm+3ByyfF3u03W+3ueZgu2mVOvk
paeg8i9KftBQ53GIS4fAqArosWy/y9LDdpdlEfMMHHxfI6m1BhnVUFSCPNWOQtfrqsB4HMLaGN3V
yVF8LoQQIrFwRdfXKzyjIYsuWQhxi8noHPVYF4yJAd09vlIoZNDGz1HPLkjW1M3iLbwXFNgGLphO
+BVkIlNIMHO6lhSaXlltebmh5SpdbZbpYZnu7uOKlMlRvMVOhn5GJ1pf/2yE3MMmGpHv92m2grXC
crfNq4E5svDVYuRB76HGJ/DTxCMoqWPsnqKmwma0j3ngO4/VMQG6jhgeM3z7MwMN1dZR+Q0SiY4i
+dWg0C3UKHxDFy+4QfFbn7RFpUEYqulFXBotG6G9AFEbKlG0oFBQJWz4+DAorEaJXlw0N0I24EAy
Oi8qR604g9MUvLg4zbqrhb96xta/JqOY2/3XqC9xZGLP4L32DB0PyX1iTEosODAGzXwR2IVhZ63D
c//R4nEWRbR4XBTrqLVcSJANFie8TjGH4KmbbTxWFTmeJPWmhrYF96gcD8BDhXwttMKOdaVxdgwe
3VlLLFg/DqiCYAY7E8/kcNoEY2vRAYcYzl7TezTadldWkWvh+X+yLjFvmNpd8RldSV7zdVhSpUP7
PNxhjg1pOQw+MCUj8NyehMkWk51Kx6CdanShk3EjY5faQ2ker0yItzE2oLvZka92+ctXYPJ0jH1G
79SzMp31+v/jsVp/B3zHO9r/EzUTg5kw56txiMHP/W6RQQFDz39b3P4BAAD//wMAjwMegfYFAAA=
H4sIAAAAAAAAAwAAAP//dFTbjqMwDH3vV0Q8T0fQCy39jpX2YbRCJhiabYijxOlOZ9R/XxEKhd2Z
N/CxT2yfk3yuhEhUnZxE4tDbMt0esnqz21eQNgBNkab5sSny/Lirctwds2IPRzhWh32Bm2abb2tM
XnoKqn6j5JGGjH/EpUNgrEvoseyQZ9lhnx22EfMMHHxfI6mzGhnroagCeWkdBdP31YD2OISV1sq0
yUl8roQQIrFwQ9fX13hFTRZdshLiHpPROeoxE7SOAWXGU8oaGZT2S9SzC5IVmUW8g/eSAtvAJdMF
/weZSJcS9JKuoxp131lreb2j9Sbd7NbpcZ3mj3VFyuQk3uIkwzyTEp1vvxfisM+PaRSiKIos31TZ
oUr30GSRObLwzWLkQe+hxSfw3cYjKMkwmmdT88YWtOM+8J2n6pgAxhDDuMO3XwtQU2sdVV8gkegk
kh9nFKqDFoXygs8ofqqLslgrEJpaehENAgenTCtAtJoqFB3UKKgRNnx8aBRWoUQv/ig+iys4RcEL
eQYHktF5Qaan7V6T6fT742tqKHGk45DgvfIMhofkPjEmJRYcaI16qTy7MJjUOrz255bjPSijppMz
rKPOcilBnrG84G2OOQRPZmFxbBpyPEvqVQxdB26snBzvoUG+lapGw6pRuHC/R3dVEktW441pIOhB
v8QzOZwPwdhZdP2y+3D2mj6iUadHZw25Dp7/M3/EvGFrj46v6Cryim+DK2sVuudNHfZ4JiWHxQem
ZAKedkmYbDkzUToF7bxHF4yMFoxTKg+VHp+VEC/DNIAyi1u9yYuX/4HZWzHNGbWrn5XpYtZ/X4tN
9hXwFe8k/3fUTAx6xlyk0xKDX+rdIUMNDD3/fXX/CwAA//8DAFq8i/TnBQAA
headers:
CF-RAY:
- 99242dcc9d10fd8a-SEA
- 992cb8593b3931ba-SEA
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Type:
- application/json
Date:
- Tue, 21 Oct 2025 22:26:52 GMT
- Wed, 22 Oct 2025 23:19:36 GMT
Server:
- cloudflare
Strict-Transport-Security:
Expand All @@ -77,13 +77,13 @@ interactions:
openai-organization:
- sotai-i3ryiz
openai-processing-ms:
- '1911'
- '3371'
openai-project:
- proj_2kPLXdwNOjkHt3ifb0aZ4FwU
openai-version:
- '2020-10-01'
x-envoy-upstream-service-time:
- '1916'
- '3379'
x-ratelimit-limit-requests:
- '5000'
x-ratelimit-limit-tokens:
Expand All @@ -97,7 +97,7 @@ interactions:
x-ratelimit-reset-tokens:
- 57ms
x-request-id:
- req_dd97d786ea24413c86cb7fdd93a9cb67
- req_fc70dc827bc04aab8e9ab2aa424870bf
status:
code: 200
message: OK
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
interactions:
- request:
body: '{"input":[{"content":[{"text":"What is 4200 + 42?","type":"input_text"}],"role":"user","type":"message"}],"max_output_tokens":500,"model":"gpt-4o","temperature":0.7,"top_p":0.3}'
body: '{"input":[{"content":"What is 4200 + 42?","role":"user"}],"max_output_tokens":500,"model":"gpt-4o","temperature":0.7,"top_p":0.3}'
headers:
accept:
- application/json
Expand All @@ -9,7 +9,7 @@ interactions:
connection:
- keep-alive
content-length:
- '177'
- '129'
content-type:
- application/json
host:
Expand Down Expand Up @@ -39,36 +39,30 @@ interactions:
response:
body:
string: !!binary |
H4sIAAAAAAAAA3RU0Y6jMAx871dEeb3tKVBKS39ldUJuYrq5DUkucaqtVv33E6FAudt9A4892DM2
nxvGuFb8xHjA6FshEZuqVDvcya5WeyHqY3cUu0JiqY7HoqnPRdPtm52UAg/NXhz4y0Dhzr9R0kTj
bMQxLgMCoWphwIpDXYhjVRybjEUCSnGoka73BgnVWHQG+X4JLtmhrw5MxDGsjdH2wk/sc8MYY9zD
DcNQr/CKxnkMfMPYPSdjCG7AbDImB7SdvtIqJNAmrtFIIUnSzq7iPXy0LpFP1JJ7xwzuhZgxcs60
EsyarXcKzdDYxdO2cttSlNVWHLeifqiVGfmJveZBxnFmI/p4+d4HBaoUDx8OZV3KfdE0u64Ypcss
dPOYeTBGuOACfCd4BqWzhHZp6rmxFe0kB37QXJ0TwFpHMEn4+msFGnfxwZ2/QDLRifGqFIL9YFXJ
8E8CE1lVVuVPPqfeH09zNQ/O5I4gRh0JLI3JQ2JO4h4CGINmbROFNC6UD3jVLsV22tk2GzDb6IPr
PbUS5Bu273h7xgJCdHa1jth1LtBT0iB56nsIU+W8nRE6pFurFVrSncbVpkYMVy2xJT1tdwfJjGLz
SC7g8xCEvccAlHJY/Dw8olnUR2edCz0s709m5rxRtUfHVwxnFzXdxhVSOvXLVY06vjktR+ETOT4D
i7ecnG+fHBdz0Oced+N7SFbmfclT6ghnM/0CUt7ceQBtVxdY1C//x5/Oeh4zW6eWQrEa9d/DLoqv
gK94Z/e/oyZHYBawPMwSprh2u0cCBQQD/X1z/wsAAP//AwC8YZJ4kQUAAA==
H4sIAAAAAAAAA3RU246jMAx971dEed3pKtCWS39ltEKGmE52QpJNnGqqUf99RSgUdmfewMc+2OfY
fO4Y40ryM+Meg2uErEUuBVYHiSd5KoQoqr4uiqpqi76qsrqoenHIyoPAohBVnpf8ZaSw7W/saKax
JuAU7zwCoWxgxLKyyLLylJVFwgIBxTDWdHZwGgnlVNRC937xNpqxrx50wCmstFbmws/sc8cYY9zB
Df1YL/GK2jr0fMfYPSWj93bETNQ6BZSZv9JIJFA6bNFAPnakrNnEB/hobCQXqSH7jgk8CbFgZK1u
OtBbtsFK1GNjF0f7o93nIj/uRbUXxUOtxMjP7DUNMo2zGDGEy/c+1L1okw911dfdAURdyjYr+ywx
Jxa6OUw8GAJc8Al8J3gCO2sIzbOpdWMb2lkO/KClOiWAMZZglvD11wbU9uK8bb9AEtGZ8WMuBPvB
jjnDPxF0YMf8mP/kS+r98bRUc2916ghCUIHA0JQ8JqYk7sCD1qi3NpGP00I5j1dlY2jmnW2SAYuN
ztvBUdNB94bNO97WmEcI1mzWEfveeloljZLHYQA/Vy7bGaBHujVKoiHVK9xsakB/VR02pObt7iHq
SWweyHpcD0E4OPRAMYXFz/IRTaI+OuutH+D5vjIz5U2qPTq+om9tUHSbVkiqODyvatLxzapuEj6S
5Qvw9JaTdc3KcbEEXerxML37aLq0L2lKFaDV8y8gps1dBlBmc4FZ8fJ/fHXWy5jJOvksFJtR/z3s
LPsK+Ip3cf87arIE+gnm5SJhDFu3BySQQDDS33f3vwAAAP//AwDK1E8vkQUAAA==
headers:
CF-RAY:
- 99240b141983a384-SEA
- 992cb87338cb31ba-SEA
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Type:
- application/json
Date:
- Tue, 21 Oct 2025 22:03:10 GMT
- Wed, 22 Oct 2025 23:19:38 GMT
Server:
- cloudflare
Set-Cookie:
- __cf_bm=MRHkwPoUWvTHKkm_PjHwq14taZ9HbCNP_AFqmH6MrNs-1761084190-1.0.1.1-ZEXMfnVcFesGmZ_DLJdEgmuNoFWIVWYBus.zFUXsU0lP3bl0J.kz8FoaIoddl7CiEdecJ_oMN8zLy6xIk1Tn2IOW3UNb4KVXLNwCLOHd5yg;
path=/; expires=Tue, 21-Oct-25 22:33:10 GMT; domain=.api.openai.com; HttpOnly;
Secure; SameSite=None
- _cfuvid=LtKS2w9Ws82f46SAMdIBbxU6h9Zs7uPwXvBw.h2gnP8-1761084190024-0.0.1.1-604800000;
path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None
Strict-Transport-Security:
- max-age=31536000; includeSubDomains; preload
Transfer-Encoding:
Expand All @@ -82,13 +76,13 @@ interactions:
openai-organization:
- sotai-i3ryiz
openai-processing-ms:
- '1121'
- '1588'
openai-project:
- proj_2kPLXdwNOjkHt3ifb0aZ4FwU
openai-version:
- '2020-10-01'
x-envoy-upstream-service-time:
- '1127'
- '1595'
x-ratelimit-limit-requests:
- '5000'
x-ratelimit-limit-tokens:
Expand All @@ -102,7 +96,7 @@ interactions:
x-ratelimit-reset-tokens:
- 2ms
x-request-id:
- req_d086ae6f912847cda68256eccc846101
- req_0c4c7bcc329b4bf897cf08e0788202de
status:
code: 200
message: OK
Expand Down
Loading