New provider PPIO support

This commit is contained in:
saikidev
2025-02-13 16:41:54 +08:00
parent 12863f5213
commit c0826d2275
14 changed files with 567 additions and 0 deletions

View File

@@ -24,6 +24,7 @@ import { DeepSeekApi } from "./platforms/deepseek";
import { XAIApi } from "./platforms/xai";
import { ChatGLMApi } from "./platforms/glm";
import { SiliconflowApi } from "./platforms/siliconflow";
import { PPIOApi } from "./platforms/ppio";
export const ROLES = ["system", "user", "assistant"] as const;
export type MessageRole = (typeof ROLES)[number];
@@ -168,6 +169,9 @@ export class ClientApi {
case ModelProvider.SiliconFlow:
this.llm = new SiliconflowApi();
break;
case ModelProvider.PPIO:
this.llm = new PPIOApi();
break;
default:
this.llm = new ChatGPTApi();
}
@@ -260,6 +264,7 @@ export function getHeaders(ignoreHeaders: boolean = false) {
const isChatGLM = modelConfig.providerName === ServiceProvider.ChatGLM;
const isSiliconFlow =
modelConfig.providerName === ServiceProvider.SiliconFlow;
const isPPIO = modelConfig.providerName === ServiceProvider.PPIO;
const isEnabledAccessControl = accessStore.enabledAccessControl();
const apiKey = isGoogle
? accessStore.googleApiKey
@@ -281,6 +286,8 @@ export function getHeaders(ignoreHeaders: boolean = false) {
? accessStore.chatglmApiKey
: isSiliconFlow
? accessStore.siliconflowApiKey
: isPPIO
? accessStore.ppioApiKey
: isIflytek
? accessStore.iflytekApiKey && accessStore.iflytekApiSecret
? accessStore.iflytekApiKey + ":" + accessStore.iflytekApiSecret
@@ -299,6 +306,7 @@ export function getHeaders(ignoreHeaders: boolean = false) {
isXAI,
isChatGLM,
isSiliconFlow,
isPPIO,
apiKey,
isEnabledAccessControl,
};
@@ -327,6 +335,7 @@ export function getHeaders(ignoreHeaders: boolean = false) {
isXAI,
isChatGLM,
isSiliconFlow,
isPPIO,
apiKey,
isEnabledAccessControl,
} = getConfig();
@@ -377,6 +386,8 @@ export function getClientApi(provider: ServiceProvider): ClientApi {
return new ClientApi(ModelProvider.ChatGLM);
case ServiceProvider.SiliconFlow:
return new ClientApi(ModelProvider.SiliconFlow);
case ServiceProvider.PPIO:
return new ClientApi(ModelProvider.PPIO);
default:
return new ClientApi(ModelProvider.GPT);
}