278 lines
8.3 KiB
C#
278 lines
8.3 KiB
C#
namespace VideoAnalysisCore.AICore.ChatGPT.KIMI
|
||
{
|
||
|
||
public class MessagesItem
|
||
{
|
||
public MessagesItem()
|
||
{
|
||
|
||
}
|
||
public MessagesItem(string content, string role = "user")
|
||
{
|
||
this.content = content;
|
||
this.role = role;
|
||
}
|
||
/// <summary>
|
||
///
|
||
/// </summary>
|
||
public string role { get; set; }
|
||
|
||
/// <summary>
|
||
///
|
||
/// </summary>
|
||
public string content { get; set; }
|
||
}
|
||
/// <summary>
|
||
/// chat请求参数
|
||
/// </summary>
|
||
public class ChatReq
|
||
{
|
||
/// <summary>
|
||
/// 使用的模型
|
||
/// <para>例如[ moonshot-v1-8k ]</para>
|
||
/// </summary>
|
||
public string model { get; set; } = "moonshot-v1-8k";
|
||
/// <summary>
|
||
/// 消息主体
|
||
/// </summary>
|
||
public List<MessagesItem> messages { get; set; }
|
||
/// <summary>
|
||
/// 使用什么采样温度,介于 0 和 1 之间。较高的值(如 0.7)将使输出更加随机,而较低的值(如 0.2)将使其更加集中和确定性
|
||
/// <para>默认为 0,如果设置,值域须为 [0, 1] 我们推荐 0.3,以达到较合适的效果</para>
|
||
/// </summary>
|
||
public double temperature { get; set; }
|
||
|
||
/// <summary>
|
||
/// 聊天完成时生成的最大 token 数。如果到生成了最大 token 数个结果仍然没有结束,finish reason 会是 "length", 否则会是 "stop"
|
||
/// <para>这个值建议按需给个合理的值,如果不给的话,我们会给一个不错的整数比如 1024。特别要注意的是,这个 max_tokens 是指您期待我们返回的 token 长度,而不是输入 + 输出的总长度。比如对一个 moonshot-v1-8k 模型,它的最大输入 + 输出总长度是 8192,当输入 messages 总长度为 4096 的时候,您最多只能设置为 4096,否则我们服务会返回不合法的输入参数( invalid_request_error ),并拒绝回答。如果您希望获得“输入的精确 token 数”,可以使用下面的“计算 Token” API 使用我们的计算器获得计数</para>
|
||
/// </summary>
|
||
public int? max_tokens { get; set; }
|
||
/// <summary>
|
||
/// 另一种采样方法,即模型考虑概率质量为 top_p 的标记的结果。因此,0.1 意味着只考虑概率质量最高的 10% 的标记。一般情况下,我们建议改变这一点或温度,但不建议 同时改变
|
||
/// </summary>
|
||
public float? top_p { get; set; } = 1.0f;
|
||
/// <summary>
|
||
/// 为每条输入消息生成多少个结果
|
||
/// <para>默认为 1,不得大于 5。特别的,当 temperature 非常小靠近 0 的时候,我们只能返回 1 个结果,如果这个时候 n 已经设置并且 > 1,我们的服务会返回不合法的输入参数(invalid_request_error)</para>
|
||
/// </summary>
|
||
public int? n { get; set; } = 1;
|
||
/// <summary>
|
||
/// 存在惩罚,介于-2.0到2.0之间的数字。正值会根据新生成的词汇是否出现在文本中来进行惩罚,增加模型讨论新话题的可能性
|
||
/// <para>默认为 0</para>
|
||
/// </summary>
|
||
public float? presence_penalty { get; set; } = 0;
|
||
/// <summary>
|
||
/// 频率惩罚,介于-2.0到2.0之间的数字。正值会根据新生成的词汇在文本中现有的频率来进行惩罚,减少模型一字不差重复同样话语的可能性
|
||
/// <para>默认为 0</para>
|
||
/// </summary>
|
||
public float? frequency_penalty { get; set; } = 0;
|
||
/// <summary>
|
||
/// 停止词,当全匹配这个(组)词后会停止输出,这个(组)词本身不会输出。最多不能超过 5 个字符串,每个字符串不得超过 32 字节
|
||
/// <para>默认 null</para>
|
||
/// </summary>
|
||
public List<string>? stop { get; set; }
|
||
/// <summary>
|
||
/// 是否流式返回
|
||
/// <para>false</para>
|
||
/// </summary>
|
||
public bool stream { get; set; } = false;
|
||
|
||
|
||
}
|
||
|
||
|
||
public class PermissionItem
|
||
{
|
||
/// <summary>
|
||
///
|
||
/// </summary>
|
||
public int created { get; set; }
|
||
/// <summary>
|
||
///
|
||
/// </summary>
|
||
public string id { get; set; }
|
||
/// <summary>
|
||
///
|
||
/// </summary>
|
||
public string @object { get; set; }
|
||
/// <summary>
|
||
///
|
||
/// </summary>
|
||
public string allow_create_engine { get; set; }
|
||
/// <summary>
|
||
///
|
||
/// </summary>
|
||
public string allow_sampling { get; set; }
|
||
/// <summary>
|
||
///
|
||
/// </summary>
|
||
public string allow_logprobs { get; set; }
|
||
/// <summary>
|
||
///
|
||
/// </summary>
|
||
public string allow_search_indices { get; set; }
|
||
/// <summary>
|
||
///
|
||
/// </summary>
|
||
public string allow_view { get; set; }
|
||
/// <summary>
|
||
///
|
||
/// </summary>
|
||
public string allow_fine_tuning { get; set; }
|
||
/// <summary>
|
||
///
|
||
/// </summary>
|
||
public string organization { get; set; }
|
||
/// <summary>
|
||
///
|
||
/// </summary>
|
||
public string @group { get; set; }
|
||
/// <summary>
|
||
///
|
||
/// </summary>
|
||
public string is_blocking { get; set; }
|
||
}
|
||
|
||
public class ModelInfo
|
||
{
|
||
/// <summary>
|
||
///
|
||
/// </summary>
|
||
public int created { get; set; }
|
||
/// <summary>
|
||
///
|
||
/// </summary>
|
||
public string id { get; set; }
|
||
/// <summary>
|
||
///
|
||
/// </summary>
|
||
public string @object { get; set; }
|
||
/// <summary>
|
||
///
|
||
/// </summary>
|
||
public string owned_by { get; set; }
|
||
/// <summary>
|
||
///
|
||
/// </summary>
|
||
public List<PermissionItem> permission { get; set; }
|
||
/// <summary>
|
||
///
|
||
/// </summary>
|
||
public string root { get; set; }
|
||
/// <summary>
|
||
///
|
||
/// </summary>
|
||
public string parent { get; set; }
|
||
}
|
||
|
||
public class ModelListResp
|
||
{
|
||
/// <summary>
|
||
///
|
||
/// </summary>
|
||
public string @object { get; set; }
|
||
/// <summary>
|
||
///
|
||
/// </summary>
|
||
public List<ModelInfo> data { get; set; }
|
||
}
|
||
|
||
|
||
public class FileListResp
|
||
{
|
||
/// <summary>
|
||
///
|
||
/// </summary>
|
||
public string @object { get; set; }
|
||
/// <summary>
|
||
///
|
||
/// </summary>
|
||
public List<FileItem> data { get; set; }
|
||
}
|
||
|
||
public class FileContent
|
||
{
|
||
/// <summary>
|
||
///
|
||
/// </summary>
|
||
public string content { get; set; }
|
||
/// <summary>
|
||
///
|
||
/// </summary>
|
||
public string file_type { get; set; }
|
||
/// <summary>
|
||
///
|
||
/// </summary>
|
||
public string filename { get; set; }
|
||
/// <summary>
|
||
///
|
||
/// </summary>
|
||
public string title { get; set; }
|
||
/// <summary>
|
||
///
|
||
/// </summary>
|
||
public string type { get; set; }
|
||
}
|
||
|
||
|
||
public class FileItem
|
||
{
|
||
/// <summary>
|
||
///
|
||
/// </summary>
|
||
public string id { get; set; }
|
||
/// <summary>
|
||
///
|
||
/// </summary>
|
||
public string @object { get; set; }
|
||
/// <summary>
|
||
///
|
||
/// </summary>
|
||
public int bytes { get; set; }
|
||
/// <summary>
|
||
///
|
||
/// </summary>
|
||
public int created_at { get; set; }
|
||
/// <summary>
|
||
///
|
||
/// </summary>
|
||
public string filename { get; set; }
|
||
/// <summary>
|
||
///
|
||
/// </summary>
|
||
public string purpose { get; set; }
|
||
/// <summary>
|
||
///
|
||
/// </summary>
|
||
public string status { get; set; }
|
||
/// <summary>
|
||
///
|
||
/// </summary>
|
||
public string status_details { get; set; }
|
||
}
|
||
|
||
|
||
|
||
public class ErrorMsg
|
||
{
|
||
/// <summary>
|
||
///
|
||
/// </summary>
|
||
public string message { get; set; }
|
||
/// <summary>
|
||
///
|
||
/// </summary>
|
||
public string type { get; set; }
|
||
}
|
||
|
||
public class ErrorResponse
|
||
{
|
||
/// <summary>
|
||
///
|
||
/// </summary>
|
||
public ErrorMsg error { get; set; }
|
||
}
|
||
|
||
|
||
}
|