30 lines
838 B
Python
30 lines
838 B
Python
from functools import lru_cache
|
|
|
|
import meilisearch
|
|
|
|
from app.config import settings
|
|
from app.document_service import DocumentService
|
|
from app.local_file_client import LocalFileClient
|
|
from app.search_client import SearchClient
|
|
|
|
|
|
@lru_cache
|
|
def _get_file_client() -> LocalFileClient:
|
|
return LocalFileClient(settings.storage_dir)
|
|
|
|
|
|
def _get_meilisearch_sdk() -> meilisearch.Client:
|
|
return meilisearch.Client(settings.meilisearch_host, settings.meilisearch_api_key)
|
|
|
|
|
|
@lru_cache
|
|
def get_document_service() -> DocumentService:
|
|
file_client = _get_file_client()
|
|
search_client = SearchClient(_get_meilisearch_sdk(), settings.meilisearch_index)
|
|
return DocumentService(file_client, search_client)
|
|
|
|
|
|
@lru_cache
|
|
def get_search_client() -> SearchClient:
|
|
return SearchClient(_get_meilisearch_sdk(), settings.meilisearch_index)
|