Pular para o conteúdo principal

Integrar o Anthropic com as ferramentas do Databricks Unity Catalog

Use o Databricks Unity Catalog para integrar funções SQL e Python como ferramentas nas chamadas LLM do Anthropic SDK. Essa integração combina a governança do Unity Catalog com os modelos do Anthropic para criar aplicativos poderosos do AI.

Requisitos

  • Use o Databricks Runtime 15.0 e o acima.

Integrar as ferramentas do Unity Catalog com o Anthropic

Execute o seguinte código em um Notebook ou script Python para criar uma ferramenta Unity Catalog e usá-la ao chamar um modelo Anthropic.

  1. Instale o pacote de integração do Databricks Unity Catalog para o Anthropic.

    Python
    %pip install unitycatalog-anthropic[databricks]
    dbutils.library.restartPython()
  2. Crie uma instância do cliente de funções do Unity Catalog.

    Python
    from unitycatalog.ai.core.base import get_uc_function_client

    client = get_uc_function_client()
  3. Crie uma função do Unity Catalog escrita em Python.

    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. Crie uma instância da função Unity Catalog como um kit de ferramentas.

    Python
    from unitycatalog.ai.anthropic.toolkit import UCFunctionToolkit

    # Create an instance of the toolkit
    toolkit = UCFunctionToolkit(function_names=[func_name], client=client)
  5. Use uma chamada de ferramenta no Anthropic.

    Python
    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. Construa uma resposta da ferramenta. A resposta do modelo Claude contém um bloco de metadados de solicitação de ferramenta se uma ferramenta precisar ser chamada.

Python
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)

O pacote unitycatalog.ai-anthropic inclui um utilitário de tratamento de mensagens para simplificar a análise e o tratamento de uma chamada para a função Unity Catalog. As utilidades fazem o seguinte:

  1. Detecta os requisitos de chamada de ferramentas.
  2. Extrai as informações de chamada da ferramenta da consulta.
  3. Realiza a chamada para a função Unity Catalog.
  4. Analisa a resposta da função Unity Catalog.
  5. Crie o próximo formato de mensagem para continuar a conversa com Claude.
nota

O histórico completo da conversa deve ser fornecido no argumento conversation_history para o generate_tool_call_messages API. Os modelos Claude exigem a inicialização da conversa (a pergunta original de entrada do usuário) e todas as respostas subsequentes geradas pelo LLM e os resultados da chamada da ferramenta multivoltas.