mirror of
https://github.com/khoaliber/khoj.git
synced 2026-03-07 21:29:13 +00:00
Add comments explaining each field in the search model config in DB
This commit is contained in:
@@ -10,6 +10,8 @@ For example, the [paraphrase-multilingual-MiniLM-L12-v2](https://huggingface.co/
|
|||||||
1. Manually update the search config in server's admin settings page. Go to [the search config](http://localhost:42110/server/admin/database/searchmodelconfig/). Either create a new one, if none exists, or update the existing one. Set the bi_encoder to `sentence-transformers/multi-qa-MiniLM-L6-cos-v1` and the cross_encoder to `mixedbread-ai/mxbai-rerank-xsmall-v1`.
|
1. Manually update the search config in server's admin settings page. Go to [the search config](http://localhost:42110/server/admin/database/searchmodelconfig/). Either create a new one, if none exists, or update the existing one. Set the bi_encoder to `sentence-transformers/multi-qa-MiniLM-L6-cos-v1` and the cross_encoder to `mixedbread-ai/mxbai-rerank-xsmall-v1`.
|
||||||
2. Regenerate your content index from all the relevant clients. This step is very important, as you'll need to re-encode all your content with the new model.
|
2. Regenerate your content index from all the relevant clients. This step is very important, as you'll need to re-encode all your content with the new model.
|
||||||
|
|
||||||
|
Note: If you use a search model that expects a prefix (e.g [mixedbread-ai/mxbai-embed-large-v1](https://huggingface.co/mixedbread-ai/mxbai-embed-large-v1)) to the query (or docs) string before encoding. Update the `bi_encoder_query_encode_config` field with `{prompt: <prefix-prompt>}`. Eg. `{prompt: "Represent this query for searching documents"}`. You can pass a valid JSON object that the SentenceTransformer `encode` function accepts
|
||||||
|
|
||||||
## Query Filters
|
## Query Filters
|
||||||
|
|
||||||
Use structured query syntax to filter entries from your knowledge based used by search results or chat responses.
|
Use structured query syntax to filter entries from your knowledge based used by search results or chat responses.
|
||||||
|
|||||||
@@ -179,16 +179,27 @@ class SearchModelConfig(BaseModel):
|
|||||||
class ModelType(models.TextChoices):
|
class ModelType(models.TextChoices):
|
||||||
TEXT = "text"
|
TEXT = "text"
|
||||||
|
|
||||||
|
# This is the model name exposed to users on their settings page
|
||||||
name = models.CharField(max_length=200, default="default")
|
name = models.CharField(max_length=200, default="default")
|
||||||
|
# Type of content the model can generate embeddings for
|
||||||
model_type = models.CharField(max_length=200, choices=ModelType.choices, default=ModelType.TEXT)
|
model_type = models.CharField(max_length=200, choices=ModelType.choices, default=ModelType.TEXT)
|
||||||
|
# Bi-encoder model of sentence-transformer type to load from HuggingFace
|
||||||
bi_encoder = models.CharField(max_length=200, default="thenlper/gte-small")
|
bi_encoder = models.CharField(max_length=200, default="thenlper/gte-small")
|
||||||
|
# Config passed to the sentence-transformer model constructor. E.g device="cuda:0", trust_remote_server=True etc.
|
||||||
bi_encoder_model_config = models.JSONField(default=dict)
|
bi_encoder_model_config = models.JSONField(default=dict)
|
||||||
|
# Query encode configs like prompt, precision, normalize_embeddings, etc. for sentence-transformer models
|
||||||
bi_encoder_query_encode_config = models.JSONField(default=dict)
|
bi_encoder_query_encode_config = models.JSONField(default=dict)
|
||||||
|
# Docs encode configs like prompt, precision, normalize_embeddings, etc. for sentence-transformer models
|
||||||
bi_encoder_docs_encode_config = models.JSONField(default=dict)
|
bi_encoder_docs_encode_config = models.JSONField(default=dict)
|
||||||
|
# Cross-encoder model of sentence-transformer type to load from HuggingFace
|
||||||
cross_encoder = models.CharField(max_length=200, default="mixedbread-ai/mxbai-rerank-xsmall-v1")
|
cross_encoder = models.CharField(max_length=200, default="mixedbread-ai/mxbai-rerank-xsmall-v1")
|
||||||
|
# Inference server API endpoint to use for embeddings inference. Bi-encoder model should be hosted on this server
|
||||||
embeddings_inference_endpoint = models.CharField(max_length=200, default=None, null=True, blank=True)
|
embeddings_inference_endpoint = models.CharField(max_length=200, default=None, null=True, blank=True)
|
||||||
|
# Inference server API Key to use for embeddings inference. Bi-encoder model should be hosted on this server
|
||||||
embeddings_inference_endpoint_api_key = models.CharField(max_length=200, default=None, null=True, blank=True)
|
embeddings_inference_endpoint_api_key = models.CharField(max_length=200, default=None, null=True, blank=True)
|
||||||
|
# Inference server API endpoint to use for embeddings inference. Cross-encoder model should be hosted on this server
|
||||||
cross_encoder_inference_endpoint = models.CharField(max_length=200, default=None, null=True, blank=True)
|
cross_encoder_inference_endpoint = models.CharField(max_length=200, default=None, null=True, blank=True)
|
||||||
|
# Inference server API Key to use for embeddings inference. Cross-encoder model should be hosted on this server
|
||||||
cross_encoder_inference_endpoint_api_key = models.CharField(max_length=200, default=None, null=True, blank=True)
|
cross_encoder_inference_endpoint_api_key = models.CharField(max_length=200, default=None, null=True, blank=True)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user