Roo-Code/src/api/providers/deepseek.ts
sam hoang 41fcf85c48 refactor(api): improve OpenAI handler inheritance
- Add OpenAiHandlerOptions interface for configuration
- Extract processUsageMetrics to base class for reuse
- Update RequestyHandler to extend OpenAiHandler
- Add proper type safety for metrics handling
- Clean up code duplication across handlers
2025-02-10 20:14:23 +07:00

24 lines
842 B
TypeScript

import { OpenAiHandler, OpenAiHandlerOptions } from "./openai"
import { ModelInfo } from "../../shared/api"
import { deepSeekModels, deepSeekDefaultModelId } from "../../shared/api"
export class DeepSeekHandler extends OpenAiHandler {
constructor(options: OpenAiHandlerOptions) {
super({
...options,
openAiApiKey: options.deepSeekApiKey ?? "not-provided",
openAiModelId: options.apiModelId ?? deepSeekDefaultModelId,
openAiBaseUrl: options.deepSeekBaseUrl ?? "https://api.deepseek.com/v1",
openAiStreamingEnabled: true,
includeMaxTokens: true,
})
}
override getModel(): { id: string; info: ModelInfo } {
const modelId = this.options.apiModelId ?? deepSeekDefaultModelId
return {
id: modelId,
info: deepSeekModels[modelId as keyof typeof deepSeekModels] || deepSeekModels[deepSeekDefaultModelId],
}
}
}