Microsoft.Extensions.AI Integration
The Serper SDK provides AIFunction tool wrappers compatible with Microsoft.Extensions.AI. These tools can be used with any IChatClient to give AI models Google search and news search capabilities.
Installation
| dotnet add package Serper
|
| Method |
Tool Name |
Description |
AsSearchTool(numResults) |
GoogleSearch |
Searches Google for current information on a query |
AsNewsTool(numResults) |
GoogleNewsSearch |
Searches Google News for recent news articles |
Usage
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 | using Serper;
using Microsoft.Extensions.AI;
var serper = new SerperClient(apiKey: Environment.GetEnvironmentVariable("SERPER_API_KEY")!);
var options = new ChatOptions
{
Tools =
[
serper.AsSearchTool(numResults: 5),
serper.AsNewsTool(numResults: 5),
],
};
IChatClient chatClient = /* your chat client */;
var messages = new List<ChatMessage>
{
new(ChatRole.User, "What happened in tech news today?"),
};
while (true)
{
var response = await chatClient.GetResponseAsync(messages, options);
messages.AddRange(response.ToChatMessages());
if (response.FinishReason == ChatFinishReason.ToolCalls)
{
var results = await response.CallToolsAsync(options);
messages.AddRange(results);
continue;
}
Console.WriteLine(response.Text);
break;
}
|
| Parameter |
Type |
Default |
Description |
numResults |
int |
5 |
Maximum number of search results to return |
| Parameter |
Type |
Default |
Description |
numResults |
int |
5 |
Maximum number of news results to return |