fix fresh-host acceptance and document real-host debugging learnings

This commit is contained in:
phamnazage-jpg
2026-05-21 21:19:19 +08:00
parent 7c6e18f94d
commit 3ba3244ea6
85 changed files with 1721 additions and 162 deletions

View File

@@ -0,0 +1,47 @@
# 2026-05-21 completion smoke calibration
## Scope
- CRM: `http://127.0.0.1:18100`
- Fresh host: `http://127.0.0.1:18097`
- Script head: `scripts/import_remote43_provider.sh` with managed subscription probe key + local `PACK_PATH` default fix
## Latest real-host artifacts
- DeepSeek: `artifacts/real-host-acceptance/20260521_064403_remote43_deepseek_key_import`
- MiniMax: `artifacts/real-host-acceptance/20260521_064454_remote43_minimax_key_import`
## Verified facts
1. Acceptance-harness false negative fixed
- Both latest artifacts now show `09-models.headers.txt = HTTP 200`
- Both latest artifacts show correct target models in `10-models.body.json`
- DeepSeek `08-subscription-group-state.json` and MiniMax counterpart now show real managed user / subscription / key bound to the imported subscription group when the script points at the correct fresh-host Postgres/Redis containers.
2. CRM/import closure still reports success
- DeepSeek latest import: `batch_id=11`, `access_status=subscription_ready`, `latest_access_status=subscription_ready`
- MiniMax latest import: `batch_id=12`, `access_status=subscription_ready`, `latest_access_status=subscription_ready`
3. Real completion smoke still fails
- DeepSeek host-managed key: `/v1/chat/completions` returns `502 upstream_error` (`Upstream service temporarily unavailable`)
- MiniMax host-managed key: `/v1/chat/completions` returns `502 upstream_error` (`Upstream access forbidden, please contact administrator`)
4. Upstream direct probe split proves two different blocker classes
- DeepSeek upstream direct probe against `https://aitoken.quanfuli.cn/v1`
- `/models`: HTTP 200
- `/chat/completions`: HTTP 200
- Therefore the host-side 502 is not explained by an unusable upstream key alone.
- MiniMax upstream direct probe against `https://v2.aicodee.com/v1`
- `/models`: HTTP 200
- `/chat/completions`: HTTP 403 `insufficient_user_quota`
- Therefore the current MiniMax validation key is not usable for real completion traffic.
## Current conclusion
- `subscription_ready` + `/v1/models` success is no longer enough to claim full provider acceptance.
- The previous script-level `401 Unauthorized` diagnosis is closed.
- The active real-environment blocker has moved to completion-smoke truth:
- DeepSeek: host-side completion compatibility still unresolved
- MiniMax: validation key/quota not sufficient for completion traffic
## Gate impact
- Code gate: PASS
- Real import/access-closure gate: PASS
- Real completion-smoke gate: FAIL
- Overall: not `APPROVED` for full end-to-end provider traffic acceptance

View File

@@ -0,0 +1,6 @@
{
"source": "env:MINIMAX_53HK_API_KEY",
"provider_id": "minimax",
"upstream_key_prefix": "sk-4175b7d84",
"upstream_key_suffix": "42d776"
}

View File

@@ -0,0 +1,13 @@
{
"crm_base": "http://127.0.0.1:18106",
"host_base": "http://127.0.0.1:18097",
"crm_host_base": "http://127.0.0.1:18097",
"provider_id": "minimax",
"subscription_user_id": "19",
"subscription_user_key_prefix": "sk-177936206",
"subscription_group_id": "6",
"admin_user_id": "1",
"managed_user_email": "19-a849d81aeef97389@sub2api.local",
"managed_user_id": "",
"managed_probe_key_prefix": "sk-relay-a849d81ae"
}

View File

@@ -0,0 +1 @@
{"host_id": "remote43-fresh18097-deepseek-1779280533", "base_url": "http://127.0.0.1:18097", "host_version": "0.1.126", "auth_type": "bearer", "status": "unsupported", "capabilities": {"groups": true, "channels": true, "plans": true, "accounts": true, "account_test": false, "account_models": true, "subscriptions": true}}

View File

@@ -0,0 +1,5 @@
HTTP/1.1 200 OK
Content-Type: application/json
Date: Thu, 21 May 2026 11:14:35 GMT
Content-Length: 1023

View File

@@ -0,0 +1 @@
{"accepted_keys_count":1,"access_status":"subscription_ready","accounts_count":1,"batch_id":22,"batch_status":"succeeded","channel":{"id":"5","name":"MiniMax 默认渠道-subscription"},"gateway":{"ok":true,"status_code":200,"models":["MiniMax-M2.5-highspeed","MiniMax-M2.7-highspeed"],"has_expected_model":true,"completion_ok":true,"completion_status":200,"completion_content_type":"text/event-stream","completion_body_preview":"{\"id\":\"065e1c18a1f74501bffedc6a89851bcb\",\"object\":\"chat.completion\",\"created\":1779362075,\"model\":\"MiniMax-M2.7-highspeed\",\"choices\":[{\"index\":0,\"message\":{\"role\":\"assistant\",\"content\":\"Pong! Im here. How can I help you today?\",\"reasoning_content\":\"The user says \\\"ping\\\". Likely they want a simple ping response. They could be checking if the bot is alive. The best response: \\\"Pong!\\\" or somethin"},"group":{"id":"6","name":"MiniMax 默认分组-subscription"},"plan":{"id":"5","name":"MiniMax 默认套餐-subscription"},"provider_status":"active"}

View File

@@ -0,0 +1 @@
{"access_closures":[{"ID":22,"BatchID":22,"ClosureType":"subscription","Status":"subscription_ready","DetailsJSON":"{\"completion_ok\":true,\"completion_preview\":\"{\\\"id\\\":\\\"065e1c18a1f74501bffedc6a89851bcb\\\",\\\"object\\\":\\\"chat.completion\\\",\\\"created\\\":1779362075,\\\"model\\\":\\\"MiniMax-M2.7-highspeed\\\",\\\"choices\\\":[{\\\"index\\\":0,\\\"message\\\":{\\\"role\\\":\\\"assistant\\\",\\\"content\\\":\\\"Pong! Im here. How can I help you today?\\\",\\\"reasoning_content\\\":\\\"The user says \\\\\\\"ping\\\\\\\". Likely they want a simple ping response. They could be checking if the bot is alive. The best response: \\\\\\\"Pong!\\\\\\\" or somethin\",\"completion_status\":200,\"completion_type\":\"text/event-stream\",\"has_expected_model\":true,\"models\":[\"MiniMax-M2.5-highspeed\",\"MiniMax-M2.7-highspeed\"],\"ok\":true,\"status_code\":200}"}],"access_count":1,"batch":{"access_status":"subscription_ready","batch_status":"succeeded","host_id":1,"id":22,"mode":"partial","pack_id":1,"provider_id":3},"items":[{"account_status":"passed","batch_id":22,"id":22,"key_fingerprint":"sha256:3285f7116ec262d059c83dbdaf041eb7fcf6d04e2abdacbbff94891648beaccd","probe_summary_json":"{\"account_id\":\"37\",\"models\":[{\"id\":\"MiniMax-M2.7-highspeed\",\"display_name\":\"MiniMax-M2.7-highspeed\",\"type\":\"model\"},{\"id\":\"MiniMax-M2.5-highspeed\",\"display_name\":\"MiniMax-M2.5-highspeed\",\"type\":\"model\"}],\"probe_advisory\":false,\"probe_message\":\"\",\"probe_ok\":true,\"probe_status\":\"passed\",\"smoke_model_seen\":true,\"validation_status\":\"passed\"}"}],"items_count":1,"managed_count":1,"managed_resources":[{"ID":28,"BatchID":22,"HostID":1,"ResourceType":"account","HostResourceID":"37","ResourceName":"minimax-01"}],"reconcile_count":0,"reconcile_runs":[]}

