feat(ai-review 使用量): 新增多平台 AI 助理使用量統計與剩餘可用百分比
This commit is contained in:
+7
-2
@@ -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}`);
|
||||
|
||||
Reference in New Issue
Block a user