mirror of
https://github.com/AppFlowy-IO/AppFlowy.git
synced 2024-08-30 18:12:39 +00:00
chore: update
This commit is contained in:
parent
e7877af643
commit
6cd3407d20
@ -4,6 +4,7 @@ use flowy_error::{FlowyError, FlowyResult};
|
|||||||
use flowy_sidecar::core::plugin::{Plugin, PluginId, PluginInfo};
|
use flowy_sidecar::core::plugin::{Plugin, PluginId, PluginInfo};
|
||||||
use flowy_sidecar::error::SidecarError;
|
use flowy_sidecar::error::SidecarError;
|
||||||
use flowy_sidecar::manager::SidecarManager;
|
use flowy_sidecar::manager::SidecarManager;
|
||||||
|
use lib_infra::util::{get_operating_system, OperatingSystem};
|
||||||
use log::error;
|
use log::error;
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use std::path::PathBuf;
|
use std::path::PathBuf;
|
||||||
@ -209,6 +210,7 @@ impl LocalChatLLMChat {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let system = get_operating_system();
|
||||||
// Initialize chat plugin if the config is different
|
// Initialize chat plugin if the config is different
|
||||||
// If the chat_bin_path is different, remove the old plugin
|
// If the chat_bin_path is different, remove the old plugin
|
||||||
if let Err(err) = self.destroy_chat_plugin().await {
|
if let Err(err) = self.destroy_chat_plugin().await {
|
||||||
@ -227,13 +229,35 @@ impl LocalChatLLMChat {
|
|||||||
// init plugin
|
// init plugin
|
||||||
trace!("[Chat Plugin] init chat plugin model: {:?}", plugin_id);
|
trace!("[Chat Plugin] init chat plugin model: {:?}", plugin_id);
|
||||||
let model_path = config.chat_model_path.clone();
|
let model_path = config.chat_model_path.clone();
|
||||||
let plugin = self.sidecar_manager.init_plugin(
|
let params = match system {
|
||||||
plugin_id,
|
OperatingSystem::Windows => {
|
||||||
serde_json::json!({
|
serde_json::json!({
|
||||||
"absolute_chat_model_path": model_path,
|
"absolute_chat_model_path": model_path,
|
||||||
}),
|
"device": "cpu",
|
||||||
)?;
|
})
|
||||||
|
},
|
||||||
|
OperatingSystem::Linux => {
|
||||||
|
serde_json::json!({
|
||||||
|
"absolute_chat_model_path": model_path,
|
||||||
|
"device": "cpu",
|
||||||
|
})
|
||||||
|
},
|
||||||
|
OperatingSystem::MacOS => {
|
||||||
|
serde_json::json!({
|
||||||
|
"absolute_chat_model_path": model_path,
|
||||||
|
"device": "gpu",
|
||||||
|
})
|
||||||
|
},
|
||||||
|
_ => {
|
||||||
|
return Err(FlowyError::local_ai().with_context("Unsupported operating system"));
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
info!(
|
||||||
|
"[Chat Plugin] setup chat plugin: {:?}, params: {:?}",
|
||||||
|
plugin_id, params
|
||||||
|
);
|
||||||
|
let plugin = self.sidecar_manager.init_plugin(plugin_id, params)?;
|
||||||
info!("[Chat Plugin] {} setup success", plugin);
|
info!("[Chat Plugin] {} setup success", plugin);
|
||||||
self.plugin_config.write().await.replace(config);
|
self.plugin_config.write().await.replace(config);
|
||||||
self.update_state(LLMState::Ready { plugin_id }).await;
|
self.update_state(LLMState::Ready { plugin_id }).await;
|
||||||
@ -310,6 +334,11 @@ impl LLMState {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn is_ready(&self) -> bool {
|
fn is_ready(&self) -> bool {
|
||||||
matches!(self, LLMState::Ready { .. })
|
let system = get_operating_system();
|
||||||
|
if system.is_desktop() {
|
||||||
|
return matches!(self, LLMState::Ready { .. });
|
||||||
|
} else {
|
||||||
|
false
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user