fix fresh-host acceptance and document real-host debugging learnings
This commit is contained in:
@@ -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
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"source": "env:MINIMAX_53HK_API_KEY",
|
||||
"provider_id": "minimax",
|
||||
"upstream_key_prefix": "sk-4175b7d84",
|
||||
"upstream_key_suffix": "42d776"
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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}}
|
||||
@@ -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
|
||||
|
||||
@@ -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! I’m 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"}
|
||||
@@ -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! I’m 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":[]}
|
||||
@@ -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;
|
||||
@@ -0,0 +1,5 @@
|
||||
BEGIN
|
||||
UPDATE 1
|
||||
UPDATE 1
|
||||
INSERT 0 1
|
||||
COMMIT
|
||||
@@ -0,0 +1,4 @@
|
||||
auth_cache_key=apikey:auth:ade6d1c548914a154f4c153434063d8d14ea39560df4980c0839bfbd3aa9caef
|
||||
balance_cache_key=billing:balance:19
|
||||
subscription_cache_key=billing:sub:19:6
|
||||
0
|
||||
@@ -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}}
|
||||
@@ -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
|
||||
|
||||
@@ -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"}
|
||||
@@ -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
|
||||
|
||||
@@ -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}}
|
||||
@@ -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}
|
||||
@@ -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! I’m 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"}
|
||||
@@ -0,0 +1 @@
|
||||
{"provider_id":"minimax","mode":"subscription","available":true,"message":"latest access status: subscription_ready"}
|
||||
@@ -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! I’m 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":[]}
|
||||
@@ -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}
|
||||
|
||||
@@ -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"}
|
||||
@@ -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}
|
||||
|
||||
@@ -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}}
|
||||
@@ -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"}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"source": "file:/tmp/deepseek_2166.key",
|
||||
"provider_id": "deepseek",
|
||||
"upstream_key_prefix": "rk-aW9xpPDBP",
|
||||
"upstream_key_suffix": "aUPv1B"
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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}}
|
||||
@@ -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
|
||||
|
||||
@@ -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"}
|
||||
@@ -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":[]}
|
||||
@@ -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;
|
||||
@@ -0,0 +1,3 @@
|
||||
BEGIN
|
||||
UPDATE 1
|
||||
ROLLBACK
|
||||
@@ -0,0 +1,4 @@
|
||||
auth_cache_key=apikey:auth:ca052e60820f3457831e3080de38cc3c14889bef4838b485377afca5567a1481
|
||||
balance_cache_key=billing:balance:20
|
||||
subscription_cache_key=billing:sub:20:5
|
||||
0
|
||||
@@ -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}}
|
||||
@@ -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
|
||||
|
||||
@@ -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"}
|
||||
@@ -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
|
||||
|
||||
@@ -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}}
|
||||
@@ -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}
|
||||
@@ -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"}
|
||||
@@ -0,0 +1 @@
|
||||
{"provider_id":"deepseek","mode":"subscription","available":true,"message":"latest access status: subscription_ready"}
|
||||
@@ -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":[]}
|
||||
@@ -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
|
||||
|
||||
@@ -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"}]}
|
||||
@@ -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
|
||||
|
||||
@@ -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}}
|
||||
@@ -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"}
|
||||
@@ -0,0 +1,30 @@
|
||||
真实宿主验收产物 -> 速查清单对应
|
||||
|
||||
清单 1(环境 / host 前置)
|
||||
- 01-create-host.json
|
||||
- 02-probe-host.json
|
||||
|
||||
清单 2(channel 宿主契约 / 导入落库)
|
||||
- 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)
|
||||
|
||||
清单 3(access / 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
|
||||
@@ -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}}
|
||||
@@ -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}}
|
||||
@@ -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"}
|
||||
@@ -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 默认套餐"}}
|
||||
@@ -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"}
|
||||
@@ -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":[]}
|
||||
@@ -0,0 +1 @@
|
||||
{"provider_id":"deepseek","mode":"self_service","available":true,"message":"latest access status: fully_ready"}
|
||||
@@ -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"}
|
||||
@@ -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}
|
||||
@@ -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}}
|
||||
@@ -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}"}]}
|
||||
@@ -0,0 +1 @@
|
||||
{"batch_id":29,"deleted_accounts":1,"deleted_channels":0,"deleted_groups":0,"deleted_plans":0}
|
||||
Reference in New Issue
Block a user