View File

@@ -0,0 +1,46 @@
BEGIN;
UPDATE users
SET balance = CASE WHEN balance < 10 THEN 10 ELSE balance END,
updated_at = now()
WHERE id = 19;
UPDATE api_keys
SET group_id = 6,
updated_at = now()
WHERE key = 'sk-1779362063-a93693cd';
INSERT INTO user_subscriptions (
user_id,
group_id,
starts_at,
expires_at,
status,
assigned_by,
assigned_at,
notes,
created_at,
updated_at,
deleted_at
)
VALUES (
19,
6,
now(),
now() + interval '30 days',
'active',
1,
now(),
'hermes remote subscription validation',
now(),
now(),
NULL
)
ON CONFLICT (user_id, group_id) WHERE deleted_at IS NULL
DO UPDATE SET
starts_at = EXCLUDED.starts_at,
expires_at = EXCLUDED.expires_at,
status = 'active',
assigned_by = EXCLUDED.assigned_by,
assigned_at = EXCLUDED.assigned_at,
notes = EXCLUDED.notes,
updated_at = now(),
deleted_at = NULL;
COMMIT;

View File

@@ -0,0 +1,5 @@
BEGIN
UPDATE 1
UPDATE 1
INSERT 0 1
COMMIT

View File

@@ -0,0 +1,4 @@
auth_cache_key=apikey:auth:ade6d1c548914a154f4c153434063d8d14ea39560df4980c0839bfbd3aa9caef
balance_cache_key=billing:balance:19
subscription_cache_key=billing:sub:19:6
0

View File

@@ -0,0 +1 @@
{"group_id" : 6, "group" : {"id":6,"name":"MiniMax 默认分组","description":"","rate_multiplier":1.0000,"is_exclusive":false,"status":"active","created_at":"2026-05-19T03:16:42.338399+00:00","updated_at":"2026-05-19T03:16:42.338399+00:00","deleted_at":null,"platform":"openai","subscription_type":"subscription","daily_limit_usd":null,"weekly_limit_usd":null,"monthly_limit_usd":null,"default_validity_days":0,"image_price_1k":null,"image_price_2k":null,"image_price_4k":null,"claude_code_only":false,"fallback_group_id":null,"model_routing":{},"model_routing_enabled":false,"fallback_group_id_on_invalid_request":null,"mcp_xml_inject":true,"supported_model_scopes":null,"sort_order":0,"allow_messages_dispatch":false,"default_mapped_model":"","require_oauth_only":false,"require_privacy_set":false,"messages_dispatch_model_config":{},"rpm_limit":0,"allow_image_generation":false,"image_rate_independent":false,"image_rate_multiplier":1.0000}, "subscription" : {"id":25,"user_id":19,"group_id":6,"starts_at":"2026-05-21T11:14:38.431671+00:00","expires_at":"2026-06-20T11:14:38.431671+00:00","status":"active","daily_window_start":null,"weekly_window_start":null,"monthly_window_start":null,"daily_usage_usd":0.0000000000,"weekly_usage_usd":0.0000000000,"monthly_usage_usd":0.0000000000,"assigned_by":1,"assigned_at":"2026-05-21T11:14:38.431671+00:00","notes":"hermes remote subscription validation","created_at":"2026-05-21T11:14:38.431671+00:00","updated_at":"2026-05-21T11:14:38.431671+00:00","deleted_at":null}, "key" : {"id":18,"user_id":19,"key":"sk-1779362063-a93693cd","name":"relay-sub-1779362063-a93693cd-key","group_id":6,"status":"active","created_at":"2026-05-21T11:14:24.788861+00:00","updated_at":"2026-05-21T11:14:38.431671+00:00","deleted_at":null,"ip_whitelist":null,"ip_blacklist":null,"quota":0.00000000,"quota_used":0.00000000,"expires_at":null,"last_used_at":null,"rate_limit_5h":0.00000000,"rate_limit_1d":0.00000000,"rate_limit_7d":0.00000000,"usage_5h":0.00000000,"usage_1d":0.00000000,"usage_7d":0.00000000,"window_5h_start":null,"window_1d_start":null,"window_7d_start":null}}

View File

@@ -0,0 +1,9 @@
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Referrer-Policy: strict-origin-when-cross-origin
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-Request-Id: 3be00b1d-eff7-489e-82f8-ed93f575ac58
Date: Thu, 21 May 2026 11:14:41 GMT
Content-Length: 272

View File

@@ -0,0 +1 @@
{"data":[{"id":"MiniMax-M2.5-highspeed","type":"model","display_name":"MiniMax-M2.5-highspeed","created_at":"2024-01-01T00:00:00Z"},{"id":"MiniMax-M2.7-highspeed","type":"model","display_name":"MiniMax-M2.7-highspeed","created_at":"2024-01-01T00:00:00Z"}],"object":"list"}

View File

@@ -0,0 +1,12 @@
HTTP/1.1 200 OK
Cache-Control: max-age=0
Content-Type: text/event-stream
Date: Thu, 21 May 2026 11:14:44 GMT
Referrer-Policy: strict-origin-when-cross-origin
Vary: Accept-Encoding
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-Request-Id: 77d9aaaa-78a0-4f5b-9a6e-f4358cf1d91e
X-Request-Id: 88f4fe1e-697b-4e1f-a49e-59b008fc604f
Content-Length: 499

View File

@@ -0,0 +1 @@
{"id":"065e1c254498e0be5bbd58286d1098bb","object":"chat.completion","created":1779362088,"model":"MiniMax-M2.7-highspeed","choices":[{"index":0,"message":{"role":"assistant","content":"pong! 👋\n\nI'm here and ready to help. What can I do for you today?","reasoning_content":"The user simply said \"ping\". This is likely a test to see if I'm responsive. I should respond in a friendly, helpful way."},"finish_reason":"stop"}],"usage":{"prompt_tokens":42,"completion_tokens":52,"total_tokens":94}}

View File

