Skip to content

Commit 81c71ba

Browse files
committed
removed redundancy, added formatting
1 parent 5a3b22a commit 81c71ba

File tree

1 file changed

+28
-43
lines changed

1 file changed

+28
-43
lines changed

examples/web-search-crawl.py

Lines changed: 28 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -15,55 +15,35 @@
1515

1616
def format_tool_results(
1717
results: Union[WebSearchResponse, WebFetchResponse],
18-
*,
19-
query: Optional[str] = None,
20-
url: Optional[str] = None,
18+
user_search: str,
2119
):
2220
if isinstance(results, WebSearchResponse):
2321
output = []
24-
if isinstance(results.results, dict):
25-
for q, search_results in results.results.items():
26-
output.append(f'Search results for "{q}":')
27-
for i, result in enumerate(search_results, 1):
28-
title = getattr(result, 'title', None)
29-
url_value = getattr(result, 'url', None)
30-
output.append(f'{i}. {title}' if title else f'{i}. {getattr(result, "content", "")}')
31-
if url_value:
32-
output.append(f' URL: {url_value}')
33-
output.append(f' Content: {getattr(result, "content", "")}')
34-
output.append('')
35-
else:
36-
if query:
37-
output.append(f'Search results for "{query}":')
38-
for i, result in enumerate(results.results, 1):
39-
title = getattr(result, 'title', None)
40-
url_value = getattr(result, 'url', None)
41-
output.append(f'{i}. {title}' if title else f'{i}. {getattr(result, "content", "")}')
42-
if url_value:
43-
output.append(f' URL: {url_value}')
44-
output.append(f' Content: {getattr(result, "content", "")}')
45-
output.append('')
46-
22+
output.append(f'Search results for "{user_search}":')
23+
print()
24+
for i, result in enumerate(results.results, 1):
25+
title = getattr(result, 'title', None)
26+
url_value = getattr(result, 'url', None)
27+
output.append(f'{i}. {title}' if title else f'{i}. {getattr(result, "content", "")}')
28+
if url_value:
29+
output.append(f' URL: {url_value}')
30+
output.append(f' Content: {getattr(result, "content", "")}')
31+
output.append('')
4732
return '\n'.join(output).rstrip()
4833

4934
elif isinstance(results, WebFetchResponse):
5035
output = []
51-
if url:
52-
output.append(f'Fetch results for "{url}":')
53-
output.extend(
54-
[
55-
f'Title: {results.title}',
56-
f'URL: {url}' if url else '',
57-
f'Content: {results.content}',
58-
]
59-
)
36+
output.append(f'Fetch results for "{user_search}":')
37+
output.extend([
38+
f'Title: {results.title}',
39+
f'URL: {user_search}' if user_search else '',
40+
f'Content: {results.content}',
41+
])
6042
if results.links:
6143
output.append(f'Links: {", ".join(results.links)}')
6244
output.append('')
63-
6445
return '\n'.join(output).rstrip()
6546

66-
6747
client = Client(headers={'Authorization': (os.getenv('OLLAMA_API_KEY'))})
6848
available_tools = {'web_search': client.web_search, 'web_fetch': client.web_fetch}
6949

@@ -88,19 +68,24 @@ def format_tool_results(
8868
if function_to_call:
8969
args = tool_call.function.arguments
9070
result: Union[WebSearchResponse, WebFetchResponse] = function_to_call(**args)
91-
print('Result from tool call name: ', tool_call.function.name, 'with arguments: ', args)
71+
print('Result from tool call name:', tool_call.function.name, 'with arguments:')
72+
print(args)
73+
print()
9274

75+
user_search = args.get('query', '') or args.get('url', '')
9376
if tool_call.function.name == 'web_search':
94-
formatted = format_tool_results(result, query=args.get('query'))
77+
formatted_tool_results = format_tool_results(result, user_search=user_search)
9578
elif tool_call.function.name == 'web_fetch':
96-
formatted = format_tool_results(result, url=args.get('url'))
79+
formatted_tool_results = format_tool_results(result, user_search=user_search)
9780
else:
98-
formatted = format_tool_results(result)
81+
formatted_tool_results = format_tool_results(result)
9982

100-
print('Result: ', formatted[:200])
83+
print('Result:')
84+
print(formatted_tool_results[:200])
85+
print()
10186

10287
# caps the result at ~2000 tokens
103-
messages.append({'role': 'tool', 'content': formatted[: 2000 * 4], 'tool_name': tool_call.function.name})
88+
messages.append({'role': 'tool', 'content': formatted_tool_results[: 2000 * 4], 'tool_name': tool_call.function.name})
10489
else:
10590
print(f'Tool {tool_call.function.name} not found')
10691
messages.append({'role': 'tool', 'content': f'Tool {tool_call.function.name} not found', 'tool_name': tool_call.function.name})

0 commit comments

Comments
 (0)