This example assumes using Google.Gemini; is in scope and apiKey contains your Google.Gemini API key.
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 | using var client = new GeminiClient(apiKey);
var modelId = GetGenerateContentModelId();
try
{
var getWeatherTool = AIFunctionFactory.Create(
(string location) => $"The weather in {location} is 72°F and sunny.",
name: "get_weather",
description: "Gets the current weather for a given location.");
IChatClient chatClient = client;
var response = await chatClient.GetResponseAsync(
[
new ChatMessage(ChatRole.User, "What is the weather in Paris?")
],
new ChatOptions
{
ModelId = modelId,
Tools = [getWeatherTool],
});
// The model should request a tool call
var functionCall = response.Messages
.SelectMany(m => m.Contents)
.OfType<FunctionCallContent>()
.FirstOrDefault();
}
catch (ApiException ex) when (ex.StatusCode is System.Net.HttpStatusCode.TooManyRequests)
{
}
|