Skip to content

Commit

Permalink
🔧 refactor(providers): 优化配置管理器的类型推断
Browse files Browse the repository at this point in the history
- 移除所有 getConfig 方法中的显式类型泛型声明
- 在 OllamaProvider 中将 ConfigurationManager 实例化移至构造函数
- 统一规范了 DashScope、Doubao、OpenAI 和 ZhipuAI 提供者的配置获取方式
  • Loading branch information
littleCareless committed Dec 12, 2024
1 parent d9cebd5 commit 9e97e1c
Show file tree
Hide file tree
Showing 5 changed files with 10 additions and 16 deletions.
5 changes: 1 addition & 4 deletions src/ai/providers/DashScopeProvider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -122,10 +122,7 @@ export class DashScopeProvider extends BaseOpenAIProvider {
constructor() {
const configManager = ConfigurationManager.getInstance();
super({
apiKey: configManager.getConfig<string>(
"PROVIDERS_DASHSCOPE_APIKEY",
false
),
apiKey: configManager.getConfig("PROVIDERS_DASHSCOPE_APIKEY", false),
baseURL: "https://api.dashscope.com/v1/services/chat/completions",
providerId: "dashscope",
providerName: "DashScope",
Expand Down
2 changes: 1 addition & 1 deletion src/ai/providers/DoubaoProvider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ export class DoubaoProvider extends BaseOpenAIProvider {
constructor() {
const configManager = ConfigurationManager.getInstance();
super({
apiKey: configManager.getConfig<string>("PROVIDERS_DOUBAO_APIKEY", false),
apiKey: configManager.getConfig("PROVIDERS_DOUBAO_APIKEY", false),
baseURL: "https://ark.cn-beijing.volces.com/api/v3/chat/completions",
providerId: "doubao",
providerName: "豆包 AI",
Expand Down
8 changes: 4 additions & 4 deletions src/ai/providers/OllamaProvider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,18 +17,19 @@ export class OllamaProvider implements AIProvider {
id: "ollama" as AIProviders,
name: "Ollama",
} as const;
private configManager: ConfigurationManager;

constructor() {
this.configManager = ConfigurationManager.getInstance();
const baseUrl = this.getBaseUrl();
this.ollama = new Ollama({
host: baseUrl,
});
}

private getBaseUrl(): string {
const configManager = ConfigurationManager.getInstance();
return (
configManager.getConfig<string>("PROVIDERS_OLLAMA_BASEURL") ||
this.configManager.getConfig("PROVIDERS_OLLAMA_BASEURL") ||
"http://localhost:11434"
);
}
Expand Down Expand Up @@ -56,8 +57,7 @@ export class OllamaProvider implements AIProvider {
params,
async (truncatedDiff) => {
const model =
params.model ||
ConfigurationManager.getInstance().getConfig<string>("MODEL");
params.model || this.configManager.getConfig("BASE_MODEL");

const response = await this.ollama.chat({
model: model.id,
Expand Down
6 changes: 3 additions & 3 deletions src/ai/providers/OpenAIProvider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -61,9 +61,9 @@ export class OpenAIProvider extends BaseOpenAIProvider {
constructor() {
const configManager = ConfigurationManager.getInstance();
super({
apiKey: configManager.getConfig<string>("PROVIDERS_OPENAI_APIKEY", false),
baseURL: configManager.getConfig<string>("PROVIDERS_OPENAI_BASEURL", false),
apiVersion: configManager.getConfig<string>("BASE_MODEL", false),
apiKey: configManager.getConfig("PROVIDERS_OPENAI_APIKEY", false),
baseURL: configManager.getConfig("PROVIDERS_OPENAI_BASEURL", false),
apiVersion: configManager.getConfig("BASE_MODEL", false),
providerId: "openai",
providerName: "OpenAI",
models: models,
Expand Down
5 changes: 1 addition & 4 deletions src/ai/providers/ZhipuAIProvider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -64,10 +64,7 @@ export class ZhipuAIProvider extends BaseOpenAIProvider {
constructor() {
const configManager = ConfigurationManager.getInstance();
super({
apiKey: configManager.getConfig<string>(
"PROVIDERS_ZHIPUAI_APIKEY",
false
),
apiKey: configManager.getConfig("PROVIDERS_ZHIPUAI_APIKEY", false),
baseURL: "https://open.bigmodel.cn/api/paas/v4/",
providerId: "zhipu",
providerName: "zhipu",
Expand Down

0 comments on commit 9e97e1c

Please sign in to comment.