[PR #120] [CLOSED] feat(usage): 添加provider健康检查接口 #269

Closed
opened 2026-02-27 07:18:46 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/justlovemaki/AIClient-2-API/pull/120
Author: @unihon
Created: 12/21/2025
Status: Closed

Base: mainHead: feature/provider-health-api


📝 Commits (1)

  • 4996208 feat(usage): 添加provider健康检查接口

📊 Changes

2 files changed (+127 additions, -1 deletions)

View changed files

📝 src/request-handler.js (+33 -1)
📝 src/service-manager.js (+94 -0)

📄 Description

概要

添加独立的provider健康检查接口(与web UI管理中provider信息接口不同),用于系统provider检测

应用场景

通过获取provider状态,结合相关监控、告警系统整合

使用案例

结合Uptime Kuma,实现provider异常告警通知

# 获取所有已启用的provider记录状态
curl  http:/host:port/provider_health

# 支持provider, customName过滤记录
curl  http:/host:port/provider_health?provider=gemini-antigravity&customName=hello

# 支持unhealthRatioThreshold控制不健康比例的阈值, 当unhealthyRatio超过阈值返回summaryHealthy: false
curl  http:/host:port/provider_health?unhealthRatioThreshold=0.3

响应样例

{
	"timestamp": "2025-12-21T16:22:51.390Z",
	"items": [
		{
			"customName": null,
			"isHealthy": true,
			"lastErrorTime": null,
			"lastErrorMessage": null,
			"identify": "NoCustomName::claude-kiro-oauth::./configs/kiro/1766327484403_kiro-auth-token/1766327484403_kiro-auth-token.json",
			"provider": "claude-kiro-oauth"
		},
		{
			"customName": null,
			"isHealthy": true,
			"lastErrorTime": null,
			"lastErrorMessage": null,
			"identify": "NoCustomName::gemini-antigravity::./configs/antigravity/1766327471161_antigravity-credential-1766054214572.json",
			"provider": "gemini-antigravity"
		},
		{
			"customName": null,
			"isHealthy": true,
			"lastErrorTime": null,
			"lastErrorMessage": null,
			"identify": "NoCustomName::gemini-antigravity::./configs/antigravity/1766329435057_antigravity-credential-1766054214572.json",
			"provider": "gemini-antigravity"
		}
	],
	"count": 3,
	"unhealthyCount": 0,
	"unhealthyRatio": 0,
	"unhealthySummeryMessage": null,
	"summaryHealthy": true
}

原理

数据源基于providerPoolManager和PROVIDER_POOLS_FILE_PATH


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/justlovemaki/AIClient-2-API/pull/120 **Author:** [@unihon](https://github.com/unihon) **Created:** 12/21/2025 **Status:** ❌ Closed **Base:** `main` ← **Head:** `feature/provider-health-api` --- ### 📝 Commits (1) - [`4996208`](https://github.com/justlovemaki/AIClient-2-API/commit/4996208354b6de67d71f3ed7963a440e759261a6) feat(usage): 添加provider健康检查接口 ### 📊 Changes **2 files changed** (+127 additions, -1 deletions) <details> <summary>View changed files</summary> 📝 `src/request-handler.js` (+33 -1) 📝 `src/service-manager.js` (+94 -0) </details> ### 📄 Description ## 概要 添加独立的provider健康检查接口(与web UI管理中provider信息接口不同),用于系统provider检测 ## 应用场景 通过获取provider状态,结合相关监控、告警系统整合 ## 使用案例 结合[Uptime Kuma](https://github.com/louislam/uptime-kuma),实现provider异常告警通知 ```bash # 获取所有已启用的provider记录状态 curl http:/host:port/provider_health # 支持provider, customName过滤记录 curl http:/host:port/provider_health?provider=gemini-antigravity&customName=hello # 支持unhealthRatioThreshold控制不健康比例的阈值, 当unhealthyRatio超过阈值返回summaryHealthy: false curl http:/host:port/provider_health?unhealthRatioThreshold=0.3 ```` ## 响应样例 ```json { "timestamp": "2025-12-21T16:22:51.390Z", "items": [ { "customName": null, "isHealthy": true, "lastErrorTime": null, "lastErrorMessage": null, "identify": "NoCustomName::claude-kiro-oauth::./configs/kiro/1766327484403_kiro-auth-token/1766327484403_kiro-auth-token.json", "provider": "claude-kiro-oauth" }, { "customName": null, "isHealthy": true, "lastErrorTime": null, "lastErrorMessage": null, "identify": "NoCustomName::gemini-antigravity::./configs/antigravity/1766327471161_antigravity-credential-1766054214572.json", "provider": "gemini-antigravity" }, { "customName": null, "isHealthy": true, "lastErrorTime": null, "lastErrorMessage": null, "identify": "NoCustomName::gemini-antigravity::./configs/antigravity/1766329435057_antigravity-credential-1766054214572.json", "provider": "gemini-antigravity" } ], "count": 3, "unhealthyCount": 0, "unhealthyRatio": 0, "unhealthySummeryMessage": null, "summaryHealthy": true } ``` ## 原理 数据源基于providerPoolManager和PROVIDER_POOLS_FILE_PATH --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-02-27 07:18:46 +03:00
Sign in to join this conversation.
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/AIClient-2-API-justlovemaki#269
No description provided.