@lobehub/chat
Version:
Lobe Chat - an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible Function Call plugin system. Supports one-click free deployment of your private ChatGPT/LLM web application.
47 lines (42 loc) • 1.48 kB
text/typescript
import { AgentRuntimeErrorType } from '../error';
import { ChatCompletionErrorPayload, ModelProvider } from '../types';
import { processMultiProviderModelList } from '../utils/modelParse';
import { createOpenAICompatibleRuntime } from '../utils/openaiCompatibleFactory';
export interface Ai302ModelCard {
id: string;
}
export const Lobe302AI = createOpenAICompatibleRuntime({
baseURL: 'https://api.302.ai/v1',
chatCompletion: {
handleError: (error: any): Omit<ChatCompletionErrorPayload, 'provider'> | undefined => {
let errorResponse: Response | undefined;
if (error instanceof Response) {
errorResponse = error;
} else if ('status' in (error as any)) {
errorResponse = error as Response;
}
if (errorResponse && errorResponse.status === 401) {
return {
error: errorResponse.status,
errorType: AgentRuntimeErrorType.InvalidProviderAPIKey,
};
}
return {
error,
};
},
},
debug: {
chatCompletion: () => process.env.DEBUG_SILICONCLOUD_CHAT_COMPLETION === '1',
},
errorType: {
bizError: AgentRuntimeErrorType.ProviderBizError,
invalidAPIKey: AgentRuntimeErrorType.InvalidProviderAPIKey,
},
models: async ({ client }) => {
const modelsPage = (await client.models.list()) as any;
const modelList: Ai302ModelCard[] = modelsPage.data;
return processMultiProviderModelList(modelList);
},
provider: ModelProvider.Ai302,
});