update
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import { Conversation } from './classes.conversation.js';
|
||||
import * as plugins from './plugins.js';
|
||||
import { AnthropicProvider } from './provider.anthropic.js';
|
||||
import { ElevenLabsProvider } from './provider.elevenlabs.js';
|
||||
import { OllamaProvider } from './provider.ollama.js';
|
||||
import { OpenAiProvider } from './provider.openai.js';
|
||||
import { PerplexityProvider } from './provider.perplexity.js';
|
||||
@@ -15,6 +16,7 @@ export interface ISmartAiOptions {
|
||||
perplexityToken?: string;
|
||||
groqToken?: string;
|
||||
xaiToken?: string;
|
||||
elevenlabsToken?: string;
|
||||
exo?: {
|
||||
baseUrl?: string;
|
||||
apiKey?: string;
|
||||
@@ -24,9 +26,13 @@ export interface ISmartAiOptions {
|
||||
model?: string;
|
||||
visionModel?: string;
|
||||
};
|
||||
elevenlabs?: {
|
||||
defaultVoiceId?: string;
|
||||
defaultModelId?: string;
|
||||
};
|
||||
}
|
||||
|
||||
export type TProvider = 'openai' | 'anthropic' | 'perplexity' | 'ollama' | 'exo' | 'groq' | 'xai';
|
||||
export type TProvider = 'openai' | 'anthropic' | 'perplexity' | 'ollama' | 'exo' | 'groq' | 'xai' | 'elevenlabs';
|
||||
|
||||
export class SmartAi {
|
||||
public options: ISmartAiOptions;
|
||||
@@ -38,6 +44,7 @@ export class SmartAi {
|
||||
public exoProvider: ExoProvider;
|
||||
public groqProvider: GroqProvider;
|
||||
public xaiProvider: XAIProvider;
|
||||
public elevenlabsProvider: ElevenLabsProvider;
|
||||
|
||||
constructor(optionsArg: ISmartAiOptions) {
|
||||
this.options = optionsArg;
|
||||
@@ -74,6 +81,14 @@ export class SmartAi {
|
||||
});
|
||||
await this.xaiProvider.start();
|
||||
}
|
||||
if (this.options.elevenlabsToken) {
|
||||
this.elevenlabsProvider = new ElevenLabsProvider({
|
||||
elevenlabsToken: this.options.elevenlabsToken,
|
||||
defaultVoiceId: this.options.elevenlabs?.defaultVoiceId,
|
||||
defaultModelId: this.options.elevenlabs?.defaultModelId,
|
||||
});
|
||||
await this.elevenlabsProvider.start();
|
||||
}
|
||||
if (this.options.ollama) {
|
||||
this.ollamaProvider = new OllamaProvider({
|
||||
baseUrl: this.options.ollama.baseUrl,
|
||||
@@ -107,6 +122,9 @@ export class SmartAi {
|
||||
if (this.xaiProvider) {
|
||||
await this.xaiProvider.stop();
|
||||
}
|
||||
if (this.elevenlabsProvider) {
|
||||
await this.elevenlabsProvider.stop();
|
||||
}
|
||||
if (this.ollamaProvider) {
|
||||
await this.ollamaProvider.stop();
|
||||
}
|
||||
@@ -134,6 +152,8 @@ export class SmartAi {
|
||||
return Conversation.createWithGroq(this);
|
||||
case 'xai':
|
||||
return Conversation.createWithXai(this);
|
||||
case 'elevenlabs':
|
||||
return Conversation.createWithElevenlabs(this);
|
||||
default:
|
||||
throw new Error('Provider not available');
|
||||
}
|
||||
|
Reference in New Issue
Block a user