from openai import OpenAI
import json
client = OpenAI(
base_url="https://api.highwayapi.ai/openai",
api_key="<Your API Key>",
)
model = "deepseek/deepseek-v3"
# Função de exemplo para simular a obtenção de dados meteorológicos.
def get_weather(location):
"""Obtém o clima atual do local especificado"""
print("Chamando a função get_weather, local: ", location)
# Em uma aplicação real, você precisará chamar uma API externa de clima aqui.
# Este é um exemplo simplificado que retorna dados codificados.
return json.dumps({"位置": location, "温度": "20 graus Celsius"})
tools = [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "Obtém o clima de um local; o usuário deve primeiro fornecer o local",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "Informações da cidade, por exemplo: Xangai",
}
},
"required": ["location"]
},
}
},
]
messages = [
{
"role": "user",
"content": "Como está o clima em Xangai?"
}
]
# Envia a requisição e imprime a resposta
response = client.chat.completions.create(
model=model,
messages=messages,
tools=tools,
)
# Em produção, verifique se a resposta contém uma chamada de ferramenta
tool_call = response.choices[0].message.tool_calls[0]
print(tool_call.model_dump())
# Certifique-se de que a chamada de ferramenta foi definida na etapa anterior
if tool_call:
# Estende o histórico da conversa adicionando a mensagem de chamada de ferramenta do assistente
messages.append(response.choices[0].message)
function_name = tool_call.function.name
if function_name == "get_weather":
function_args = json.loads(tool_call.function.arguments)
# Executa a função e obtém a resposta
function_response = get_weather(
location=function_args.get("location"))
# Adiciona a resposta da função às mensagens
messages.append(
{
"tool_call_id": tool_call.id,
"role": "tool",
"content": function_response,
}
)
# Obtém a resposta final do modelo, incluindo o resultado da função
answer_response = client.chat.completions.create(
model=model,
messages=messages,
# Observação: não inclua o parâmetro tools aqui
)
print(answer_response.choices[0].message)