@@ -0,0 +1 @@
{"access_closures_count":1,"batch":{"access_status":"subscription_ready","batch_status":"succeeded","id":22,"mode":"partial"},"host":{"base_url":"http://127.0.0.1:18097","host_id":"remote43-fresh18097-deepseek-1779280533","host_version":"0.1.126"},"latest_access_status":"subscription_ready","latest_reconcile_status":"not_run","latest_reconcile_summary":{},"managed_resources_count":1,"pack":{"pack_id":"openai-cn-pack","version":"1.0.1"},"provider":{"display_name":"MiniMax OpenAI Compatible","platform":"openai","provider_id":"minimax"},"provider_status":"active","reconcile_runs_count":0}

View File

@@ -0,0 +1 @@
{"batch_access_status":"subscription_ready","batch_id":22,"closures_count":1,"latest_access_status":"subscription_ready","latest_closure":{"closure_type":"subscription","details_json":"{\"completion_ok\":true,\"completion_preview\":\"{\\\"id\\\":\\\"065e1c18a1f74501bffedc6a89851bcb\\\",\\\"object\\\":\\\"chat.completion\\\",\\\"created\\\":1779362075,\\\"model\\\":\\\"MiniMax-M2.7-highspeed\\\",\\\"choices\\\":[{\\\"index\\\":0,\\\"message\\\":{\\\"role\\\":\\\"assistant\\\",\\\"content\\\":\\\"Pong! Im here. How can I help you today?\\\",\\\"reasoning_content\\\":\\\"The user says \\\\\\\"ping\\\\\\\". Likely they want a simple ping response. They could be checking if the bot is alive. The best response: \\\\\\\"Pong!\\\\\\\" or somethin\",\"completion_status\":200,\"completion_type\":\"text/event-stream\",\"has_expected_model\":true,\"models\":[\"MiniMax-M2.5-highspeed\",\"MiniMax-M2.7-highspeed\"],\"ok\":true,\"status_code\":200}","id":22,"status":"subscription_ready"},"pack_id":"openai-cn-pack","provider_id":"minimax"}

View File

@@ -0,0 +1 @@
{"provider_id":"minimax","mode":"subscription","available":true,"message":"latest access status: subscription_ready"}

View File

@@ -0,0 +1 @@
{"access_closures":[{"ID":22,"BatchID":22,"ClosureType":"subscription","Status":"subscription_ready","DetailsJSON":"{\"completion_ok\":true,\"completion_preview\":\"{\\\"id\\\":\\\"065e1c18a1f74501bffedc6a89851bcb\\\",\\\"object\\\":\\\"chat.completion\\\",\\\"created\\\":1779362075,\\\"model\\\":\\\"MiniMax-M2.7-highspeed\\\",\\\"choices\\\":[{\\\"index\\\":0,\\\"message\\\":{\\\"role\\\":\\\"assistant\\\",\\\"content\\\":\\\"Pong! Im here. How can I help you today?\\\",\\\"reasoning_content\\\":\\\"The user says \\\\\\\"ping\\\\\\\". Likely they want a simple ping response. They could be checking if the bot is alive. The best response: \\\\\\\"Pong!\\\\\\\" or somethin\",\"completion_status\":200,\"completion_type\":\"text/event-stream\",\"has_expected_model\":true,\"models\":[\"MiniMax-M2.5-highspeed\",\"MiniMax-M2.7-highspeed\"],\"ok\":true,\"status_code\":200}"}],"access_count":1,"batch":{"access_status":"subscription_ready","batch_status":"succeeded","host_id":1,"id":22,"mode":"partial","pack_id":1,"provider_id":3},"items":[{"account_status":"passed","batch_id":22,"id":22,"key_fingerprint":"sha256:3285f7116ec262d059c83dbdaf041eb7fcf6d04e2abdacbbff94891648beaccd","probe_summary_json":"{\"account_id\":\"37\",\"models\":[{\"id\":\"MiniMax-M2.7-highspeed\",\"display_name\":\"MiniMax-M2.7-highspeed\",\"type\":\"model\"},{\"id\":\"MiniMax-M2.5-highspeed\",\"display_name\":\"MiniMax-M2.5-highspeed\",\"type\":\"model\"}],\"probe_advisory\":false,\"probe_message\":\"\",\"probe_ok\":true,\"probe_status\":\"passed\",\"smoke_model_seen\":true,\"validation_status\":\"passed\"}"}],"items_count":1,"managed_count":1,"managed_resources":[{"ID":28,"BatchID":22,"HostID":1,"ResourceType":"account","HostResourceID":"37","ResourceName":"minimax-01"}],"reconcile_count":0,"reconcile_runs":[]}

View File

@@ -0,0 +1,16 @@
HTTP/2 200
server: nginx/1.24.0 (Ubuntu)
content-type: application/json; charset=utf-8
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
x-frame-options: DENY
x-request-id: b057d215-8dc9-4dce-96bf-acd3e8e733a8
age: 0
content-length: 1282
date: Thu, 21 May 2026 11:14:51 GMT
eo-log-uuid: 4174162878982047592
eo-cache-status: MISS
cache-control: max-age=0
nel: {"success_fraction":0.1,"report_to":"eo-nel","max_age":604800}
report-to: {"endpoints":[{"url":"https://nel.teo-rum.com/eo-cgi/nel"}],"group":"eo-nel","max_age":604800}

View File

@@ -0,0 +1 @@
{"data":[{"id":"Claude Opeus 4","type":"model","display_name":"Claude Opeus 4","created_at":"2024-01-01T00:00:00Z"},{"id":"MiniMax-M2.5","type":"model","display_name":"MiniMax-M2.5","created_at":"2024-01-01T00:00:00Z"},{"id":"MiniMax-M2.5-highspeed","type":"model","display_name":"MiniMax-M2.5-highspeed","created_at":"2024-01-01T00:00:00Z"},{"id":"MiniMax-M2.7","type":"model","display_name":"MiniMax-M2.7","created_at":"2024-01-01T00:00:00Z"},{"id":"MiniMax-M2.7-highspeed","type":"model","display_name":"MiniMax-M2.7-highspeed","created_at":"2024-01-01T00:00:00Z"},{"id":"MiniMax-M2.7-highspeed:MiniMax-M2.7-highspeed","type":"model","display_name":"MiniMax-M2.7-highspeed:MiniMax-M2.7-highspeed","created_at":"2024-01-01T00:00:00Z"},{"id":"MiniMax-M2.7-highspeedMiniMax-M2.7-highspeed","type":"model","display_name":"MiniMax-M2.7-highspeedMiniMax-M2.7-highspeed","created_at":"2024-01-01T00:00:00Z"},{"id":"MiniMax-M2.7:MiniMax-M2.7","type":"model","display_name":"MiniMax-M2.7:MiniMax-M2.7","created_at":"2024-01-01T00:00:00Z"},{"id":"MiniMax-M2.7MiniMax-M2.7","type":"model","display_name":"MiniMax-M2.7MiniMax-M2.7","created_at":"2024-01-01T00:00:00Z"},{"id":"claude-opus-4","type":"model","display_name":"claude-opus-4","created_at":"2024-01-01T00:00:00Z"}],"object":"list"}

