Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ważne
Ta funkcja jest dostępna w wersji beta. Administratorzy obszaru roboczego mogą kontrolować dostęp do tej funkcji ze strony Podglądy . Zobacz Zarządzanie wersjami zapoznawczami usługi Azure Databricks.
Podczas tworzenia agentów sztucznej inteligencji korzystających z zarządzanych przez Databricks serwerów MCP do wyszukiwania wektorowego, użyj parametru _meta do deterministycznego sterowania zachowaniem narzędzia, na przykład maksymalną liczbą wyników do zwrotu oraz zastosowaniem filtrów wyszukiwania.
Kluczową korzyścią jest to, że można wstępnie ustawić zachowania wyszukiwania (takie jak limity wyników i filtry), zachowując jednocześnie elastyczność rzeczywistego zapytania wyszukiwania dla agenta w celu dynamicznego generowania.
Parametr _meta jest częścią oficjalnej specyfikacji MCP.
Argumenty wywołania narzędzia a _meta parametry
Serwer MCP wyszukiwania wektorowego obsługuje parametry na dwa sposoby:
- Argumenty wywołania narzędzia: parametry, które są zwykle dynamicznie generowane przez moduł LLM na podstawie danych wejściowych użytkownika
-
_metaparameters: Parametry konfiguracji, które można wstępnie ustawić w kodzie agenta w celu deterministycznego kontrolowania zachowania wyszukiwania
Obsługiwane _meta parametry
_meta Następujące parametry są obsługiwane w przypadku wyszukiwania wektorowego:
| Nazwa parametru | Typ | Description |
|---|---|---|
num_results |
int |
Liczba wyników do zwrócenia. Ustawienie domyślne: 5 |
filters |
str |
Ciąg JSON zawierający filtry, które mają być stosowane do wyszukiwania. Musi być prawidłowym formatem ciągu JSON. Przykład: '{"updated_after": "2024-01-01"}' |
query_type |
str |
Algorytm wyszukiwania używany do pobierania wyników. Obsługiwane wartości: "ANN" (przybliżony najbliższy sąsiad, wartość domyślna) lub "HYBRID" (łączy wyszukiwanie wektorów i słów kluczowych)Domyślnie: "ANN" |
Aby uzyskać szczegółowe informacje na temat tych parametrów, zobacz dokumentację interfejsu API wyszukiwania wektorów.
Przykład: Konfigurowanie maksymalnych wyników i filtrów na potrzeby pobierania wyszukiwania wektorowego
W tym przykładzie pokazano, jak używać _meta parametrów do kontrolowania zachowania wyszukiwania wektorowego podczas zezwalania na dynamiczne zapytania z agenta sztucznej inteligencji. Używa on oficjalnego zestawu SDK MCP języka Python.
W tym scenariuszu chcesz:
- Zawsze ogranicz wyniki wyszukiwania do dokładnie 3 elementów dla spójnych czasów odpowiedzi
- Przeszukaj tylko najnowszą dokumentację (zaktualizowaną po 2024-01-01), aby zapewnić istotność
- Używanie wyszukiwania hybrydowego w celu uzyskania lepszej dokładności niż wyszukiwanie wektorów czystych
Aby uruchomić ten przykład, skonfiguruj środowisko języka Python na potrzeby tworzenia zarządzanych aplikacji MCP:
# 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/vector-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
"name": "YOUR_CATALOG__YOUR_SCHEMA__YOUR_INDEX_NAME",
# Dynamic arguments - typically provided by your AI agent or user input
"arguments": {
"query": "How do I reset my password?" # This comes from your agent
},
# Meta parameters - preset configuration to control search behavior
"_meta": {
"num_results": 3, # Limit to 3 results for consistent performance
"filters": '{"updated_after": "2024-01-01"}', # JSON string for date filtering
"query_type": "HYBRID" # Use hybrid search for better relevance
}
}
)
# 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())