2api / src /api /Response_example.txt
lin7zhi's picture
Upload folder using huggingface_hub
69fec20 verified
================================================================================
GeminiCli API 测试
================================================================================
================================================================================
【测试1】流式请求 (stream_request with native=False)
================================================================================
请求体: {
"model": "gemini-2.5-flash",
"request": {
"contents": [
{
"role": "user",
"parts": [
{
"text": "Hello, tell me a joke in one sentence."
}
]
}
]
}
}
流式响应数据 (每个chunk):
--------------------------------------------------------------------------------
[2026-01-10 09:55:29] [INFO] SQLite storage initialized at ./creds\credentials.db
[2026-01-10 09:55:29] [INFO] Using SQLite storage backend
[2026-01-10 09:55:31] [INFO] Token刷新成 功并已保存: my-project-9-481103-1765596755.json (mode=geminicli)
[2026-01-10 09:55:34] [INFO] [DB] 准备commit,总更新行数=1
[2026-01-10 09:55:34] [INFO] [DB] commit 完成
[2026-01-10 09:55:34] [INFO] [DB] update_credential_state 结束: success=True, updated_count=1
Chunk #1:
类型: str
长度: 626
内容预览: 'data: {"response": {"candidates": [{"content": {"role": "model","parts": [{"text": "Why did the scarecrow win an award? Because he was outstanding in his field."}]},"finishReason": "STOP"}],"usageMeta'
解析后的JSON: {
"response": {
"candidates": [
{
"content": {
"role": "model",
"parts": [
{
"text": "Why did the scarecrow win an award? Because he was outstanding in his field."
}
]
},
"finishReason": "STOP"
}
],
"usageMetadata": {
"promptTokenCount": 10,
"candidatesTokenCount": 17,
"totalTokenCount": 51,
"trafficType": "PROVISIONED_THROUGHPUT",
"promptTokensDetails": [
{
"modality": "TEXT",
"tokenCount": 10
}
],
"candidatesTokensDetails": [
{
"modality": "TEXT",
"tokenCount": 17
}
],
"thoughtsTokenCount": 24
},
"modelVersion": "gemini-2.5-flash",
"createTime": "2026-01-10T01:55:29.168589Z",
"responseId": "kbFhaY2lCr-ZseMPqMiDmAU"
},
"traceId": "55650653afd3c738"
}
Chunk #2:
类型: str
长度: 0
内容预览: ''
E:\projects\gcli2api\src\api\geminicli.py:491: RuntimeWarning: coroutine 'get_auto_ban_error_codes' was never awaited
async for chunk in stream_request(body=test_body, native=False):
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
总共收到 2 个chunk
================================================================================
【测试2】非流式请求 (non_stream_request)
================================================================================
请求体: {
"model": "gemini-2.5-flash",
"request": {
"contents": [
{
"role": "user",
"parts": [
{
"text": "Hello, tell me a joke in one sentence."
}
]
}
]
}
}
[2026-01-10 09:55:35] [INFO] Token刷新成 功并已保存: gen-lang-client-0194852792-1767296759.json (mode=geminicli)
[2026-01-10 09:55:38] [INFO] [DB] 准备commit,总更新行数=1
[2026-01-10 09:55:38] [INFO] [DB] commit 完成
[2026-01-10 09:55:38] [INFO] [DB] update_credential_state 结束: success=True, updated_count=1
E:\projects\gcli2api\src\api\geminicli.py:530: RuntimeWarning: coroutine 'get_auto_ban_error_codes' was never awaited
response = await non_stream_request(body=test_body)
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
非流式响应数据:
--------------------------------------------------------------------------------
状态码: 200
Content-Type: application/json; charset=UTF-8
响应头: {'server': 'openresty', 'date': 'Sat, 10 Jan 2026 01:55:34 GMT', 'content-type': 'application/json; charset=UTF-8', 'transfer-encoding': 'chunked', 'connection': 'keep-alive', 'x-cloudaicompanion-trace-id': 'bf3a5eb6636774d2', 'vary': 'Origin, X-Origin, Referer', 'content-encoding': 'gzip', 'x-xss-protection': '0', 'x-frame-options': 'SAMEORIGIN', 'x-content-type-options': 'nosniff', 'server-timing': 'gfet4t7; dur=1377', 'alt-svc': 'h3=":443"; ma=2592000,h3-29=":443"; ma=2592000', 'access-control-allow-origin': '*', 'access-control-allow-methods': 'GET, POST, PUT, DELETE, PATCH, OPTIONS', 'access-control-allow-headers': 'Content-Type, Authorization, X-Requested-With', 'cache-control': 'no-cache', 'content-length': '969'}
响应内容 (原始):
{
"response": {
"candidates": [
{
"content": {
"role": "model",
"parts": [
{
"text": "Why did the scarecrow win an award? Because he was outstanding in his field!"
}
]
},
"finishReason": "STOP",
"avgLogprobs": -0.54438119776108684
}
],
"usageMetadata": {
"promptTokenCount": 10,
"candidatesTokenCount": 17,
"totalTokenCount": 47,
"trafficType": "PROVISIONED_THROUGHPUT",
"promptTokensDetails": [
{
"modality": "TEXT",
"tokenCount": 10
}
],
"candidatesTokensDetails": [
{
"modality": "TEXT",
"tokenCount": 17
}
],
"thoughtsTokenCount": 20
},
"modelVersion": "gemini-2.5-flash",
"createTime": "2026-01-10T01:55:33.450396Z",
"responseId": "lbFhady-G7yi694PmLOP4As"
},
"traceId": "bf3a5eb6636774d2"
}
响应内容 (格式化JSON):
{
"response": {
"candidates": [
{
"content": {
"role": "model",
"parts": [
{
"text": "Why did the scarecrow win an award? Because he was outstanding in his field!"
}
]
},
"finishReason": "STOP",
"avgLogprobs": -0.5443811977610868
}
],
"usageMetadata": {
"promptTokenCount": 10,
"candidatesTokenCount": 17,
"totalTokenCount": 47,
"trafficType": "PROVISIONED_THROUGHPUT",
"promptTokensDetails": [
{
"modality": "TEXT",
"tokenCount": 10
}
],
"candidatesTokensDetails": [
{
"modality": "TEXT",
"tokenCount": 17
}
],
"thoughtsTokenCount": 20
},
"modelVersion": "gemini-2.5-flash",
"createTime": "2026-01-10T01:55:33.450396Z",
"responseId": "lbFhady-G7yi694PmLOP4As"
},
"traceId": "bf3a5eb6636774d2"
}
================================================================================
测试完成
================================================================================