View File

@@ -0,0 +1,16 @@
HTTP/2 200
server: nginx/1.24.0 (Ubuntu)
content-type: text/event-stream; charset=utf-8
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
x-frame-options: DENY
x-request-id: ea3023b1-c8f4-4f5a-9095-f4978d64d5af
age: 0
content-length: 509
date: Thu, 21 May 2026 11:14:55 GMT
eo-log-uuid: 3222221884657771958
eo-cache-status: MISS
cache-control: max-age=0
nel: {"success_fraction":0.1,"report_to":"eo-nel","max_age":604800}
report-to: {"endpoints":[{"url":"https://nel.teo-rum.com/eo-cgi/nel"}],"group":"eo-nel","max_age":604800}

View File

@@ -0,0 +1 @@
{"id":"065e1c30f0582f615ee700689b575c88","object":"chat.completion","created":1779362099,"model":"MiniMax-M2.7-highspeed","choices":[{"index":0,"message":{"role":"assistant","content":"pong\n\nI'm here and ready to help! What can I do for you today?","reasoning_content":"The user said \"ping\". This is likely a simple test to see if I'm responsive. I should respond with \"pong\" or a friendly acknowledgment."},"finish_reason":"stop"}],"usage":{"prompt_tokens":42,"completion_tokens":51,"total_tokens":93}}

View File

@@ -0,0 +1 @@
{"artifact_dir": "/home/long/project/sub2api-cn-relay-manager/artifacts/real-host-acceptance/20260521_191418_remote43_minimax_key_import", "provider_id": "minimax", "batch_id": 22, "batch_status": "succeeded", "access_status_from_import": "subscription_ready", "provider_status_from_import": "active", "direct_models_http200": true, "direct_models_has_expected_model": true, "direct_models": ["MiniMax-M2.5-highspeed", "MiniMax-M2.7-highspeed"], "direct_chat_http200": true, "direct_chat_status": 200, "upstream_models": ["Claude Opeus 4", "MiniMax-M2.5", "MiniMax-M2.5-highspeed", "MiniMax-M2.7", "MiniMax-M2.7-highspeed", "MiniMax-M2.7-highspeed:MiniMax-M2.7-highspeed", "MiniMax-M2.7-highspeedMiniMax-M2.7-highspeed", "MiniMax-M2.7:MiniMax-M2.7", "MiniMax-M2.7MiniMax-M2.7", "claude-opus-4"], "upstream_models_has_expected_model": true, "upstream_chat_status": 200, "completion_classification": "unknown", "latest_access_status": "subscription_ready", "preview_available": true, "accepted_keys_count": 1, "subscription_group_id": "6", "import_group_id": "6"}

View File

@@ -0,0 +1,6 @@
{
"source": "file:/tmp/deepseek_2166.key",
"provider_id": "deepseek",
"upstream_key_prefix": "rk-aW9xpPDBP",
"upstream_key_suffix": "aUPv1B"
}

View File

@@ -0,0 +1,13 @@
{
"crm_base": "http://127.0.0.1:18100",
"host_base": "http://127.0.0.1:18097",
"crm_host_base": "http://127.0.0.1:18097",
"provider_id": "deepseek",
"subscription_user_id": "20",
"subscription_user_key_prefix": "sk-177936446",
"subscription_group_id": "5",
"admin_user_id": "1",
"managed_user_email": "20-d2c672db64e51303@sub2api.local",
"managed_user_id": "",
"managed_probe_key_prefix": "sk-relay-d2c672db6"
}

View File

@@ -0,0 +1 @@
{"host_id": "remote43-fresh18097-deepseek-1779280533", "base_url": "http://127.0.0.1:18097", "host_version": "0.1.126", "auth_type": "bearer", "status": "unsupported", "capabilities": {"groups": true, "channels": true, "plans": true, "accounts": true, "account_test": false, "account_models": true, "subscriptions": true}}

View File

@@ -0,0 +1,5 @@
HTTP/1.1 200 OK
Content-Type: application/json
Date: Thu, 21 May 2026 12:15:28 GMT
Content-Length: 1023

View File

@@ -0,0 +1 @@
{"accepted_keys_count":1,"access_status":"subscription_ready","accounts_count":1,"batch_id":24,"batch_status":"succeeded","channel":{"id":"4","name":"DeepSeek 默认渠道-subscription"},"gateway":{"ok":true,"status_code":200,"models":["deepseek-v4-flash","deepseek-v4-pro"],"has_expected_model":true,"completion_ok":true,"completion_status":200,"completion_content_type":"application/json","completion_body_preview":"{\"id\":\"chatcmpl-46834898-bb73-915e-a605-bc5a47e5db9a\",\"object\":\"chat.completion\",\"created\":1779365727,\"model\":\"deepseek-ai/DeepSeek-V4-Pro\",\"system_fingerprint\":\"\",\"choices\":[{\"index\":0,\"finish_reason\":\"stop\",\"message\":{\"role\":\"assistant\",\"content\":\"pong\",\"tool_calls\":null,\"reasoning_content\":\"We are asked: \\\"ping\\\". This is a very simple query. The user likely wants a response to \\\"ping\\\", which "},"group":{"id":"5","name":"DeepSeek 默认分组-subscription"},"plan":{"id":"4","name":"DeepSeek 默认套餐-subscription"},"provider_status":"active"}

View File

@@ -0,0 +1 @@
{"access_closures":[{"ID":24,"BatchID":24,"ClosureType":"subscription","Status":"subscription_ready","DetailsJSON":"{\"completion_ok\":true,\"completion_preview\":\"{\\\"id\\\":\\\"chatcmpl-46834898-bb73-915e-a605-bc5a47e5db9a\\\",\\\"object\\\":\\\"chat.completion\\\",\\\"created\\\":1779365727,\\\"model\\\":\\\"deepseek-ai/DeepSeek-V4-Pro\\\",\\\"system_fingerprint\\\":\\\"\\\",\\\"choices\\\":[{\\\"index\\\":0,\\\"finish_reason\\\":\\\"stop\\\",\\\"message\\\":{\\\"role\\\":\\\"assistant\\\",\\\"content\\\":\\\"pong\\\",\\\"tool_calls\\\":null,\\\"reasoning_content\\\":\\\"We are asked: \\\\\\\"ping\\\\\\\". This is a very simple query. The user likely wants a response to \\\\\\\"ping\\\\\\\", which \",\"completion_status\":200,\"completion_type\":\"application/json\",\"has_expected_model\":true,\"models\":[\"deepseek-v4-flash\",\"deepseek-v4-pro\"],\"ok\":true,\"status_code\":200}"}],"access_count":1,"batch":{"access_status":"subscription_ready","batch_status":"succeeded","host_id":1,"id":24,"mode":"partial","pack_id":1,"provider_id":1},"items":[{"account_status":"passed","batch_id":24,"id":24,"key_fingerprint":"sha256:6c228a62edd9c319e624cc10d761edaca1b96ac590aa196940a7ccb101ae6c92","probe_summary_json":"{\"account_id\":\"39\",\"models\":[{\"id\":\"deepseek-v4-pro\",\"display_name\":\"deepseek-v4-pro\",\"type\":\"model\"},{\"id\":\"deepseek-v4-flash\",\"display_name\":\"deepseek-v4-flash\",\"type\":\"model\"}],\"probe_advisory\":false,\"probe_message\":\"\",\"probe_ok\":true,\"probe_status\":\"passed\",\"smoke_model_seen\":true,\"validation_status\":\"passed\"}"}],"items_count":1,"managed_count":1,"managed_resources":[{"ID":30,"BatchID":24,"HostID":1,"ResourceType":"account","HostResourceID":"39","ResourceName":"deepseek-01"}],"reconcile_count":0,"reconcile_runs":[]}

