mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2026-01-08 14:29:15 +08:00
refactor(aiCore): 提取 ModernAiProviderConfig 类型以复用
将多处重复的配置类型定义提取为 ModernAiProviderConfig 类型,提高代码可维护性
This commit is contained in:
parent
1460a0b5b9
commit
ddb203170e
@ -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
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user