Compartir a través de


Integración de Anthropic con las herramientas de Unity Catalog de Databricks

Utiliza Databricks Unity Catalog para integrar funciones de SQL y Python como herramientas en las llamadas LLM del Anthropic SDK. Esta integración combina la gobernanza de Unity Catalog con modelos antrópicos para crear aplicaciones eficaces de inteligencia artificial de generación.

Requisitos

  • Use Databricks Runtime 15.0 y versiones posteriores.

Integración de herramientas de Unity Catalog con Anthropic

Ejecute el código siguiente en un cuaderno o script de Python para crear una herramienta de catálogo de Unity y úsela al llamar a un modelo antrópico.

  1. Instale el paquete de integración del catálogo de Unity de Databricks para Anthropic.

    %pip install unitycatalog-anthropic[databricks]
    dbutils.library.restartPython()
    
  2. Cree una instancia del cliente de funciones del catálogo de Unity.

    from unitycatalog.ai.core.base import get_uc_function_client
    
    client = get_uc_function_client()
    
  3. Cree una función de catálogo de Unity escrita en 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
    )
    
  4. Cree una instancia de la función catálogo de Unity como kit de herramientas.

    from unitycatalog.ai.anthropic.toolkit import UCFunctionToolkit
    
    # Create an instance of the toolkit
    toolkit = UCFunctionToolkit(function_names=[func_name], client=client)
    
  5. Use una llamada a la herramienta en 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)
    
  6. Construya una respuesta a la herramienta. La respuesta del modelo de Claude contiene un bloque de metadatos de solicitud de herramienta si es necesario llamar a una herramienta.

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)

El unitycatalog.ai-anthropic paquete incluye una utilidad de controlador de mensajes para simplificar el análisis y el control de una llamada a la función catálogo de Unity. La utilidad hace lo siguiente:

  1. Detecta los requisitos de llamada a la herramienta.
  2. Extrae la información de llamada a la herramienta de la consulta.
  3. Realiza la llamada a la función Catálogo de Unity.
  4. Analiza la respuesta de la función Catálogo de Unity.
  5. Cree el siguiente formato de mensaje para continuar la conversación con Claude.

Nota:

El historial de conversaciones completo debe proporcionarse en el conversation_history argumento a la generate_tool_call_messages API. Los modelos de Claude requieren la inicialización de la conversación (la pregunta de entrada del usuario original) y todas las respuestas generadas por LLM posteriores y los resultados de las llamadas a la herramienta multiturno.