View File

@@ -0,0 +1,46 @@
BEGIN;
UPDATE users
SET balance = CASE WHEN balance < 10 THEN 10 ELSE balance END,
updated_at = now()
WHERE id = 20;
UPDATE api_keys
SET group_id = 5,
updated_at = now()
WHERE key = 'sk-1779364460-a9bac8bd';
INSERT INTO user_subscriptions (
user_id,
group_id,
starts_at,
expires_at,
status,
assigned_by,
assigned_at,
notes,
created_at,
updated_at,
deleted_at
)
VALUES (
20,
5,
now(),
now() + interval '30 days',
'active',
1,
now(),
'hermes remote subscription validation',
now(),
now(),
NULL
)
ON CONFLICT (user_id, group_id) WHERE deleted_at IS NULL
DO UPDATE SET
starts_at = EXCLUDED.starts_at,
expires_at = EXCLUDED.expires_at,
status = 'active',
assigned_by = EXCLUDED.assigned_by,
assigned_at = EXCLUDED.assigned_at,
notes = EXCLUDED.notes,
updated_at = now(),
deleted_at = NULL;
COMMIT;

View File

@@ -0,0 +1,4 @@
auth_cache_key=apikey:auth:ca052e60820f3457831e3080de38cc3c14889bef4838b485377afca5567a1481
balance_cache_key=billing:balance:20
subscription_cache_key=billing:sub:20:5
0

View File

@@ -0,0 +1 @@
{"group_id" : 5, "group" : null, "subscription" : null, "key" : {"id":19,"user_id":20,"key":"sk-1779364460-a9bac8bd","name":"relay-sub-1779364460-a9bac8bd-key","group_id":null,"status":"active","created_at":"2026-05-21T11:54:21.758954+00:00","updated_at":"2026-05-21T11:54:21.758954+00:00","deleted_at":null,"ip_whitelist":null,"ip_blacklist":null,"quota":0.00000000,"quota_used":0.00000000,"expires_at":null,"last_used_at":null,"rate_limit_5h":0.00000000,"rate_limit_1d":0.00000000,"rate_limit_7d":0.00000000,"usage_5h":0.00000000,"usage_1d":0.00000000,"usage_7d":0.00000000,"window_5h_start":null,"window_1d_start":null,"window_7d_start":null}}

View File

@@ -0,0 +1,9 @@
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Referrer-Policy: strict-origin-when-cross-origin
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-Request-Id: 244f86c2-e121-476c-a482-45cc3f86e3f5
Date: Thu, 21 May 2026 12:15:36 GMT
Content-Length: 248

View File

@@ -0,0 +1 @@
{"data":[{"id":"deepseek-v4-flash","type":"model","display_name":"deepseek-v4-flash","created_at":"2024-01-01T00:00:00Z"},{"id":"deepseek-v4-pro","type":"model","display_name":"deepseek-v4-pro","created_at":"2024-01-01T00:00:00Z"}],"object":"list"}

View File

@@ -0,0 +1,9 @@
HTTP/1.1 200 OK
Content-Type: application/json
Date: Thu, 21 May 2026 12:15:39 GMT
Referrer-Policy: strict-origin-when-cross-origin
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-Request-Id: db98fb33-aaf7-45b3-b33f-5269232ff11f
Content-Length: 527

View File

@@ -0,0 +1 @@
{"id":"chatcmpl-1f30ee00-c146-9555-a47b-e807a56468ca","object":"chat.completion","created":1779365742,"model":"deepseek-ai/DeepSeek-V4-Pro","system_fingerprint":"","choices":[{"index":0,"finish_reason":"stop","message":{"role":"assistant","content":"pong","tool_calls":null,"reasoning_content":"We are asked: \"ping\". The user likely just wants a simple \"pong\" response, or maybe they're testing if the assistant is alive. I'll respond with \"pong\"."}}],"usage":{"prompt_tokens":5,"completion_tokens":43,"total_tokens":48}}

View File

@@ -0,0 +1 @@
{"access_closures_count":1,"batch":{"access_status":"subscription_ready","batch_status":"succeeded","id":24,"mode":"partial"},"host":{"base_url":"http://127.0.0.1:18097","host_id":"remote43-fresh18097-deepseek-1779280533","host_version":"0.1.126"},"latest_access_status":"subscription_ready","latest_reconcile_status":"not_run","latest_reconcile_summary":{},"managed_resources_count":1,"pack":{"pack_id":"openai-cn-pack","version":"1.0.1"},"provider":{"display_name":"DeepSeek OpenAI Compatible","platform":"openai","provider_id":"deepseek"},"provider_status":"active","reconcile_runs_count":0}

View File

@@ -0,0 +1 @@
{"batch_access_status":"subscription_ready","batch_id":24,"closures_count":1,"latest_access_status":"subscription_ready","latest_closure":{"closure_type":"subscription","details_json":"{\"completion_ok\":true,\"completion_preview\":\"{\\\"id\\\":\\\"chatcmpl-46834898-bb73-915e-a605-bc5a47e5db9a\\\",\\\"object\\\":\\\"chat.completion\\\",\\\"created\\\":1779365727,\\\"model\\\":\\\"deepseek-ai/DeepSeek-V4-Pro\\\",\\\"system_fingerprint\\\":\\\"\\\",\\\"choices\\\":[{\\\"index\\\":0,\\\"finish_reason\\\":\\\"stop\\\",\\\"message\\\":{\\\"role\\\":\\\"assistant\\\",\\\"content\\\":\\\"pong\\\",\\\"tool_calls\\\":null,\\\"reasoning_content\\\":\\\"We are asked: \\\\\\\"ping\\\\\\\". This is a very simple query. The user likely wants a response to \\\\\\\"ping\\\\\\\", which \",\"completion_status\":200,\"completion_type\":\"application/json\",\"has_expected_model\":true,\"models\":[\"deepseek-v4-flash\",\"deepseek-v4-pro\"],\"ok\":true,\"status_code\":200}","id":24,"status":"subscription_ready"},"pack_id":"openai-cn-pack","provider_id":"deepseek"}

