Index configured plugins on app start and via update API endpoint

This commit is contained in:
Debanjum Singh Solanky 2023-02-24 00:27:29 -06:00
parent 55a032e8c4
commit ab0d3a08e2
2 changed files with 15 additions and 1 deletions

View file

@ -8,6 +8,7 @@ import schedule
# Internal Packages
from khoj.processor.ledger.beancount_to_jsonl import BeancountToJsonl
from khoj.processor.jsonl.jsonl_to_jsonl import JsonlToJsonl
from khoj.processor.markdown.markdown_to_jsonl import MarkdownToJsonl
from khoj.processor.org_mode.org_to_jsonl import OrgToJsonl
from khoj.search_type import image_search, text_search
@ -105,6 +106,18 @@ def configure_search(model: SearchModels, config: FullConfig, regenerate: bool,
config.content_type.image, search_config=config.search_type.image, regenerate=regenerate
)
# Initialize External Plugin Search
if (t == None or t in state.SearchType) and config.content_type.plugins:
model.plugin_search = {}
for plugin_type, plugin_config in config.content_type.plugins.items():
model.plugin_search[plugin_type] = text_search.setup(
JsonlToJsonl,
plugin_config,
search_config=config.search_type.asymmetric,
regenerate=regenerate,
filters=[DateFilter(), WordFilter(), FileFilter()],
)
# Invalidate Query Cache
state.query_cache = LRU()

View file

@ -3,7 +3,7 @@ from __future__ import annotations # to avoid quoting type hints
from enum import Enum
from dataclasses import dataclass
from pathlib import Path
from typing import TYPE_CHECKING, List
from typing import TYPE_CHECKING, Dict, List
# External Packages
import torch
@ -62,6 +62,7 @@ class SearchModels:
music_search: TextSearchModel = None
markdown_search: TextSearchModel = None
image_search: ImageSearchModel = None
plugin_search: Dict[str, TextSearchModel] = None
class ConversationProcessorConfigModel: