fix(openai): 修复 prepareRequestBody 异步调用问题并添加监控钩子
将 prepareRequestBody 方法改为异步以支持插件钩子调用,修复因缺少 await 导致的潜在问题。同时添加内部请求转换监控钩子,便于跟踪请求处理流程。
This commit is contained in:
parent
7726ca1f38
commit
8fb4d59b23
2 changed files with 21 additions and 4 deletions
2
VERSION
2
VERSION
|
|
@ -1 +1 @@
|
|||
2.10.9.1
|
||||
2.10.9.2
|
||||
|
|
|
|||
|
|
@ -172,7 +172,7 @@ export class CodexApiService {
|
|||
}
|
||||
|
||||
const url = `${this.baseUrl}/responses`;
|
||||
const body = this.prepareRequestBody(selectedModel, requestBody, true);
|
||||
const body = await this.prepareRequestBody(selectedModel, requestBody, true);
|
||||
const headers = this.buildHeaders(body.prompt_cache_key, true);
|
||||
|
||||
try {
|
||||
|
|
@ -253,7 +253,7 @@ export class CodexApiService {
|
|||
}
|
||||
|
||||
const url = `${this.baseUrl}/responses`;
|
||||
const body = this.prepareRequestBody(selectedModel, requestBody, true);
|
||||
const body = await this.prepareRequestBody(selectedModel, requestBody, true);
|
||||
const headers = this.buildHeaders(body.prompt_cache_key, true);
|
||||
|
||||
try {
|
||||
|
|
@ -334,7 +334,7 @@ export class CodexApiService {
|
|||
/**
|
||||
* 准备请求体
|
||||
*/
|
||||
prepareRequestBody(model, requestBody, stream) {
|
||||
async prepareRequestBody(model, requestBody, stream) {
|
||||
// 提取 metadata 并从请求体中移除,避免透传到上游
|
||||
const metadata = requestBody.metadata || {};
|
||||
|
||||
|
|
@ -393,6 +393,23 @@ export class CodexApiService {
|
|||
delete result.service_tier;
|
||||
}
|
||||
|
||||
// 监控钩子:内部请求转换
|
||||
if (this.config?._monitorRequestId) {
|
||||
try {
|
||||
const { getPluginManager } = await import('../../core/plugin-manager.js');
|
||||
const pluginManager = getPluginManager();
|
||||
if (pluginManager) {
|
||||
await pluginManager.executeHook('onInternalRequestConverted', {
|
||||
requestId: this.config._monitorRequestId,
|
||||
internalRequest: result,
|
||||
converterName: 'prepareRequestBody'
|
||||
});
|
||||
}
|
||||
} catch (e) {
|
||||
logger.error('[Codex] Error calling onInternalRequestConverted hook:', e.message);
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue