51 lines
1.8 KiB
C#
51 lines
1.8 KiB
C#
using System;
|
||
using System.Collections.Generic;
|
||
using System.Runtime.Serialization;
|
||
|
||
namespace ChatBot.Models.Dto
|
||
{
|
||
/// <summary>
|
||
/// Инструмент, который может вызывать модель.
|
||
/// </summary>
|
||
[DataContract]
|
||
public class Tool
|
||
{
|
||
/// <summary>
|
||
/// Тип инструмента. В настоящее время поддерживается только функция.
|
||
/// </summary>
|
||
[DataMember(Name = "type")]
|
||
public required string Type { get; set; }
|
||
|
||
/// <summary>
|
||
/// Определение функции.
|
||
/// </summary>
|
||
[DataMember(Name = "function")]
|
||
public required ToolFunction Function { get; set; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// Определение функции.
|
||
/// </summary>
|
||
[DataContract]
|
||
public class ToolFunction
|
||
{
|
||
/// <summary>
|
||
/// Имя функции для вызова. Должно содержать a-z, A-Z, 0-9 или подчеркивания и тире, с максимальной длиной 64 символа.
|
||
/// </summary>
|
||
[DataMember(Name = "name")]
|
||
public required string Name { get; set; }
|
||
|
||
/// <summary>
|
||
/// Описание того, что делает функция, используется моделью для выбора, когда и как вызывать функцию.
|
||
/// </summary>
|
||
[DataMember(Name = "description")]
|
||
public required string Description { get; set; }
|
||
|
||
/// <summary>
|
||
/// Параметры, которые принимает функция, описанные как объект JSON Schema.
|
||
/// </summary>
|
||
[DataMember(Name = "parameters")]
|
||
public required object Parameters { get; set; }
|
||
}
|
||
}
|