+
+
+
+
m.id === targetMsg.id)
try {
- const model = getModel(settings, configs)
+ const model = getModel(effectiveSettings, configs)
switch (session.type) {
case 'chat':
case undefined:
@@ -237,7 +243,7 @@ export async function generate(sessionId: string, targetMsg: Message) {
errorCode,
error: `${err.message}`,
errorExtra: {
- aiProvider: settings.aiProvider,
+ aiProvider: effectiveAIProvider,
host: err['host'],
},
}
@@ -254,7 +260,9 @@ async function _generateName(sessionId: string, modifyName: (sessionId: string,
}
const configs = await platform.getConfig()
try {
- const model = getModel(settings, configs)
+ const effectiveAIProvider: ModelProvider = session.aiProvider || settings.aiProvider
+ const effectiveSettings = { ...settings, aiProvider: effectiveAIProvider }
+ const model = getModel(effectiveSettings, configs)
let name = await model.chat(promptFormat.nameConversation(
session.messages
.filter(m => m.role !== 'system')
diff --git a/src/shared/types.ts b/src/shared/types.ts
index fe07c9f6..59367f46 100644
--- a/src/shared/types.ts
+++ b/src/shared/types.ts
@@ -49,6 +49,7 @@ export interface Session {
type?: SessionType
name: string
picUrl?: string
+ aiProvider?: ModelProvider
messages: Message[]
copilotId?: string
}
@@ -69,6 +70,7 @@ export enum ModelProvider {
Ollama = 'ollama',
SiliconFlow = 'silicon-flow',
LMStudio = 'lm-studio',
+ PPIO = 'ppio',
}
export interface ModelSettings {
@@ -115,6 +117,11 @@ export interface ModelSettings {
siliconCloudKey: string
siliconCloudModel: siliconflow.Model | 'custom-model'
+ // ppio
+ ppioHost: string
+ ppioKey: string
+ ppioModel: string
+
temperature: number
topP: number
openaiMaxContextMessageCount: number