mirror of
https://github.com/AppFlowy-IO/AppFlowy.git
synced 2025-11-15 18:07:55 +00:00
Merge pull request #7522 from AppFlowy-IO/response_format_local_ai
chore: support response format
This commit is contained in:
commit
2b8aaf1d46
4
frontend/rust-lib/Cargo.lock
generated
4
frontend/rust-lib/Cargo.lock
generated
@ -198,7 +198,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "appflowy-local-ai"
|
name = "appflowy-local-ai"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/AppFlowy-IO/AppFlowy-LocalAI?rev=f1b5167e9569e8a61ef50a1afb140306a5287e57#f1b5167e9569e8a61ef50a1afb140306a5287e57"
|
source = "git+https://github.com/AppFlowy-IO/AppFlowy-LocalAI?rev=cf0b5e77d3bbcecbcd9cbed86476658b477399e6#cf0b5e77d3bbcecbcd9cbed86476658b477399e6"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"appflowy-plugin",
|
"appflowy-plugin",
|
||||||
@ -218,7 +218,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "appflowy-plugin"
|
name = "appflowy-plugin"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+https://github.com/AppFlowy-IO/AppFlowy-LocalAI?rev=f1b5167e9569e8a61ef50a1afb140306a5287e57#f1b5167e9569e8a61ef50a1afb140306a5287e57"
|
source = "git+https://github.com/AppFlowy-IO/AppFlowy-LocalAI?rev=cf0b5e77d3bbcecbcd9cbed86476658b477399e6#cf0b5e77d3bbcecbcd9cbed86476658b477399e6"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"cfg-if",
|
"cfg-if",
|
||||||
|
|||||||
@ -152,5 +152,5 @@ collab-importer = { version = "0.1", git = "https://github.com/AppFlowy-IO/AppFl
|
|||||||
# To update the commit ID, run:
|
# To update the commit ID, run:
|
||||||
# scripts/tool/update_local_ai_rev.sh new_rev_id
|
# scripts/tool/update_local_ai_rev.sh new_rev_id
|
||||||
# ⚠️⚠️⚠️️
|
# ⚠️⚠️⚠️️
|
||||||
appflowy-local-ai = { version = "0.1", git = "https://github.com/AppFlowy-IO/AppFlowy-LocalAI", rev = "f1b5167e9569e8a61ef50a1afb140306a5287e57" }
|
appflowy-local-ai = { version = "0.1", git = "https://github.com/AppFlowy-IO/AppFlowy-LocalAI", rev = "cf0b5e77d3bbcecbcd9cbed86476658b477399e6" }
|
||||||
appflowy-plugin = { version = "0.1", git = "https://github.com/AppFlowy-IO/AppFlowy-LocalAI", rev = "f1b5167e9569e8a61ef50a1afb140306a5287e57" }
|
appflowy-plugin = { version = "0.1", git = "https://github.com/AppFlowy-IO/AppFlowy-LocalAI", rev = "cf0b5e77d3bbcecbcd9cbed86476658b477399e6" }
|
||||||
|
|||||||
@ -92,7 +92,7 @@ pub trait ChatCloudService: Send + Sync + 'static {
|
|||||||
params: CompleteTextParams,
|
params: CompleteTextParams,
|
||||||
) -> Result<StreamComplete, FlowyError>;
|
) -> Result<StreamComplete, FlowyError>;
|
||||||
|
|
||||||
async fn index_file(
|
async fn embed_file(
|
||||||
&self,
|
&self,
|
||||||
workspace_id: &str,
|
workspace_id: &str,
|
||||||
file_path: &Path,
|
file_path: &Path,
|
||||||
|
|||||||
@ -587,7 +587,7 @@ impl Chat {
|
|||||||
);
|
);
|
||||||
self
|
self
|
||||||
.chat_service
|
.chat_service
|
||||||
.index_file(
|
.embed_file(
|
||||||
&self.user_service.workspace_id()?,
|
&self.user_service.workspace_id()?,
|
||||||
&file_path,
|
&file_path,
|
||||||
&self.chat_id,
|
&self.chat_id,
|
||||||
|
|||||||
@ -392,7 +392,7 @@ impl LocalAIController {
|
|||||||
.await;
|
.await;
|
||||||
|
|
||||||
let result = self
|
let result = self
|
||||||
.index_file(chat_id, file_path, content, Some(index_metadata.clone()))
|
.embed_file(chat_id, file_path, content, Some(index_metadata.clone()))
|
||||||
.await;
|
.await;
|
||||||
match result {
|
match result {
|
||||||
Ok(_) => {
|
Ok(_) => {
|
||||||
|
|||||||
@ -163,7 +163,7 @@ impl ChatCloudService for AICloudServiceMiddleware {
|
|||||||
let row = self.get_message_record(question_id)?;
|
let row = self.get_message_record(question_id)?;
|
||||||
match self
|
match self
|
||||||
.local_ai
|
.local_ai
|
||||||
.stream_question(chat_id, &row.content, json!({}))
|
.stream_question(chat_id, &row.content, Some(json!(format)), json!({}))
|
||||||
.await
|
.await
|
||||||
{
|
{
|
||||||
Ok(stream) => Ok(QuestionStream::new(stream).boxed()),
|
Ok(stream) => Ok(QuestionStream::new(stream).boxed()),
|
||||||
@ -277,7 +277,11 @@ impl ChatCloudService for AICloudServiceMiddleware {
|
|||||||
if self.local_ai.is_running() {
|
if self.local_ai.is_running() {
|
||||||
match self
|
match self
|
||||||
.local_ai
|
.local_ai
|
||||||
.complete_text(¶ms.text, params.completion_type.unwrap() as u8)
|
.complete_text(
|
||||||
|
¶ms.text,
|
||||||
|
params.completion_type.unwrap() as u8,
|
||||||
|
Some(json!(params.format)),
|
||||||
|
)
|
||||||
.await
|
.await
|
||||||
{
|
{
|
||||||
Ok(stream) => Ok(
|
Ok(stream) => Ok(
|
||||||
@ -298,7 +302,7 @@ impl ChatCloudService for AICloudServiceMiddleware {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async fn index_file(
|
async fn embed_file(
|
||||||
&self,
|
&self,
|
||||||
workspace_id: &str,
|
workspace_id: &str,
|
||||||
file_path: &Path,
|
file_path: &Path,
|
||||||
@ -308,14 +312,14 @@ impl ChatCloudService for AICloudServiceMiddleware {
|
|||||||
if self.local_ai.is_running() {
|
if self.local_ai.is_running() {
|
||||||
self
|
self
|
||||||
.local_ai
|
.local_ai
|
||||||
.index_file(chat_id, Some(file_path.to_path_buf()), None, metadata)
|
.embed_file(chat_id, Some(file_path.to_path_buf()), None, metadata)
|
||||||
.await
|
.await
|
||||||
.map_err(|err| FlowyError::local_ai().with_context(err))?;
|
.map_err(|err| FlowyError::local_ai().with_context(err))?;
|
||||||
Ok(())
|
Ok(())
|
||||||
} else {
|
} else {
|
||||||
self
|
self
|
||||||
.cloud_service
|
.cloud_service
|
||||||
.index_file(workspace_id, file_path, chat_id, metadata)
|
.embed_file(workspace_id, file_path, chat_id, metadata)
|
||||||
.await
|
.await
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -781,7 +781,7 @@ impl ChatCloudService for ServerProvider {
|
|||||||
.await
|
.await
|
||||||
}
|
}
|
||||||
|
|
||||||
async fn index_file(
|
async fn embed_file(
|
||||||
&self,
|
&self,
|
||||||
workspace_id: &str,
|
workspace_id: &str,
|
||||||
file_path: &Path,
|
file_path: &Path,
|
||||||
@ -791,7 +791,7 @@ impl ChatCloudService for ServerProvider {
|
|||||||
self
|
self
|
||||||
.get_server()?
|
.get_server()?
|
||||||
.chat_service()
|
.chat_service()
|
||||||
.index_file(workspace_id, file_path, chat_id, metadata)
|
.embed_file(workspace_id, file_path, chat_id, metadata)
|
||||||
.await
|
.await
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -200,7 +200,7 @@ where
|
|||||||
Ok(stream.boxed())
|
Ok(stream.boxed())
|
||||||
}
|
}
|
||||||
|
|
||||||
async fn index_file(
|
async fn embed_file(
|
||||||
&self,
|
&self,
|
||||||
_workspace_id: &str,
|
_workspace_id: &str,
|
||||||
_file_path: &Path,
|
_file_path: &Path,
|
||||||
|
|||||||
@ -101,7 +101,7 @@ impl ChatCloudService for DefaultChatCloudServiceImpl {
|
|||||||
Err(FlowyError::not_support().with_context("complete text is not supported in local server."))
|
Err(FlowyError::not_support().with_context("complete text is not supported in local server."))
|
||||||
}
|
}
|
||||||
|
|
||||||
async fn index_file(
|
async fn embed_file(
|
||||||
&self,
|
&self,
|
||||||
_workspace_id: &str,
|
_workspace_id: &str,
|
||||||
_file_path: &Path,
|
_file_path: &Path,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user