feat: no branches workflow support (#7119)

fix AFF-1165 AFF-1164
This commit is contained in:
darkskygit
2024-06-07 05:53:39 +00:00
parent b75da1f3e0
commit 44b0ea2b6c
14 changed files with 599 additions and 12 deletions

View File

@@ -166,6 +166,34 @@ export class CopilotProviderService {
}
return null;
}
async getProviderByModel<C extends CopilotCapability>(
model: string,
prefer?: CopilotProviderType
): Promise<CapabilityToCopilotProvider[C] | null> {
const providers = Array.from(COPILOT_PROVIDER.keys());
if (providers.length) {
let selectedProvider: CopilotProviderType | undefined = prefer;
let currentIndex = -1;
if (!selectedProvider) {
currentIndex = 0;
selectedProvider = providers[currentIndex];
}
while (selectedProvider) {
const provider = this.getProvider(selectedProvider);
if (await provider.isModelAvailable(model)) {
return provider as CapabilityToCopilotProvider[C];
}
currentIndex += 1;
selectedProvider = providers[currentIndex];
}
}
return null;
}
}
export { FalProvider } from './fal';

View File

@@ -1,5 +1,3 @@
import assert from 'node:assert';
import { Logger } from '@nestjs/common';
import { ClientOptions, OpenAI } from 'openai';
@@ -58,12 +56,11 @@ export class OpenAIProvider
private existsModels: string[] | undefined;
constructor(config: ClientOptions) {
assert(OpenAIProvider.assetsConfig(config));
this.instance = new OpenAI(config);
}
static assetsConfig(config: ClientOptions) {
return !!config.apiKey;
return !!config?.apiKey;
}
get type(): CopilotProviderType {