Improve retrieval of deep workspace evidence
This commit is contained in:
@@ -599,7 +599,12 @@ def list_agent_skills() -> dict[str, Any]:
|
||||
async def _search_local_knowledge(
|
||||
query: str, *, user_id: str, workspace_path: Any
|
||||
) -> tuple[list[dict[str, Any]], str]:
|
||||
lexical = knowledge.search(query, user_id=user_id, workspace_path=workspace_path)
|
||||
lexical = knowledge.search(
|
||||
query,
|
||||
user_id=user_id,
|
||||
workspace_path=workspace_path,
|
||||
limit=knowledge.MAX_SEARCH_RESULTS,
|
||||
)
|
||||
model_name = embeddings.embedding_model_name()
|
||||
if not model_name or not knowledge.has_embeddings(
|
||||
user_id=user_id, workspace_path=workspace_path, model=model_name
|
||||
@@ -612,13 +617,16 @@ async def _search_local_knowledge(
|
||||
user_id=user_id,
|
||||
workspace_path=workspace_path,
|
||||
model=model_name,
|
||||
limit=knowledge.MAX_SEARCH_RESULTS,
|
||||
)
|
||||
except (embeddings.EmbeddingUnavailable, ValueError, IndexError) as exc:
|
||||
logger.warning("Local semantic knowledge search unavailable: %s", exc)
|
||||
return lexical, "keyword"
|
||||
if not semantic:
|
||||
return lexical, "keyword"
|
||||
return knowledge.merge_search_results(lexical, semantic), "hybrid"
|
||||
return knowledge.merge_search_results(
|
||||
lexical, semantic, limit=knowledge.MAX_SEARCH_RESULTS
|
||||
), "hybrid"
|
||||
|
||||
|
||||
@app.post("/v1/agent/knowledge/index")
|
||||
|
||||
Reference in New Issue
Block a user