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.
-
Instale o pacote de integração do Databricks Unity Catalog para o Anthropic.
Python%pip install unitycatalog-anthropic[databricks]
dbutils.library.restartPython() -
Crie uma instância do cliente de funções do Unity Catalog.
Pythonfrom unitycatalog.ai.core.base import get_uc_function_client
client = get_uc_function_client() -
Crie uma função do Unity Catalog escrita em Python.
PythonCATALOG = "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
) -
Crie uma instância da função Unity Catalog como um kit de ferramentas.
Pythonfrom unitycatalog.ai.anthropic.toolkit import UCFunctionToolkit
# Create an instance of the toolkit
toolkit = UCFunctionToolkit(function_names=[func_name], client=client) -
Use uma chamada de ferramenta no Anthropic.
Pythonimport 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) -
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.
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:
- Detecta os requisitos de chamada de ferramentas.
- Extrai as informações de chamada da ferramenta da consulta.
- Realiza a chamada para a função Unity Catalog.
- Analisa a resposta da função Unity Catalog.
- Crie o próximo formato de mensagem para continuar a conversa com Claude.
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.