mirror of
https://github.com/basicmachines-co/basic-memory
synced 2026-06-21 13:47:35 +00:00
5b4f0eafcc
* configure logging * set mcp output logging also * fix type check errors * fix type check * rename Permalink schema type * fix type errors * add typechecks to ci workflow * pytest coverage setup * add tests for status cli * sync tests coverage * watch_service test coverage * tests for tool_utils.py * clean up imports * file_utils coverage * markdown plugins coverage * 99% test coverage * more test coverage, remove ObservationCategory * more tool coverage * fix type-check * format, upgrade deps --------- Co-authored-by: phernandez <phernandez@basicmachines.co>
29 lines
1.1 KiB
Python
29 lines
1.1 KiB
Python
"""Router for search operations."""
|
|
|
|
from dataclasses import asdict
|
|
|
|
from fastapi import APIRouter, Depends, BackgroundTasks
|
|
|
|
from basic_memory.services.search_service import SearchService
|
|
from basic_memory.schemas.search import SearchQuery, SearchResult, SearchResponse
|
|
from basic_memory.deps import get_search_service
|
|
|
|
router = APIRouter(prefix="/search", tags=["search"])
|
|
|
|
|
|
@router.post("/", response_model=SearchResponse)
|
|
async def search(query: SearchQuery, search_service: SearchService = Depends(get_search_service)):
|
|
"""Search across all knowledge and documents."""
|
|
results = await search_service.search(query)
|
|
search_results = [SearchResult.model_validate(asdict(r)) for r in results]
|
|
return SearchResponse(results=search_results)
|
|
|
|
|
|
@router.post("/reindex")
|
|
async def reindex(
|
|
background_tasks: BackgroundTasks, search_service: SearchService = Depends(get_search_service)
|
|
):
|
|
"""Recreate and populate the search index."""
|
|
await search_service.reindex_all(background_tasks=background_tasks)
|
|
return {"status": "ok", "message": "Reindex initiated"}
|