From 378c133479b15e24267d449dfb6b5dee5bd26597 Mon Sep 17 00:00:00 2001 From: Joshua Mo Date: Sun, 22 Jun 2025 16:32:02 +0100 Subject: [PATCH 1/2] fix(rig-791): documents not added consistently to user prompts --- .gitignore | 1 + Cargo.lock | 1 + rig-core/Cargo.toml | 1 + rig-core/src/providers/deepseek.rs | 11 +++++++++++ 4 files changed, 14 insertions(+) diff --git a/.gitignore b/.gitignore index 1628facd1..e24f22615 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ target/ .idea/ .vscode/ .devcontainer/ +.fastembed_cache/ # env .env diff --git a/Cargo.lock b/Cargo.lock index 1c8ac84ab..f0ea1757b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8732,6 +8732,7 @@ dependencies = [ "rayon", "reqwest 0.12.15", "rig-derive", + "rig-fastembed", "schemars", "serde", "serde_json", diff --git a/rig-core/Cargo.toml b/rig-core/Cargo.toml index 0522a54dd..00f4a78db 100644 --- a/rig-core/Cargo.toml +++ b/rig-core/Cargo.toml @@ -52,6 +52,7 @@ serde_path_to_error = "0.1.16" base64 = "0.22.1" mcp-core = { version = "0.1.50", features = ["sse"] } mcp-core-macros = { version = "0.1.30" } +rig-fastembed = { version = "0.2.0", path = "../rig-fastembed" } [features] diff --git a/rig-core/src/providers/deepseek.rs b/rig-core/src/providers/deepseek.rs index 099cfd4be..5e505b089 100644 --- a/rig-core/src/providers/deepseek.rs +++ b/rig-core/src/providers/deepseek.rs @@ -11,6 +11,7 @@ use crate::client::{CompletionClient, ProviderClient}; use crate::json_utils::merge; +use crate::message::{Document, UserContent}; use crate::providers::openai; use crate::providers::openai::send_compatible_streaming_request; use crate::streaming::StreamingCompletionResponse; @@ -236,6 +237,12 @@ impl TryFrom for Vec { content: text.text, name: None, }), + message::UserContent::Document(Document { data, .. }) => { + Some(Message::User { + content: data, + name: None, + }) + } _ => None, }) .collect::>(); @@ -391,9 +398,11 @@ impl DeepSeekCompletionModel { ) -> Result { // Build up the order of messages (context, chat_history, prompt) let mut partial_history = vec![]; + if let Some(docs) = completion_request.normalized_documents() { partial_history.push(docs); } + partial_history.extend(completion_request.chat_history); // Initialize full history with preamble (or empty if non-existent) @@ -452,6 +461,8 @@ impl CompletionModel for DeepSeekCompletionModel { > { let request = self.create_completion_request(completion_request)?; + tracing::debug!("DeepSeek completion request: {request:?}"); + let response = self .client .post("/chat/completions") From 94ceb056195804fe4f091de89d8ca8bfb26adc6a Mon Sep 17 00:00:00 2001 From: Joshua Mo Date: Sun, 22 Jun 2025 18:01:49 +0100 Subject: [PATCH 2/2] refactor: amendments --- Cargo.lock | 1 - rig-core/Cargo.toml | 1 - rig-core/src/providers/deepseek.rs | 2 +- 3 files changed, 1 insertion(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f0ea1757b..1c8ac84ab 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8732,7 +8732,6 @@ dependencies = [ "rayon", "reqwest 0.12.15", "rig-derive", - "rig-fastembed", "schemars", "serde", "serde_json", diff --git a/rig-core/Cargo.toml b/rig-core/Cargo.toml index 00f4a78db..0522a54dd 100644 --- a/rig-core/Cargo.toml +++ b/rig-core/Cargo.toml @@ -52,7 +52,6 @@ serde_path_to_error = "0.1.16" base64 = "0.22.1" mcp-core = { version = "0.1.50", features = ["sse"] } mcp-core-macros = { version = "0.1.30" } -rig-fastembed = { version = "0.2.0", path = "../rig-fastembed" } [features] diff --git a/rig-core/src/providers/deepseek.rs b/rig-core/src/providers/deepseek.rs index 5e505b089..036fbf75a 100644 --- a/rig-core/src/providers/deepseek.rs +++ b/rig-core/src/providers/deepseek.rs @@ -11,7 +11,7 @@ use crate::client::{CompletionClient, ProviderClient}; use crate::json_utils::merge; -use crate::message::{Document, UserContent}; +use crate::message::Document; use crate::providers::openai; use crate::providers::openai::send_compatible_streaming_request; use crate::streaming::StreamingCompletionResponse;