Skip to content

Commit dfc6584

Browse files
authored
Merge pull request #1109 from dcSpark/codex/fix-search_shinkai_tool-to-return-empty
Return empty search results for missing tools
2 parents 426037e + ec869fe commit dfc6584

File tree

1 file changed

+17
-2
lines changed

1 file changed

+17
-2
lines changed

shinkai-bin/shinkai-node/src/network/v2_api/api_v2_commands_tools.rs

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ use shinkai_message_primitives::{
4040
},
4141
};
4242
use shinkai_sqlite::{errors::SqliteManagerError, SqliteManager};
43+
use rusqlite::Error as RusqliteError;
4344
use shinkai_tools_primitives::tools::{
4445
deno_tools::DenoTool,
4546
error::ToolError,
@@ -164,7 +165,7 @@ impl Node {
164165
let vector_start_time = Instant::now();
165166

166167
// Use different search method based on whether we have allowed_tools
167-
let vector_search_result = if let Some(tools) = allowed_tools {
168+
let vector_search_res = if let Some(tools) = allowed_tools {
168169
// First generate the embedding from the query
169170
let embedding = db
170171
.generate_embeddings(&sanitized_query)
@@ -186,10 +187,24 @@ impl Node {
186187

187188
// Start the timer for FTS search
188189
let fts_start_time = Instant::now();
189-
let fts_search_result = db.search_tools_fts(&sanitized_query);
190+
let fts_search_res = db.search_tools_fts(&sanitized_query);
190191
let fts_elapsed_time = fts_start_time.elapsed();
191192
println!("Time taken for FTS search: {:?}", fts_elapsed_time);
192193

194+
let vector_search_result = match vector_search_res {
195+
Ok(v) => Ok(v),
196+
Err(SqliteManagerError::ToolNotFound(_))
197+
| Err(SqliteManagerError::DatabaseError(RusqliteError::QueryReturnedNoRows)) => Ok(Vec::new()),
198+
Err(e) => Err(e),
199+
};
200+
201+
let fts_search_result = match fts_search_res {
202+
Ok(v) => Ok(v),
203+
Err(SqliteManagerError::ToolNotFound(_))
204+
| Err(SqliteManagerError::DatabaseError(RusqliteError::QueryReturnedNoRows)) => Ok(Vec::new()),
205+
Err(e) => Err(e),
206+
};
207+
193208
match (vector_search_result, fts_search_result) {
194209
(Ok(vector_tools), Ok(fts_tools)) => {
195210
let mut combined_tools = Vec::new();

0 commit comments

Comments
 (0)