feat(ai-review 使用量): 新增多平台 AI 助理使用量統計與剩餘可用百分比

This commit is contained in:
Jeffery
2026-06-23 12:58:43 +08:00
parent e6d1a17b78
commit 1151535161
4 changed files with 278 additions and 7 deletions
+7 -2
View File
@@ -1,5 +1,6 @@
import axios from 'axios';
import { getLLMConfig, getOpenCodeHttpsAgent } from './config.js';
import { recordUsage, recordRateLimit } from './usage.js';
import { line, error } from './log.js';
function isOpenAIGpt55(provider, model) {
@@ -81,7 +82,7 @@ async function chatOpenCode(baseURL, model, systemPrompt, userContent, headers)
},
opencodeAxiosOptions(headers)
);
return extractOpenCodeContent(resp.data);
return { content: extractOpenCodeContent(resp.data), data: resp.data };
}
export async function chat(systemPrompt, userContent) {
@@ -99,13 +100,17 @@ export async function chat(systemPrompt, userContent) {
try {
if (provider === 'opencode') {
applyOpenCodeAuth(headers);
return await chatOpenCode(baseURL, model, systemPrompt, userContent, headers);
const { content, data } = await chatOpenCode(baseURL, model, systemPrompt, userContent, headers);
recordUsage(data);
return content;
}
const resp = await axios.post(
chatEndpoint(baseURL, provider, model),
chatPayload(provider, model, systemPrompt, userContent),
{ headers }
);
recordUsage(resp.data);
recordRateLimit(resp.headers);
return extractContent(provider, model, resp.data);
} catch (e) {
line(`[LLM] key[${i + 1}/${shuffled.length}] 失敗: ${e.message}`);