View File

@@ -0,0 +1 @@
{"provider_id":"deepseek","mode":"subscription","available":true,"message":"latest access status: subscription_ready"}

View File

@@ -0,0 +1 @@
{"access_closures":[{"ID":24,"BatchID":24,"ClosureType":"subscription","Status":"subscription_ready","DetailsJSON":"{\"completion_ok\":true,\"completion_preview\":\"{\\\"id\\\":\\\"chatcmpl-46834898-bb73-915e-a605-bc5a47e5db9a\\\",\\\"object\\\":\\\"chat.completion\\\",\\\"created\\\":1779365727,\\\"model\\\":\\\"deepseek-ai/DeepSeek-V4-Pro\\\",\\\"system_fingerprint\\\":\\\"\\\",\\\"choices\\\":[{\\\"index\\\":0,\\\"finish_reason\\\":\\\"stop\\\",\\\"message\\\":{\\\"role\\\":\\\"assistant\\\",\\\"content\\\":\\\"pong\\\",\\\"tool_calls\\\":null,\\\"reasoning_content\\\":\\\"We are asked: \\\\\\\"ping\\\\\\\". This is a very simple query. The user likely wants a response to \\\\\\\"ping\\\\\\\", which \",\"completion_status\":200,\"completion_type\":\"application/json\",\"has_expected_model\":true,\"models\":[\"deepseek-v4-flash\",\"deepseek-v4-pro\"],\"ok\":true,\"status_code\":200}"}],"access_count":1,"batch":{"access_status":"subscription_ready","batch_status":"succeeded","host_id":1,"id":24,"mode":"partial","pack_id":1,"provider_id":1},"items":[{"account_status":"passed","batch_id":24,"id":24,"key_fingerprint":"sha256:6c228a62edd9c319e624cc10d761edaca1b96ac590aa196940a7ccb101ae6c92","probe_summary_json":"{\"account_id\":\"39\",\"models\":[{\"id\":\"deepseek-v4-pro\",\"display_name\":\"deepseek-v4-pro\",\"type\":\"model\"},{\"id\":\"deepseek-v4-flash\",\"display_name\":\"deepseek-v4-flash\",\"type\":\"model\"}],\"probe_advisory\":false,\"probe_message\":\"\",\"probe_ok\":true,\"probe_status\":\"passed\",\"smoke_model_seen\":true,\"validation_status\":\"passed\"}"}],"items_count":1,"managed_count":1,"managed_resources":[{"ID":30,"BatchID":24,"HostID":1,"ResourceType":"account","HostResourceID":"39","ResourceName":"deepseek-01"}],"reconcile_count":0,"reconcile_runs":[]}

View File

@@ -0,0 +1,9 @@
HTTP/1.1 200 OK
date: Thu, 21 May 2026 12:15:47 GMT
server: uvicorn
content-length: 891
content-type: application/json
x-content-type-options: nosniff
referrer-policy: no-referrer
x-frame-options: DENY

View File

@@ -0,0 +1 @@
{"object":"list","data":[{"id":"deepseek-ai/DeepSeek-V4-Flash","object":"model","created":1777039693,"owned_by":"gongxiang"},{"id":"deepseek-ai/DeepSeek-V4-Flash-Max","object":"model","created":1777039693,"owned_by":"gongxiang"},{"id":"deepseek-ai/DeepSeek-V4-Pro","object":"model","created":1777039670,"owned_by":"gongxiang"},{"id":"deepseek-ai/DeepSeek-V4-Pro-Max","object":"model","created":1777039670,"owned_by":"gongxiang"},{"id":"ZhipuAI/GLM-5.1","object":"model","created":1776264446,"owned_by":"gongxiang"},{"id":"inclusionAI/Ling-2.6-1T","object":"model","created":1779365748,"owned_by":"gongxiang"},{"id":"inclusionAI/Ring-2.6-1T","object":"model","created":1779365748,"owned_by":"gongxiang"},{"id":"moonshotai/Kimi-K2.5","object":"model","created":1770027165,"owned_by":"gongxiang"},{"id":"stepfun-ai/Step-3.5-Flash","object":"model","created":1770216621,"owned_by":"gongxiang"}]}

View File

@@ -0,0 +1,9 @@
HTTP/1.1 200 OK
date: Thu, 21 May 2026 12:15:52 GMT
server: uvicorn
content-length: 581
content-type: application/json
x-content-type-options: nosniff
referrer-policy: no-referrer
x-frame-options: DENY

View File

@@ -0,0 +1 @@
{"id":"chatcmpl-514b677a-8bd7-98e1-ba86-e307fe2737da","object":"chat.completion","created":1779365755,"model":"deepseek-ai/DeepSeek-V4-Pro","system_fingerprint":"","choices":[{"index":0,"finish_reason":"stop","message":{"role":"assistant","content":"pong","tool_calls":null,"reasoning_content":"We are asked: \"ping\". This is a simple interaction. The user said \"ping\". The assistant should respond with \"pong\" or something similar. The instruction is to be helpful. So I'll just respond with \"pong\"."}}],"usage":{"prompt_tokens":5,"completion_tokens":53,"total_tokens":58}}

View File

@@ -0,0 +1 @@
{"artifact_dir": "/home/long/project/sub2api-cn-relay-manager/artifacts/real-host-acceptance/20260521_201509_remote43_deepseek_key_import", "provider_id": "deepseek", "batch_id": 24, "batch_status": "succeeded", "access_status_from_import": "subscription_ready", "provider_status_from_import": "active", "direct_models_http200": true, "direct_models_has_expected_model": true, "direct_models": ["deepseek-v4-flash", "deepseek-v4-pro"], "direct_chat_http200": true, "direct_chat_status": 200, "upstream_models": ["deepseek-ai/DeepSeek-V4-Flash", "deepseek-ai/DeepSeek-V4-Flash-Max", "deepseek-ai/DeepSeek-V4-Pro", "deepseek-ai/DeepSeek-V4-Pro-Max", "ZhipuAI/GLM-5.1", "inclusionAI/Ling-2.6-1T", "inclusionAI/Ring-2.6-1T", "moonshotai/Kimi-K2.5", "stepfun-ai/Step-3.5-Flash"], "upstream_models_has_expected_model": false, "upstream_chat_status": 200, "completion_classification": "unknown", "latest_access_status": "subscription_ready", "preview_available": true, "accepted_keys_count": 1, "subscription_group_id": "5", "import_group_id": "5"}

View File

