Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 7 additions & 6 deletions examples/async-tools.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,9 @@ async def main():

if response.message.tool_calls:
# There may be multiple tool calls in the response
# Add the assistant message with tool calls to the conversation
messages.append(response.message)

for tool in response.message.tool_calls:
# Ensure the function is available, and then call it
if function_to_call := available_functions.get(tool.function.name):
Expand All @@ -71,14 +74,12 @@ async def main():
print('Function output:', output)
else:
print('Function', tool.function.name, 'not found')
output = 'Function not found'

# Only needed to chat with the model using the tool call results
if response.message.tool_calls:
# Add the function response to messages for the model to use
messages.append(response.message)
messages.append({'role': 'tool', 'content': str(output), 'tool_name': tool.function.name})
# Add each tool result as a separate message
messages.append({'role': 'tool', 'content': str(output), 'tool_name': tool.function.name})

# Get final response from model with function outputs
# Get final response from model with all tool call results
final_response = await client.chat('llama3.1', messages=messages)
print('Final response:', final_response.message.content)

Expand Down
13 changes: 7 additions & 6 deletions examples/tools.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,9 @@ def subtract_two_numbers(a: int, b: int) -> int:

if response.message.tool_calls:
# There may be multiple tool calls in the response
# Add the assistant message with tool calls to the conversation
messages.append(response.message)

for tool in response.message.tool_calls:
# Ensure the function is available, and then call it
if function_to_call := available_functions.get(tool.function.name):
Expand All @@ -69,14 +72,12 @@ def subtract_two_numbers(a: int, b: int) -> int:
print('Function output:', output)
else:
print('Function', tool.function.name, 'not found')
output = 'Function not found'

# Only needed to chat with the model using the tool call results
if response.message.tool_calls:
# Add the function response to messages for the model to use
messages.append(response.message)
messages.append({'role': 'tool', 'content': str(output), 'tool_name': tool.function.name})
# Add each tool result as a separate message
messages.append({'role': 'tool', 'content': str(output), 'tool_name': tool.function.name})

# Get final response from model with function outputs
# Get final response from model with all tool call results
final_response = chat('llama3.1', messages=messages)
print('Final response:', final_response.message.content)

Expand Down