mirror of
https://github.com/hwchase17/langchain.git
synced 2025-06-19 13:23:35 +00:00
community[patch]: use semantic_configurations in AzureSearch (#19347)
- **Description:** Currently the semantic_configurations are not used when creating an AzureSearch instance, instead creating a new one with default values. This PR changes the behavior to use the passed semantic_configurations if it is present, and the existing default configuration if not. --------- Co-authored-by: Adam Law <adamlaw@microsoft.com> Co-authored-by: Bagatur <baskaryan@gmail.com>
This commit is contained in:
parent
a7274f006e
commit
aeb7b6b11d
@ -69,7 +69,9 @@ def _get_search_client(
|
|||||||
semantic_configuration_name: Optional[str] = None,
|
semantic_configuration_name: Optional[str] = None,
|
||||||
fields: Optional[List[SearchField]] = None,
|
fields: Optional[List[SearchField]] = None,
|
||||||
vector_search: Optional[VectorSearch] = None,
|
vector_search: Optional[VectorSearch] = None,
|
||||||
semantic_configurations: Optional[SemanticConfiguration] = None,
|
semantic_configurations: Optional[
|
||||||
|
Union[SemanticConfiguration, List[SemanticConfiguration]]
|
||||||
|
] = None,
|
||||||
scoring_profiles: Optional[List[ScoringProfile]] = None,
|
scoring_profiles: Optional[List[ScoringProfile]] = None,
|
||||||
default_scoring_profile: Optional[str] = None,
|
default_scoring_profile: Optional[str] = None,
|
||||||
default_fields: Optional[List[SearchField]] = None,
|
default_fields: Optional[List[SearchField]] = None,
|
||||||
@ -175,8 +177,15 @@ def _get_search_client(
|
|||||||
)
|
)
|
||||||
|
|
||||||
# Create the semantic settings with the configuration
|
# Create the semantic settings with the configuration
|
||||||
semantic_search = None
|
if semantic_configurations:
|
||||||
if semantic_configurations is None and semantic_configuration_name is not None:
|
if not isinstance(semantic_configurations, list):
|
||||||
|
semantic_configurations = [semantic_configurations]
|
||||||
|
semantic_search = SemanticSearch(
|
||||||
|
configurations=semantic_configurations,
|
||||||
|
default_configuration_name=semantic_configuration_name,
|
||||||
|
)
|
||||||
|
elif semantic_configuration_name:
|
||||||
|
# use default semantic configuration
|
||||||
semantic_configuration = SemanticConfiguration(
|
semantic_configuration = SemanticConfiguration(
|
||||||
name=semantic_configuration_name,
|
name=semantic_configuration_name,
|
||||||
prioritized_fields=SemanticPrioritizedFields(
|
prioritized_fields=SemanticPrioritizedFields(
|
||||||
@ -184,6 +193,9 @@ def _get_search_client(
|
|||||||
),
|
),
|
||||||
)
|
)
|
||||||
semantic_search = SemanticSearch(configurations=[semantic_configuration])
|
semantic_search = SemanticSearch(configurations=[semantic_configuration])
|
||||||
|
else:
|
||||||
|
# don't use semantic search
|
||||||
|
semantic_search = None
|
||||||
|
|
||||||
# Create the search index with the semantic settings and vector search
|
# Create the search index with the semantic settings and vector search
|
||||||
index = SearchIndex(
|
index = SearchIndex(
|
||||||
@ -218,7 +230,9 @@ class AzureSearch(VectorStore):
|
|||||||
semantic_configuration_name: Optional[str] = None,
|
semantic_configuration_name: Optional[str] = None,
|
||||||
fields: Optional[List[SearchField]] = None,
|
fields: Optional[List[SearchField]] = None,
|
||||||
vector_search: Optional[VectorSearch] = None,
|
vector_search: Optional[VectorSearch] = None,
|
||||||
semantic_configurations: Optional[SemanticConfiguration] = None,
|
semantic_configurations: Optional[
|
||||||
|
Union[SemanticConfiguration, List[SemanticConfiguration]]
|
||||||
|
] = None,
|
||||||
scoring_profiles: Optional[List[ScoringProfile]] = None,
|
scoring_profiles: Optional[List[ScoringProfile]] = None,
|
||||||
default_scoring_profile: Optional[str] = None,
|
default_scoring_profile: Optional[str] = None,
|
||||||
cors_options: Optional[CorsOptions] = None,
|
cors_options: Optional[CorsOptions] = None,
|
||||||
|
Loading…
Reference in New Issue
Block a user