| ================================================================================ |
| 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" |
| } |
|
|
| ================================================================================ |
| 测试完成 |
| ================================================================================ |