namespace OASystem.API.OAMethodLib.DeepSeekAPI
{
///
/// DeepSeek API 服务接口
///
public interface IDeepSeekService
{
///
/// 测试API连通性
///
///
Task TestApiConnectivityAsync();
///
/// 检查可用端点
///
///
Task> DiscoverAvailableEndpointsAsync();
///
/// 上传文件到DeepSeek API
///
/// 要上传的文件
/// 文件用途
/// 文件上传响应
Task UploadFileAsync(IFormFile file, string purpose = "assistants");
///
/// 批量上传文件
///
/// 文件列表
/// 文件用途
/// 上传结果列表
Task> UploadFilesAsync(List files, string purpose = "assistants");
///
/// 获取文件列表
///
/// 文件列表响应
Task ListFilesAsync();
///
/// 获取文件信息
///
/// 文件ID
/// 文件信息
Task GetFileInfoAsync(string fileId);
///
/// 删除文件
///
/// 文件ID
/// 是否删除成功
Task DeleteFileAsync(string fileId);
///
/// 使用已上传的文件进行聊天
///
/// 文件ID列表
/// 问题
/// 模型名称
/// 温度参数
/// 最大token数
/// 聊天响应
Task ChatWithFilesAsync(List fileIds, string question, string model = "deepseek-chat", float temperature = 0.7f, int maxTokens = 4000);
///
/// 等待文件处理完成
///
/// 文件ID
/// 超时时间(秒)
/// 处理后的文件状态
Task WaitForFileProcessingAsync(string fileId, int timeoutSeconds = 60);
#region 本地项目相关
///
/// 读取项目内的指定文件并转换为IFormFile
///
/// 文件相对路径列表
/// 文件读取响应
Task ReadProjectFilesAsync(List relativePaths);
///
/// 读取项目内指定目录的文件
///
/// 目录相对路径
/// 文件搜索模式
/// 是否递归搜索
/// 文件读取响应
Task ReadProjectDirectoryAsync(string directoryPath, string searchPattern = "*.cs", bool recursive = false);
///
/// 获取项目根目录路径
///
/// 项目根目录完整路径
string GetProjectRootPath();
///
/// 检查文件是否存在
///
/// 文件相对路径
/// 是否存在
bool FileExists(string relativePath);
///
/// 将物理文件转换为IFormFile
///
/// 文件完整路径
/// IFormFile实例
Task ConvertToFormFileAsync(string filePath);
///
/// 读取特定的签证申请表单文件
///
///
///
Task ReadVisaFormFileAsync(string fileName);
///
/// 读取OASystem项目中的所有CS文件
///
Task ReadOASystemFilesAsync(string searchPattern = "*.cs", bool recursive = true);
///
/// 读取指定域模型中的CS文件
///
Task ReadDomainViewModelsAsync(string searchPattern = "*.cs", bool recursive = true);
///
/// 读取签证表单相关的所有CS文件
///
Task ReadVisaFormFilesAsync(string searchPattern = "*.cs", bool recursive = true);
#endregion
}
}