Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Verwenden Sie Databricks Unity Catalog, um SQL- und Python-Funktionen als Tools in Anthropic SDK LLM-Aufrufen zu integrieren. Diese Integration kombiniert die Governance von Unity Catalog mit anthropischen Modellen, um leistungsstarke KI-Apps für die Generation zu erstellen.
Anforderungen
- Verwenden Sie Databricks Runtime 15.0 und höher.
Integrieren von Unity Catalog-Tools in Anthropic
Führen Sie den folgenden Code in einem Notebook oder Python-Skript aus, um ein Unity Catalog-Tool zu erstellen und es beim Aufrufen eines Anthropic-Modells zu verwenden.
Installieren Sie das Databricks Unity Catalog-Integrationspaket für Anthropic.
%pip install unitycatalog-anthropic[databricks] dbutils.library.restartPython()Erstellen Sie eine Instanz des Unity Catalog-Funktionsclients.
from unitycatalog.ai.core.base import get_uc_function_client client = get_uc_function_client()Erstellen Sie eine Unity Catalog-Funktion, die in Python geschrieben wurde.
CATALOG = "your_catalog" SCHEMA = "your_schema" func_name = f"{CATALOG}.{SCHEMA}.weather_function" def weather_function(location: str) -> str: """ Fetches the current weather from a given location in degrees Celsius. Args: location (str): The location to fetch the current weather from. Returns: str: The current temperature for the location provided in Celsius. """ return f"The current temperature for {location} is 24.5 celsius" client.create_python_function( func=weather_function, catalog=CATALOG, schema=SCHEMA, replace=True )Erstellen Sie eine Instanz der Unity Catalog-Funktion als Toolkit.
from unitycatalog.ai.anthropic.toolkit import UCFunctionToolkit # Create an instance of the toolkit toolkit = UCFunctionToolkit(function_names=[func_name], client=client)Verwenden Sie einen Werkzeugaufruf in Anthropic.
import anthropic # Initialize the Anthropic client with your API key anthropic_client = anthropic.Anthropic(api_key="YOUR_ANTHROPIC_API_KEY") # User's question question = [{"role": "user", "content": "What's the weather in New York City?"}] # Make the initial call to Anthropic response = anthropic_client.messages.create( model="claude-3-5-sonnet-20240620", # Specify the model max_tokens=1024, # Use 'max_tokens' instead of 'max_tokens_to_sample' tools=toolkit.tools, messages=question # Provide the conversation history ) # Print the response content print(response)Erstellen Sie eine Tool-Antwort. Die Antwort des Claude-Modells enthält einen Metadatenblock für die Werkzeuganforderung, wenn ein Werkzeug aufgerufen werden muss.
from unitycatalog.ai.anthropic.utils import generate_tool_call_messages
# Call the UC function and construct the required formatted response
tool_messages = generate_tool_call_messages(
response=response,
client=client,
conversation_history=question
)
# Continue the conversation with Anthropic
tool_response = anthropic_client.messages.create(
model="claude-3-5-sonnet-20240620",
max_tokens=1024,
tools=toolkit.tools,
messages=tool_messages,
)
print(tool_response)
Das unitycatalog.ai-anthropic Paket enthält ein Nachrichtenhandler-Hilfsprogramm, um das Analysieren und Verarbeiten eines Aufrufs der Unity Catalog-Funktion zu vereinfachen. Das Dienstprogramm führt folgende Schritte aus:
- Erkennt die Anforderungen an Tool-Aufrufe.
- Extrahiert Informationen zum Werkzeugaufruf aus der Abfrage.
- Führt den Aufruf der Unity Catalog-Funktion aus.
- Analysiert die Antwort aus der Unity Catalog-Funktion.
- Erstellen Sie das nächste Nachrichtenformat, um das Gespräch mit Claude fortzusetzen.
Hinweis
Der gesamte Konversationsverlauf muss im conversation_history Argument für die generate_tool_call_messages API bereitgestellt werden. Claude-Modelle erfordern die Initialisierung der Konversation (der ursprünglichen Benutzereingabefrage) und aller nachfolgenden LLM-generierten Antworten und Ergebnisse von Werkzeugaufrufen mit mehreren Durchläufen.