@@ -0,0 +1,30 @@
真实宿主验收产物 -> 速查清单对应
清单 1环境 / host 前置)
- 01-create-host.json
- 02-probe-host.json
清单 2channel 宿主契约 / 导入落库)
- 03-install-pack.json
- 04-preview-import.json
- 05-import.json
- 05a-batch-detail-pre-access.json若拿到 batch_id 且非 dry-run
- 08-provider-status.json
- 09-reconcile.json
- 10-batch-detail.json若拿到 batch_id 且非 dry-run
清单 3access / key 闭环状态)
- 06-access-preview.json
- 07-access-status.json
清单 4必须分层留证据不可混用
- account 视角:由 AFTER_IMPORT_HOOK_COMMAND 额外落证据,例如 GET /api/v1/admin/accounts/:id/models
- 普通用户 / managed key 视角:由 AFTER_IMPORT_HOOK_COMMAND 额外落证据,例如 GET /v1/models
- completion 视角:由 AFTER_IMPORT_HOOK_COMMAND 额外落证据,例如 POST /v1/chat/completions
红线:
- /api/v1/admin/accounts/:id/models 正确 ≠ /v1/models 正确
- /v1/models 正确 ≠ /v1/chat/completions 正确
- admin API 成功 ≠ 普通用户链路成功
当前 hook 配置disabled

View File

@@ -0,0 +1 @@
{"host_id":"remote43-fresh18097-deepseek-1779280533","base_url":"http://127.0.0.1:18097","host_version":"0.1.126","auth_type":"bearer","status":"unsupported","capabilities":{"groups":true,"channels":true,"plans":true,"accounts":true,"account_test":false,"account_models":true,"subscriptions":true}}

View File

@@ -0,0 +1 @@
{"host_id":"remote43-fresh18097-deepseek-1779280533","base_url":"http://127.0.0.1:18097","host_version":"0.1.126","status":"unsupported","capabilities":{"groups":true,"channels":true,"plans":true,"accounts":true,"account_test":false,"account_models":true,"subscriptions":true}}

View File

@@ -0,0 +1 @@
{"already_installed":true,"host_version":"0.1.126","pack_id":"openai-cn-pack","providers":[{"display_name":"DeepSeek OpenAI Compatible","provider_id":"deepseek"},{"display_name":"MiniMax OpenAI Compatible","provider_id":"minimax"},{"display_name":"OpenAI 中转兼容","provider_id":"openai-zhongzhuan"}],"version":"1.0.1"}

View File

@@ -0,0 +1 @@
{"accepted_keys_count":1,"decisions":{"channel":{"Action":"reuse","Suggested":"DeepSeek 默认渠道","ExistingID":"2","Reason":"matching managed resource already exists"},"group":{"Action":"reuse","Suggested":"DeepSeek 默认分组","ExistingID":"3","Reason":"matching managed resource already exists"},"plan":{"Action":"reuse","Suggested":"DeepSeek 默认套餐","ExistingID":"2","Reason":"matching managed resource already exists"}},"names":{"Group":"DeepSeek 默认分组","Channel":"DeepSeek 默认渠道","Plan":"DeepSeek 默认套餐"}}

View File

@@ -0,0 +1 @@
{"accepted_keys_count":1,"access_status":"self_service_ready","accounts_count":1,"batch_id":29,"batch_status":"succeeded","channel":{"id":"8","name":"DeepSeek 默认渠道-self-service"},"gateway":{"ok":true,"status_code":200,"models":["deepseek-v4-flash","deepseek-v4-pro"],"has_expected_model":true,"completion_ok":true,"completion_status":200,"completion_content_type":"application/json","completion_body_preview":"{\"id\":\"chatcmpl-790054f9-3ed4-9f97-8928-4366ec706642\",\"object\":\"chat.completion\",\"created\":1779368660,\"model\":\"deepseek-ai/DeepSeek-V4-Pro\",\"system_fingerprint\":\"\",\"choices\":[{\"index\":0,\"finish_reason\":\"stop\",\"message\":{\"role\":\"assistant\",\"content\":\"Pong!\",\"tool_calls\":null,\"reasoning_content\":\"We need to respond to \\\"ping\\\". The user is saying \\\"ping\\\", which is a common test message. The assista"},"group":{"id":"9","name":"DeepSeek 默认分组-self-service"},"plan":null,"provider_status":"active"}

View File

@@ -0,0 +1 @@
{"access_closures":[{"ID":33,"BatchID":29,"ClosureType":"self_service","Status":"self_service_ready","DetailsJSON":"{\"completion_ok\":true,\"completion_preview\":\"{\\\"id\\\":\\\"chatcmpl-790054f9-3ed4-9f97-8928-4366ec706642\\\",\\\"object\\\":\\\"chat.completion\\\",\\\"created\\\":1779368660,\\\"model\\\":\\\"deepseek-ai/DeepSeek-V4-Pro\\\",\\\"system_fingerprint\\\":\\\"\\\",\\\"choices\\\":[{\\\"index\\\":0,\\\"finish_reason\\\":\\\"stop\\\",\\\"message\\\":{\\\"role\\\":\\\"assistant\\\",\\\"content\\\":\\\"Pong!\\\",\\\"tool_calls\\\":null,\\\"reasoning_content\\\":\\\"We need to respond to \\\\\\\"ping\\\\\\\". The user is saying \\\\\\\"ping\\\\\\\", which is a common test message. The assista\",\"completion_status\":200,\"completion_type\":\"application/json\",\"has_expected_model\":true,\"models\":[\"deepseek-v4-flash\",\"deepseek-v4-pro\"],\"ok\":true,\"status_code\":200}"}],"access_count":1,"batch":{"access_status":"self_service_ready","batch_status":"succeeded","host_id":1,"id":29,"mode":"partial","pack_id":1,"provider_id":1},"items":[{"account_status":"passed","batch_id":29,"id":29,"key_fingerprint":"sha256:6c228a62edd9c319e624cc10d761edaca1b96ac590aa196940a7ccb101ae6c92","probe_summary_json":"{\"account_id\":\"44\",\"models\":[{\"id\":\"deepseek-v4-pro\",\"display_name\":\"deepseek-v4-pro\",\"type\":\"model\"},{\"id\":\"deepseek-v4-flash\",\"display_name\":\"deepseek-v4-flash\",\"type\":\"model\"}],\"probe_advisory\":false,\"probe_message\":\"\",\"probe_ok\":true,\"probe_status\":\"passed\",\"smoke_model_seen\":true,\"validation_status\":\"passed\"}"}],"items_count":1,"managed_count":1,"managed_resources":[{"ID":41,"BatchID":29,"HostID":1,"ResourceType":"account","HostResourceID":"44","ResourceName":"deepseek-01"}],"reconcile_count":0,"reconcile_runs":[]}

View File

@@ -0,0 +1 @@
{"provider_id":"deepseek","mode":"self_service","available":true,"message":"latest access status: fully_ready"}

View File

