refactor(aiCore): 提取 ModernAiProviderConfig 类型以复用

将多处重复的配置类型定义提取为 ModernAiProviderConfig 类型,提高代码可维护性
This commit is contained in:
icarus 2025-08-29 20:25:16 +08:00
parent 1460a0b5b9
commit ddb203170e

View File

@ -32,6 +32,13 @@ import type { StreamTextParams } from './types'
const logger = loggerService.withContext('ModernAiProvider') const logger = loggerService.withContext('ModernAiProvider')
export type ModernAiProviderConfig = AiSdkMiddlewareConfig & {
assistant: Assistant
// topicId for tracing
topicId?: string
callType: string
}
export default class ModernAiProvider { export default class ModernAiProvider {
private legacyProvider: LegacyAiProvider private legacyProvider: LegacyAiProvider
private config: ReturnType<typeof providerToAiSdkConfig> private config: ReturnType<typeof providerToAiSdkConfig>
@ -49,16 +56,7 @@ export default class ModernAiProvider {
return this.actualProvider return this.actualProvider
} }
public async completions( public async completions(modelId: string, params: StreamTextParams, config: ModernAiProviderConfig) {
modelId: string,
params: StreamTextParams,
config: AiSdkMiddlewareConfig & {
assistant: Assistant
// topicId for tracing
topicId?: string
callType: string
}
) {
// 准备特殊配置 // 准备特殊配置
await prepareSpecialProviderConfig(this.actualProvider, this.config) await prepareSpecialProviderConfig(this.actualProvider, this.config)
@ -78,12 +76,7 @@ export default class ModernAiProvider {
private async _completions( private async _completions(
modelId: string, modelId: string,
params: StreamTextParams, params: StreamTextParams,
config: AiSdkMiddlewareConfig & { config: ModernAiProviderConfig
assistant: Assistant
// topicId for tracing
topicId?: string
callType: string
}
): Promise<CompletionsResult> { ): Promise<CompletionsResult> {
// 初始化 provider 到全局管理器 // 初始化 provider 到全局管理器
try { try {
@ -114,12 +107,7 @@ export default class ModernAiProvider {
private async _completionsForTrace( private async _completionsForTrace(
modelId: string, modelId: string,
params: StreamTextParams, params: StreamTextParams,
config: AiSdkMiddlewareConfig & { config: ModernAiProviderConfig & { topicId: string }
assistant: Assistant
// topicId for tracing
topicId: string
callType: string
}
): Promise<CompletionsResult> { ): Promise<CompletionsResult> {
const traceName = `${this.actualProvider.name}.${modelId}.${config.callType}` const traceName = `${this.actualProvider.name}.${modelId}.${config.callType}`
const traceParams: StartSpanParams = { const traceParams: StartSpanParams = {
@ -202,11 +190,7 @@ export default class ModernAiProvider {
private async modernCompletions( private async modernCompletions(
modelId: string, modelId: string,
params: StreamTextParams, params: StreamTextParams,
config: AiSdkMiddlewareConfig & { config: ModernAiProviderConfig
assistant: Assistant
topicId?: string
callType: string
}
): Promise<CompletionsResult> { ): Promise<CompletionsResult> {
logger.info('Starting modernCompletions', { logger.info('Starting modernCompletions', {
modelId, modelId,
@ -335,12 +319,7 @@ export default class ModernAiProvider {
private async modernImageGeneration( private async modernImageGeneration(
modelId: string, modelId: string,
params: StreamTextParams, params: StreamTextParams,
config: AiSdkMiddlewareConfig & { config: ModernAiProviderConfig
assistant: Assistant
// topicId for tracing
topicId?: string
callType: string
}
): Promise<CompletionsResult> { ): Promise<CompletionsResult> {
const { onChunk } = config const { onChunk } = config