Aller au contenu principal

Recherche IA

info

Aperçu

Cette fonctionnalité est en Aperçu public.

Le serveur MCP AI Search est un serveur MCP géré par Databricks qui permet aux agents d'exécuter une recherche sémantique sur vos index AI Search pour trouver des documents pertinents, avec des résultats régis par les autorisations Unity Catalog. L'interrogation d'un index nécessite des intégrations gérées par Databricks.

Modèle d'URL

Champ d’application d’OAuth

https://<workspace-hostname>/api/2.0/mcp/ai-search/{catalog}/{schema}/{index_name}

ai-search

Modèle d'URL

Champ d’application d’OAuth

https://<workspace-hostname>/api/2.0/mcp/ai-search/{catalog}/{schema}/{index_name}

ai-search

remarque

AI Search s’appelait auparavant Vector Search. Le préfixe d’URL /api/2.0/mcp/vector-search/ et l’étendue vector-search précédents fonctionnent toujours.

Paramètres de recherche IA _meta

La recherche IA prend en charge les paramètres _meta suivants :

Nom du parameter

Type

Description

columns

str

Liste de noms de colonnes séparés par des virgules à renvoyer dans les résultats de recherche.

Exemple : "id,text,metadata"

Si rien n'est spécifié, toutes les colonnes (à l'exception des colonnes internes commençant par « __ ») sont renvoyées.

columns_to_rerank

str

Liste de noms de colonnes séparés par des virgules dont le contenu est utilisé par le modèle de réorganisation pour le re-scoring. Le réorganisateur utilise ce contenu pour re-scorer tous les résultats de recherche afin d'améliorer la pertinence.

Exemple : "text,title,description"

Si rien n'est spécifié, aucun reclassement n'est effectué.

filters

str

Chaîne JSON contenant les filtres à appliquer à la recherche. Doit être un JSON valide.

Exemple : '{"updated_after": "2024-01-01"}'

Si rien n’est spécifié, aucun filtre n’est appliqué.

include_score

bool

Indique s'il faut inclure le score de similarité dans les résultats renvoyés.

Valeurs prises en charge : "true" ou "false"

default: "false"

num_results

int

Nombre de résultats à renvoyer.

Exemple : "5"

query_type

str

Algorithme de recherche à utiliser pour récupérer les résultats.

Valeurs prises en charge : "ANN" (recherche approximative des plus proches voisins, default) ou "HYBRID" (combine la recherche vectorielle et par mot-clé)

default: "ANN"

score_threshold

float

threshold de score de similarité minimal pour le filtrage des résultats. Les résultats dont le score est inférieur à ce threshold sont exclus.

Exemple : "0.7"

Si rien n'est spécifié, aucun filtrage de score n'est appliqué.

Nom du parameter

Type

Description

columns

str

Liste de noms de colonnes séparés par des virgules à renvoyer dans les résultats de recherche.

Exemple : "id,text,metadata"

Si rien n'est spécifié, toutes les colonnes (à l'exception des colonnes internes commençant par « __ ») sont renvoyées.

columns_to_rerank

str

Liste de noms de colonnes séparés par des virgules dont le contenu est utilisé par le modèle de réorganisation pour le re-scoring. Le réorganisateur utilise ce contenu pour re-scorer tous les résultats de recherche afin d'améliorer la pertinence.

Exemple : "text,title,description"

Si rien n'est spécifié, aucun reclassement n'est effectué.

filters

str

Chaîne JSON contenant les filtres à appliquer à la recherche. Doit être un JSON valide.

Exemple : '{"updated_after": "2024-01-01"}'

Si rien n’est spécifié, aucun filtre n’est appliqué.

include_score

bool

Indique s'il faut inclure le score de similarité dans les résultats renvoyés.

Valeurs prises en charge : "true" ou "false"

default: "false"

num_results

int

Nombre de résultats à renvoyer.

Exemple : "5"

query_type

str

Algorithme de recherche à utiliser pour récupérer les résultats.

Valeurs prises en charge : "ANN" (recherche approximative des plus proches voisins, default) ou "HYBRID" (combine la recherche vectorielle et par mot-clé)

