Make FAQ question field customizable (#146)

This commit is contained in:
Tanay Soni 2020-06-11 12:36:19 +02:00 committed by GitHub
parent f3492a3f12
commit 4c2726f7ab
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 6 additions and 1 deletions

View File

@ -20,6 +20,7 @@ DB_INDEX_FEEDBACK = os.getenv("DB_INDEX_FEEDBACK", "feedback")
ES_CONN_SCHEME = os.getenv("ES_CONN_SCHEME", "http")
TEXT_FIELD_NAME = os.getenv("TEXT_FIELD_NAME", "text")
SEARCH_FIELD_NAME = os.getenv("SEARCH_FIELD_NAME", "text")
FAQ_QUESTION_FIELD_NAME = os.getenv("FAQ_QUESTION_FIELD_NAME", "question")
EMBEDDING_FIELD_NAME = os.getenv("EMBEDDING_FIELD_NAME", None)
EMBEDDING_DIM = os.getenv("EMBEDDING_DIM", None)

View File

@ -11,7 +11,7 @@ from haystack import Finder
from haystack.api.config import DB_HOST, DB_PORT, DB_USER, DB_PW, DB_INDEX, ES_CONN_SCHEME, TEXT_FIELD_NAME, SEARCH_FIELD_NAME, \
EMBEDDING_DIM, EMBEDDING_FIELD_NAME, EXCLUDE_META_DATA_FIELDS, EMBEDDING_MODEL_PATH, USE_GPU, READER_MODEL_PATH, \
BATCHSIZE, CONTEXT_WINDOW_SIZE, TOP_K_PER_CANDIDATE, NO_ANS_BOOST, MAX_PROCESSES, MAX_SEQ_LEN, DOC_STRIDE, \
DEFAULT_TOP_K_READER, DEFAULT_TOP_K_RETRIEVER, CONCURRENT_REQUEST_PER_WORKER
DEFAULT_TOP_K_READER, DEFAULT_TOP_K_RETRIEVER, CONCURRENT_REQUEST_PER_WORKER, FAQ_QUESTION_FIELD_NAME
from haystack.api.controller.utils import RequestLimiter
from haystack.database.elasticsearch import ElasticsearchDocumentStore
from haystack.reader.farm import FARMReader
@ -36,6 +36,7 @@ document_store = ElasticsearchDocumentStore(
embedding_dim=EMBEDDING_DIM,
embedding_field=EMBEDDING_FIELD_NAME,
excluded_meta_data=EXCLUDE_META_DATA_FIELDS, # type: ignore
faq_question_field=FAQ_QUESTION_FIELD_NAME,
)

View File

@ -26,6 +26,7 @@ class ElasticsearchDocumentStore(BaseDocumentStore):
embedding_dim: Optional[str] = None,
custom_mapping: Optional[dict] = None,
excluded_meta_data: Optional[list] = None,
faq_question_field: Optional[str] = None,
scheme: str = "http",
ca_certs: bool = False,
verify_certs: bool = True,
@ -92,6 +93,7 @@ class ElasticsearchDocumentStore(BaseDocumentStore):
self.external_source_id_field = external_source_id_field
self.embedding_field = embedding_field
self.excluded_meta_data = excluded_meta_data
self.faq_question_field = faq_question_field
def get_document_by_id(self, id: str) -> Optional[Document]:
query = {"query": {"ids": {"values": [id]}}}
@ -227,6 +229,7 @@ class ElasticsearchDocumentStore(BaseDocumentStore):
external_source_id=hit["_source"].get(self.external_source_id_field),
meta=meta_data,
query_score=hit["_score"] + score_adjustment if hit["_score"] else None,
question=hit["_source"].get(self.faq_question_field)
)
return document