using System.Text.Json.Serialization;
namespace OASystem.API.OAMethodLib.DeepSeekAPI
{
public class DeepSeekModels
{
}
///
/// 基础信息
///
public class DeepSeek
{
///
/// ApiKey
///
public string ApiKey { get; set; }
///
/// BaseAddress
///
public string BaseAddress { get; set; }
}
///
/// 文件上传到DeepSeek API的请求参数
///
public class DeepSeekFileUploadRequest
{
///
/// 要上传的文件列表
///
public List Files { get; set; } = new List();
///
/// 用途描述(可选)
///
public string Purpose { get; set; } = "assistants";
///
/// 模型名称,默认为 deepseek-chat
///
public string Model { get; set; } = "deepseek-chat";
///
/// 是否等待文件处理完成
///
public bool WaitForProcessing { get; set; } = true;
}
///
/// 使用已上传文件提问的请求参数
///
public class AskWithFilesRequest
{
///
/// 已上传的文件ID列表
///
public List FileIds { get; set; } = new List();
///
/// 问题描述
///
public string Question { get; set; }
///
/// 模型名称
///
public string Model { get; set; } = "deepseek-chat";
///
/// 温度参数
///
public float Temperature { get; set; } = 0.7f;
///
/// 最大token数
///
public int MaxTokens { get; set; } = 4000;
}
///
/// DeepSeek 文件上传响应
///
public class DeepSeekFileUploadResponse
{
///
/// 文件ID
///
[JsonPropertyName("id")]
public string Id { get; set; }
///
/// 对象类型
///
[JsonPropertyName("object")]
public string Object { get; set; }
///
/// 文件大小(字节)
///
[JsonPropertyName("bytes")]
public long Bytes { get; set; }
///
/// 创建时间戳
///
[JsonPropertyName("created_at")]
public long CreatedAt { get; set; }
///
/// 文件名
///
[JsonPropertyName("filename")]
public string Filename { get; set; }
///
/// 文件用途
///
[JsonPropertyName("purpose")]
public string Purpose { get; set; }
///
/// 文件状态
///
[JsonPropertyName("status")]
public string Status { get; set; }
///
/// 状态详情
///
[JsonPropertyName("status_details")]
public object StatusDetails { get; set; }
}
///
/// 文件列表响应
///
public class DeepSeekFileListResponse
{
///
/// 对象类型
///
[JsonPropertyName("object")]
public string Object { get; set; }
///
/// 文件数据列表
///
[JsonPropertyName("data")]
public List Data { get; set; }
}
///
/// 使用文件进行聊天的请求
///
public class DeepSeekChatWithFilesRequest
{
///
/// 模型名称
///
[JsonPropertyName("model")]
public string Model { get; set; }
///
/// 消息列表
///
[JsonPropertyName("messages")]
public List Messages { get; set; }
///
/// 温度参数
///
[JsonPropertyName("temperature")]
public float Temperature { get; set; }
///
/// 最大token数
///
[JsonPropertyName("max_tokens")]
public int MaxTokens { get; set; }
}
///
/// 包含文件引用的消息
///
public class FileMessage
{
///
/// 消息角色
///
[JsonPropertyName("role")]
public string Role { get; set; }
///
/// 消息内容
///
[JsonPropertyName("content")]
public object Content { get; set; }
}
///
/// 文件内容块
///
public class FileContent
{
///
/// 内容类型
///
[JsonPropertyName("type")]
public string Type { get; set; } = "text";
///
/// 文本内容
///
[JsonPropertyName("text")]
public string Text { get; set; }
}
///
/// API响应结果
///
public class ApiResponse
{
///
/// 是否成功
///
public bool Success { get; set; }
///
/// 响应消息
///
public string Message { get; set; }
///
/// 文件上传结果
///
public List FileResults { get; set; } = new List();
///
/// 回答内容(如果包含提问)
///
public string Answer { get; set; }
///
/// 使用的token数量
///
public int TokensUsed { get; set; }
}
///
/// 文件上传结果
///
public class FileUploadResult
{
///
/// 文件名
///
public string FileName { get; set; }
///
/// 文件ID
///
public string FileId { get; set; }
///
/// 文件大小
///
public long FileSize { get; set; }
///
/// 是否上传成功
///
public bool Success { get; set; }
///
/// 状态消息
///
public string Message { get; set; }
///
/// 文件状态
///
public string Status { get; set; }
}
///
/// 文件删除请求
///
public class DeleteFileRequest
{
///
/// 要删除的文件ID
///
public string FileId { get; set; }
}
///
/// 项目文件读取请求
///
public class ProjectFileReadRequest
{
///
/// 要读取的文件相对路径列表(相对于项目根目录)
///
public List FilePaths { get; set; } = new List();
///
/// 是否递归读取子目录
///
public bool Recursive { get; set; } = false;
///
/// 文件搜索模式(例如:*.cs)
///
public string SearchPattern { get; set; } = "*.cs";
///
/// 文件用途
///
public string Purpose { get; set; } = "assistants";
}
///
/// 项目文件信息
///
public class ProjectFileInfo
{
///
/// 文件相对路径
///
public string RelativePath { get; set; }
///
/// 文件完整路径
///
public string FullPath { get; set; }
///
/// 文件大小(字节)
///
public long FileSize { get; set; }
///
/// 最后修改时间
///
public DateTime LastModified { get; set; }
///
/// 是否成功读取
///
public bool Success { get; set; }
///
/// 错误信息(如果有)
///
public string ErrorMessage { get; set; }
///
/// 转换后的IFormFile(如果成功)
///
public IFormFile FormFile { get; set; }
}
///
/// 项目文件读取响应
///
public class ProjectFileReadResponse
{
///
/// 是否成功
///
public bool Success { get; set; }
///
/// 响应消息
///
public string Message { get; set; }
///
/// 读取的文件信息列表
///
public List FileInfos { get; set; } = new List();
///
/// 成功读取的文件数量
///
public int SuccessCount => FileInfos.Count(f => f.Success);
///
/// 失败的文件数量
///
public int FailureCount => FileInfos.Count(f => !f.Success);
}
}