default: "ANN"

score_threshold

float

threshold de score de similarité minimal pour le filtrage des résultats. Les résultats dont le score est inférieur à ce threshold sont exclus.

Exemple : "0.7"

Si rien n'est spécifié, aucun filtrage de score n'est appliqué.

Pour des informations détaillées sur ces paramètres, consultez la documentation du SDK Python AI Search.

Exemple : configurer le nombre maximal de résultats et les filtres pour la récupération de recherche IA

Cet exemple montre comment utiliser _meta paramètres pour configurer le comportement de la recherche IA tout en permettant des requêtes dynamiques de votre agent à l'aide du SDK MCP Python officiel.

Dans ce scénario, vous souhaitez :

  • Limitez toujours les résultats de recherche à exactement 3 éléments pour des temps de réponse cohérents
  • Rechercher uniquement dans la documentation récente (mise à jour après le 01.01.2024) pour vérifier la pertinence
  • Utilisez la recherche hybride pour une meilleure précision qu'avec une recherche vectorielle pure
  • Ne renvoyer que des colonnes spécifiques (id, text et metadata)
  • Inclure les scores de similarité dans les résultats
  • Exclure les résultats dont le score de similarité est inférieur à 0,5
  • Utilisez le reclassement sur les colonnes de texte et de titre pour améliorer la pertinence

Pour exécuter cet exemple, configurez votre environnement Python pour le développement MCP géré:

Python
# Import required libraries for MCP client and Databricks authentication
import asyncio
from databricks.sdk import WorkspaceClient
from databricks_mcp.oauth_provider import DatabricksOAuthClientProvider
from mcp.client.streamable_http import streamablehttp_client
from mcp.client.session import ClientSession
from mcp.types import CallToolRequest, CallToolResult

async def run_vector_search_tool_call_with_meta():
# Initialize Databricks workspace client for authentication
workspace_client = WorkspaceClient()

# Construct the MCP server URL for your specific catalog and schema
# Replace <workspace-hostname>, YOUR_CATALOG, and YOUR_SCHEMA with your values
mcp_server_url = "https://<workspace-hostname>/api/2.0/mcp/ai-search/YOUR_CATALOG/YOUR_SCHEMA"

# Establish connection to the MCP server with OAuth authentication
async with streamablehttp_client(
url=mcp_server_url,
auth=DatabricksOAuthClientProvider(workspace_client),
) as (read_stream, write_stream, _):

# Create an MCP session for making tool calls
async with ClientSession(read_stream, write_stream) as session:
# Initialize the session before making requests
await session.initialize()

# Create the tool call request with both dynamic and preset parameters
request = CallToolRequest(
method="tools/call",
params={
# Tool name follows the pattern: CATALOG__SCHEMA__INDEX_NAME
&quot;name&quot;: &quot;YOUR_CATALOG__YOUR_SCHEMA__YOUR_INDEX_NAME&quot;,

# Dynamic arguments - typically provided by your AI agent or user input
&quot;arguments&quot;: {
&quot;query&quot;: &quot;How do I reset my password?&quot; # This comes from your agent
},

# Meta parameters - preset configuration to control search behavior
&quot;_meta&quot;: {
&quot;num_results&quot;: &quot;3&quot;, # Limit to 3 results for consistent performance
&quot;filters&quot;: '{&quot;updated_after&quot;: &quot;2024-01-01&quot;}', # JSON string for date filtering
&quot;query_type&quot;: &quot;HYBRID&quot;, # Use hybrid search for better relevance
&quot;columns&quot;: &quot;id,text,metadata&quot;, # Return only specific columns
&quot;score_threshold&quot;: &quot;0.5&quot;, # Filter out results with similarity score &lt; 0.5
&quot;include_score&quot;: &quot;true&quot;, # Include similarity scores in results
&quot;columns_to_rerank&quot;: &quot;text,title&quot; # Use reranker on these columns for better quality
}
}
)

# Send the request and get the response
response = await session.send_request(request, CallToolResult)
return response

# Execute the async function and get results
response = asyncio.run(run_vector_search_tool_call_with_meta())