namespace Yi.Framework.AiHub.Application.Contracts.Dtos;
public class SendMessageOutputDto
{
///
/// 唯一标识符
///
public string Id { get; set; }
///
/// 对象类型
///
public string Object { get; set; }
///
/// 创建时间,Unix时间戳格式
///
public long Created { get; set; }
///
/// 模型名称
///
public string Model { get; set; }
///
/// 选择项列表
///
public List Choices { get; set; }
///
/// 系统指纹(可能为空)
///
public string SystemFingerprint { get; set; }
///
/// 使用情况信息
///
public Usage Usage { get; set; }
}
///
/// 选择项类,表示模型返回的一个选择
///
public class Choice
{
///
/// 选择索引
///
public int Index { get; set; }
///
/// 变化内容,包括内容字符串和角色
///
public Delta Delta { get; set; }
///
/// 结束原因,可能为空
///
public string FinishReason { get; set; }
///
/// 内容过滤结果
///
public ContentFilterResults ContentFilterResults { get; set; }
}
///
/// 变化内容
///
public class Delta
{
///
/// 内容文本
///
public string Content { get; set; }
///
/// 角色,例如"assistant"
///
public string Role { get; set; }
}
///
/// 内容过滤结果
///
public class ContentFilterResults
{
public FilterStatus Hate { get; set; }
public FilterStatus SelfHarm { get; set; }
public FilterStatus Sexual { get; set; }
public FilterStatus Violence { get; set; }
public FilterStatus Jailbreak { get; set; }
public FilterStatus Profanity { get; set; }
}
///
/// 过滤状态,表示是否经过过滤以及检测是否命中
///
public class FilterStatus
{
///
/// 是否被过滤
///
public bool Filtered { get; set; }
///
/// 是否检测到该类型(例如 Jailbreak 中存在此字段)
///
public bool? Detected { get; set; }
}
///
/// 使用情况,记录 token 数量等信息
///
public class Usage
{
///
/// 提示词数量
///
public int PromptTokens { get; set; }
///
/// 补全词数量
///
public int CompletionTokens { get; set; }
///
/// 总的 Token 数量
///
public int TotalTokens { get; set; }
///
/// 提示词详细信息
///
public PromptTokensDetails PromptTokensDetails { get; set; }
///
/// 补全文字详细信息
///
public CompletionTokensDetails CompletionTokensDetails { get; set; }
}
///
/// 提示词相关 token 详细信息
///
public class PromptTokensDetails
{
public int AudioTokens { get; set; }
public int CachedTokens { get; set; }
}
///
/// 补全相关 token 详细信息
///
public class CompletionTokensDetails
{
public int AudioTokens { get; set; }
public int ReasoningTokens { get; set; }
public int AcceptedPredictionTokens { get; set; }
public int RejectedPredictionTokens { get; set; }
}