// Copyright (c) Microsoft Corporation. All rights reserved.
// FunctionExamples.cs
using System.Text.Json;
using AutoGen.Core;
namespace AutoGen.SourceGenerator.Tests;
public partial class FunctionExamples
{
///
/// Add function
///
/// a
/// b
[FunctionAttribute]
public int Add(int a, int b)
{
return a + b;
}
///
/// Add two numbers.
///
/// The first number.
/// The second number.
[Function]
public Task AddAsync(int a, int b)
{
return Task.FromResult($"{a} + {b} = {a + b}");
}
///
/// Sum function
///
/// an array of double values
[FunctionAttribute]
public double Sum(double[] args)
{
return args.Sum();
}
///
/// DictionaryToString function
///
/// an object of key-value pairs. key is string, value is string
[FunctionAttribute]
public Task DictionaryToStringAsync(Dictionary xargs)
{
var res = JsonSerializer.Serialize(xargs, new JsonSerializerOptions
{
WriteIndented = true,
});
return Task.FromResult(res);
}
///
/// query function
///
/// query, required
/// top k, optional, default value is 3
/// thresold, optional, default value is 0.5
[FunctionAttribute]
public string[] Query(string query, int k = 3, float thresold = 0.5f)
{
return Enumerable.Repeat(query, k).ToArray();
}
}