@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.
39 lines (29 loc) • 1.12 kB
text/typescript
import OpenAI from 'openai';
import { getOpenAIAuthFromRequest } from '@/const/fetch';
import { ChatErrorType, ErrorType } from '@/types/fetch';
import { createErrorResponse } from '@/utils/errorResponse';
import { checkAuth } from './auth';
import { createOpenai } from './createOpenai';
/**
* @deprecated
* createOpenAI Instance with Auth and azure openai support
* if auth not pass ,just return error response
*/
export const createBizOpenAI = (req: Request): Response | OpenAI => {
const { apiKey, accessCode, endpoint, oauthAuthorized } = getOpenAIAuthFromRequest(req);
const result = checkAuth({ accessCode, apiKey, oauthAuthorized });
if (!result.auth) {
return createErrorResponse(result.error as ErrorType);
}
let openai: OpenAI;
try {
openai = createOpenai(apiKey, endpoint);
} catch (error) {
if ((error as Error).cause === ChatErrorType.NoOpenAIAPIKey) {
return createErrorResponse(ChatErrorType.NoOpenAIAPIKey);
}
console.error(error); // log error to trace it
return createErrorResponse(ChatErrorType.InternalServerError);
}
return openai;
};