Skip to main content

cookbook-aiml

Invoke ML models, run vector search, and connect to MCP servers from Databricks Apps. Use when the user wants to call a model serving endpoint, query a vector search index, use LLMs/embeddings, or connect to an MCP server in Dash, Streamlit, Reflex, or FastAPI.

소스 정보

저장소
databricks-solutions/databricks-apps-cookbook
최근 소스 활동
2026년 4월 28일 11:17
감지된 SKILL.md 언어
영어
스타
187
포크
124

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
cookbook-aiml
description
Invoke ML models, run vector search, and connect to MCP servers from Databricks Apps. Use when the user wants to call a model serving endpoint, query a vector search index, use LLMs/embeddings, or connect to an MCP server in Dash, Streamlit, Reflex, or FastAPI.
# AI/ML Integration Invoke models on [Model Serving](https://docs.databricks.com/aws/en/machine-learning/model-serving/), query [Vector Search](https://docs.databricks.com/aws/en/generative-ai/vector-search) indexes, and connect to [MCP servers](https://modelcontextprotocol.io/overview) from your Databricks App. ## Recipes ### Invoke a model serving endpoint The SDK call is framework-agnostic. Wrap it in your framework's UI pattern. #### Traditional ML (DataFrame input) ```python from databricks.sdk import WorkspaceClient w = WorkspaceClient() response = w.serving_endpoints.query( name="custom-regression-model", dataframe_split={ "columns": ["feature1", "feature2"], "data": [[1.5, 2.5]] } ) ``` #### LLM chat (messages) ```python from databricks.sdk import WorkspaceClient from databricks.sdk.service.serving import ChatMessage, ChatMessageRole w = WorkspaceClient() response = w.serving_endpoints.query( name="chat-assistant-model", messages=[ ChatMessage(role=ChatMessageRole.SYSTEM, content="You are a helpful assistant."), ChatMessage(role=ChatMessageRole.USER, content="Provide tips for Databricks Apps."), ], ) ``` #### LLM completion (prompt) ```python from databricks.sdk import WorkspaceClient w = WorkspaceClient() response = w.serving_endpoints.query( name="llm-completions-model", prompt="Generate a recipe for scalable Databricks Apps.", temperature=0.5, ) ``` #### Embeddings ```python from databricks.sdk import WorkspaceClient w = WorkspaceClient() response = w.serving_endpoints.query( name="embedding-model", input="Databricks provides a unified analytics platform.", ) ``` ### Vector search Generate embeddings and query a vector search index: ```python from databricks.sdk import WorkspaceClient w = WorkspaceClient() openai_client = w.serving_endpoints.get_open_ai_client() def get_embeddings(text): response = openai_client.embeddings.create( model="databricks-gte-large-en", input=text ) return response.data[0].embedding def run_vector_search(prompt: str, index_name: str, columns: list[str]): vector = get_embeddings(prompt) result = w.vector_search_indexes.query_index( index_name=index_name, columns=columns, query_vector=vector, num_results=3, ) return result.result.data_array ``` ### Connect to an MCP server Use Unity Catalog [HTTP connections](https://docs.databricks.com/aws/en/query-federation/http) to connect to MCP servers. #### On-behalf-of-user **Streamlit:** ```python import streamlit as st from databricks.sdk import WorkspaceClient from databricks.sdk.service.serving import ExternalFunctionRequestHttpMethod token = st.context.headers.get("X-Forwarded-Access-Token") w = WorkspaceClient(token=token, auth_type="pat") def init_mcp_session(connection_name): response = w.serving_endpoints.http_request( conn=connection_name, method=ExternalFunctionRequestHttpMethod.POST, path="/", json={"jsonrpc": "2.0", "id": "init-1", "method": "initialize", "params": {}}, ) return response.headers.get("mcp-session-id") session_id = init_mcp_session("github_mcp_connection") response = w.serving_endpoints.http_request( conn="github_mcp_connection", method=ExternalFunctionRequestHttpMethod.POST, path="/", headers={"Mcp-Session-Id": session_id}, json={"jsonrpc": "2.0", "id": "list-1", "method": "tools/list"}, ) st.json(response.json()) ``` **Reflex:** ```python import reflex as rx from databricks.sdk import WorkspaceClient from databricks.sdk.service.serving import ExternalFunctionRequestHttpMethod class McpState(rx.State): response_data: str = "" @rx.event(background=True) async def send_request(self): headers = self.router.headers token = getattr(headers, "x_forwarded_access_token", "") w = WorkspaceClient(token=token, auth_type="pat") init_resp = w.serving_endpoints.http_request( conn="github_mcp_connection", method=ExternalFunctionRequestHttpMethod.POST, path="/", json={"jsonrpc": "2.0", "id": "init-1", "method": "initialize", "params": {}}, ) session_id = init_resp.headers.get("mcp-session-id") response = w.serving_endpoints.http_request( conn="github_mcp_connection", method=ExternalFunctionRequestHttpMethod.POST, path="/", headers={"Mcp-Session-Id": session_id}, json={"jsonrpc": "2.0", "id": "list-1", "method": "tools/list"}, ) async with self: self.response_data = str(response.json()) ``` #### Bearer token (service principal) ```python from databricks.sdk import WorkspaceClient from databricks.sdk.service.serving import ExternalFunctionRequestHttpMethod w = WorkspaceClient() response = w.serving_endpoints.http_request( conn="github_connection", method=ExternalFunctionRequestHttpMethod.GET, path="/", headers={"Accept": "application/vnd.github+json"}, json={"jsonrpc": "2.0", "id": "init-1", "method": "initialize", "params": {}}, ) ``` ## Resources | Recipe | Resources | |--------|-----------| | Model serving | [Model Serving endpoint](https://docs.databricks.com/aws/en/machine-learning/model-serving/manage-serving-endpoints) | | Vector search | [Vector Search endpoint + index](https://docs.databricks.com/aws/en/generative-ai/vector-search) | | MCP | [Unity Catalog HTTP Connection](https://docs.databricks.com/aws/en/query-federation/http) with MCP base path | ## Permissions | Recipe | Permissions | |--------|-----------| | Model serving | `CAN QUERY` on the serving endpoint | | Vector search | `USE CATALOG`, `USE SCHEMA`, `SELECT` on the VS index | | MCP connections | `USE CONNECTION` on the HTTP Connection | | MCP (OBO) | Additionally configure [User authorization](https://docs.databricks.com/aws/en/dev-tools/databricks-apps/auth#user-authorization) scopes | ## Dependencies ``` databricks-sdk ``` For MCP, also add `mcp[cli]`. Plus your framework package. ## Common Pitfalls - Model serving endpoints must be in `READY` state before querying - Vector search requires generating embeddings first (use `get_open_ai_client()`) - MCP connections require a session initialization step; store the `mcp-session-id` for subsequent requests - OBO tokens are only available when deployed, not during local development
GitHub에서 보기