@@ -0,0 +1 @@
{"batch_access_status":"self_service_ready","batch_id":29,"closures_count":1,"latest_access_status":"fully_ready","latest_closure":{"closure_type":"self_service","details_json":"{\"completion_ok\":true,\"completion_preview\":\"{\\\"id\\\":\\\"chatcmpl-790054f9-3ed4-9f97-8928-4366ec706642\\\",\\\"object\\\":\\\"chat.completion\\\",\\\"created\\\":1779368660,\\\"model\\\":\\\"deepseek-ai/DeepSeek-V4-Pro\\\",\\\"system_fingerprint\\\":\\\"\\\",\\\"choices\\\":[{\\\"index\\\":0,\\\"finish_reason\\\":\\\"stop\\\",\\\"message\\\":{\\\"role\\\":\\\"assistant\\\",\\\"content\\\":\\\"Pong!\\\",\\\"tool_calls\\\":null,\\\"reasoning_content\\\":\\\"We need to respond to \\\\\\\"ping\\\\\\\". The user is saying \\\\\\\"ping\\\\\\\", which is a common test message. The assista\",\"completion_status\":200,\"completion_type\":\"application/json\",\"has_expected_model\":true,\"models\":[\"deepseek-v4-flash\",\"deepseek-v4-pro\"],\"ok\":true,\"status_code\":200}","id":33,"status":"self_service_ready"},"pack_id":"openai-cn-pack","provider_id":"deepseek"}

View File

@@ -0,0 +1 @@
{"access_closures_count":1,"batch":{"access_status":"self_service_ready","batch_status":"succeeded","id":29,"mode":"partial"},"host":{"base_url":"http://127.0.0.1:18097","host_id":"remote43-fresh18097-deepseek-1779280533","host_version":"0.1.126"},"latest_access_status":"fully_ready","latest_reconcile_status":"not_run","latest_reconcile_summary":{},"managed_resources_count":1,"pack":{"pack_id":"openai-cn-pack","version":"1.0.1"},"provider":{"display_name":"DeepSeek OpenAI Compatible","platform":"openai","provider_id":"deepseek"},"provider_status":"active","reconcile_runs_count":0}

View File

@@ -0,0 +1 @@
{"batch_id":29,"extra_count":3,"missing_count":6,"provider_id":"deepseek","stale_noise_count":0,"status":"drifted","summary":{"access_rechecked":true,"access_status":"self_service_ready","extra_count":3,"host_version":"0.1.126","missing_count":6,"probe_failures":0,"raw_extra_count":3,"stale_noise_accounts":[],"stale_noise_count":0}}

View File

@@ -0,0 +1 @@
{"access_closures":[{"ID":33,"BatchID":29,"ClosureType":"self_service","Status":"self_service_ready","DetailsJSON":"{\"completion_ok\":true,\"completion_preview\":\"{\\\"id\\\":\\\"chatcmpl-790054f9-3ed4-9f97-8928-4366ec706642\\\",\\\"object\\\":\\\"chat.completion\\\",\\\"created\\\":1779368660,\\\"model\\\":\\\"deepseek-ai/DeepSeek-V4-Pro\\\",\\\"system_fingerprint\\\":\\\"\\\",\\\"choices\\\":[{\\\"index\\\":0,\\\"finish_reason\\\":\\\"stop\\\",\\\"message\\\":{\\\"role\\\":\\\"assistant\\\",\\\"content\\\":\\\"Pong!\\\",\\\"tool_calls\\\":null,\\\"reasoning_content\\\":\\\"We need to respond to \\\\\\\"ping\\\\\\\". The user is saying \\\\\\\"ping\\\\\\\", which is a common test message. The assista\",\"completion_status\":200,\"completion_type\":\"application/json\",\"has_expected_model\":true,\"models\":[\"deepseek-v4-flash\",\"deepseek-v4-pro\"],\"ok\":true,\"status_code\":200}"},{"ID":34,"BatchID":29,"ClosureType":"self_service","Status":"self_service_ready","DetailsJSON":"{\"completion_ok\":true,\"completion_preview\":\"{\\\"id\\\":\\\"chatcmpl-591428f5-c508-9e55-bfe7-c6dbb89b5059\\\",\\\"object\\\":\\\"chat.completion\\\",\\\"created\\\":1779368666,\\\"model\\\":\\\"deepseek-ai/DeepSeek-V4-Pro\\\",\\\"system_fingerprint\\\":\\\"\\\",\\\"choices\\\":[{\\\"index\\\":0,\\\"finish_reason\\\":\\\"stop\\\",\\\"message\\\":{\\\"role\\\":\\\"assistant\\\",\\\"content\\\":\\\"pong\\\",\\\"tool_calls\\\":null,\\\"reasoning_content\\\":\\\"We are asked: \\\\\\\"ping\\\\\\\". The user literally wrote \\\\\\\"ping\\\\\\\". This is likely a simple test to see if the AI \",\"completion_status\":200,\"completion_type\":\"application/json\",\"has_expected_model\":true,\"models\":[\"deepseek-v4-flash\",\"deepseek-v4-pro\"],\"ok\":true,\"reconcile_rerun\":true,\"status_code\":200}"}],"access_count":2,"batch":{"access_status":"self_service_ready","batch_status":"succeeded","host_id":1,"id":29,"mode":"partial","pack_id":1,"provider_id":1},"items":[{"account_status":"warning","batch_id":29,"id":29,"key_fingerprint":"sha256:6c228a62edd9c319e624cc10d761edaca1b96ac590aa196940a7ccb101ae6c92","probe_summary_json":"{\"account_id\":\"44\",\"models\":[{\"id\":\"deepseek-v4-pro\",\"display_name\":\"deepseek-v4-pro\",\"type\":\"model\"},{\"id\":\"deepseek-v4-flash\",\"display_name\":\"deepseek-v4-flash\",\"type\":\"model\"}],\"probe_advisory\":true,\"probe_message\":\"账号已被探测为不支持 OpenAI Responses API如 DeepSeek/Kimi 等三方兼容上游),账号本身可正常使用,但当前测试接口仅支持 Responses API 路径。请直接通过实际 API 调用验证。\",\"probe_ok\":false,\"probe_status\":\"failed\",\"reconcile_rerun\":true,\"smoke_model_seen\":true,\"validation_status\":\"warning\"}"}],"items_count":1,"managed_count":1,"managed_resources":[{"ID":41,"BatchID":29,"HostID":1,"ResourceType":"account","HostResourceID":"44","ResourceName":"deepseek-01"}],"reconcile_count":1,"reconcile_runs":[{"ID":9,"BatchID":29,"HostID":1,"ProviderID":1,"Status":"drifted","SummaryJSON":"{\"access_rechecked\":true,\"access_status\":\"self_service_ready\",\"extra_count\":3,\"host_version\":\"0.1.126\",\"missing_count\":6,\"probe_failures\":0,\"raw_extra_count\":3,\"stale_noise_accounts\":[],\"stale_noise_count\":0}"}]}

View File

@@ -0,0 +1 @@
{"batch_id":29,"deleted_accounts":1,"deleted_channels":0,"deleted_groups":0,"deleted_plans":0}