Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Gebruik Databricks Unity Catalog om SQL- en Python-functies te integreren als hulpprogramma's in LLM-aanroepen van de Antropic SDK. Deze integratie combineert het beheer van Unity Catalog met antropische modellen om krachtige GEN AI-apps te maken.
Behoeften
- Gebruik Databricks Runtime 15.0 en hoger.
Unity Catalog-hulpprogramma's integreren met Antropic
Voer de volgende code uit in een notebook of Python-script om een Unity Catalog-hulpprogramma te maken en deze te gebruiken bij het aanroepen van een Antropisch model.
Installeer het Databricks Unity Catalog-integratiepakket voor Antropic.
%pip install unitycatalog-anthropic[databricks] dbutils.library.restartPython()Maak een exemplaar van de Unity Catalog-functieclient.
from unitycatalog.ai.core.base import get_uc_function_client client = get_uc_function_client()Maak een Unity Catalog-functie die is geschreven in Python.
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 )Maak een exemplaar van de Unity Catalog-functie als een toolkit.
from unitycatalog.ai.anthropic.toolkit import UCFunctionToolkit # Create an instance of the toolkit toolkit = UCFunctionToolkit(function_names=[func_name], client=client)Gebruik een hulpmiddel-aanroep 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)Een reactie op een hulpprogramma maken. Het antwoord van het Claude-model bevat een metagegevensblok voor hulpprogrammaaanvragen als een hulpprogramma moet worden aangeroepen.
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)
Het unitycatalog.ai-anthropic pakket bevat een hulpprogramma voor de berichthandler om het parseren en verwerken van een aanroep naar de Unity Catalog-functie te vereenvoudigen. Het hulpprogramma doet het volgende:
- Detecteert de vereisten voor het aanroepen van hulpprogramma's.
- Extraheert informatie over het aanroepen van een tool uit de query.
- Voert de aanroep uit naar de Unity Catalog-functie.
- Parseert het antwoord van de functie Unity Catalog.
- Maak de volgende berichtindeling om het gesprek met Claude voort te zetten.
Opmerking
De volledige gespreksgeschiedenis moet worden opgegeven in het conversation_history argument voor de generate_tool_call_messages API. Claude-modellen vereisen de initialisatie van het gesprek (de oorspronkelijke gebruikersinvoervraag) en alle daaropvolgende antwoorden gegenereerd door LLM, evenals de resultaten van meervoudige interacties met hulpmiddelen.