Many-in-one AI client.
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

25 rader
897 B

  1. import * as OpenAiImpl from './platforms/openai';
  2. export const SUPPORTED_PLATFORMS = { OpenAi: OpenAiImpl } as const;
  3. export type PlatformConfig = OpenAiImpl.PlatformConfig;
  4. export type PlatformEventEmitter = OpenAiImpl.PlatformEventEmitter;
  5. export * as OpenAi from './platforms/openai';
  6. export const createAiClient = (configParams: PlatformConfig): PlatformEventEmitter => {
  7. const {
  8. platform,
  9. platformConfiguration,
  10. } = configParams;
  11. const platformModules = Object.values(SUPPORTED_PLATFORMS);
  12. const platformModule = platformModules.find((p) => p.PLATFORM_ID === platform);
  13. if (!platformModule) {
  14. const supportedPlatforms = platformModules.map((p) => p.PLATFORM_ID).join(', ');
  15. throw new Error(`Unsupported platform: ${platform}. Supported platforms are: ${supportedPlatforms}`);
  16. }
  17. return new platformModule.PlatformEventEmitterImpl(platformConfiguration);
  18. };