以下是这两个接口的接口说明文档,使用Markdown格式编写: --- ## API 接口文档 ### 1. 文件上传接口 **接口路径**: `/upload/` **请求方法**: `POST` **请求参数**: | 参数名称 | 类型 | 必须 | 描述 | | ------------- | -------------- | ---- | -------------------------- | | `file` | `UploadFile` | 是 | 要上传的文件 | | `client_id` | `string` | 是 | 客户端ID,用于创建用户目录 | **功能描述**: 此接口用于上传文件,并将文件存储到服务器上的指定目录中。每个客户端都有自己的独立目录。上传文件后,系统会为文件和目录设置权限。 **示例请求**: ```bash curl -X POST "http://{server_address}/upload/" \ -F "file=@path/to/your/file.xlsx" \ -F "client_id=12345" ``` **响应参数**: - 成功响应: ```json { "message": "文件 'your_file.xlsx' 上传成功", "client_id": "12345", "file_path": "./process/12345/your_file.xlsx" } ``` - 错误响应: ```json { "message": "发生错误: [错误信息]" } ``` --- ### 2. 数据分类接口 **接口路径**: `/classify/` **请求方法**: `POST` **请求参数**: 数据分类接口参数列表 | 参数名称 | 类型 | 必须 | 描述 | | --------------- | ----------- | ---- | ------------------------------------------------------------------------------------------- | | `client_id` | `string` | 是 | 客户端ID,用于在服务器上区分不同用户的目录。 | | `path` | `string` | 是 | 需要分类的Excel文件的路径, 为上传文件的时候返回的列名 | | `name_column` | `string` | 是 | Excel文件中包含需要分类的姓名列的列名。 | | `chunk_size` | `int` | 否 | 默认100, 传入则修改 每次处理的数据块大小,用于分块处理数据。 | | `one_key` | `string` | 是 | 用于识别Excel文件中唯一标识符的列名。 | | `api_key` | `string` | 否 | 默认有openai的key, 传入则为用户的OpenAI API密钥,用于调用OpenAI的API进行数据分类。 | | `proxy` | `boolean` | 否 | 默认为False, 传入则修改,是否使用代理(如 `true`表示使用代理,`false`表示不使用代理)。 | **说明**: - **client_id**: 该参数用于在服务器上创建或查找与客户端ID对应的目录,确保文件上传和处理的独立性。 - **path**: 文件路径需要是服务器上实际文件的路径,确保该路径是正确的并且文件存在。 - **name_column**: 确保该列名在Excel文件中存在,并且包含需要分类的姓名数据。 - **chunk_size**: 分块大小决定了每次处理的数据量大小,较大的块大小可能会导致内存占用较高。 - **one_key**: 唯一标识符列名用于确保数据的唯一性,避免重复处理。 - **api_key**: OpenAI API的密钥,需确保密钥的正确性和权限。 - **proxy**: 设置为 `true`时,通过代理进行API请求,通常用于网络受限的环境。 **功能描述**: 此接口用于对上传的Excel文件中的数据进行分类处理。接口会在服务器上检查并清理过期的文件和目录,然后根据用户提供的数据进行分类。分类完成后,返回结果文件的下载链接。 **示例请求**: ```bash curl -X POST "http://{server_address}/classify/" \ -H "Content-Type: application/json" \ -d '{ "client_id": "12345", "path": "./process/12345/your_file.xlsx", "name_column": "姓名", "chunk_size": 100, "one_key": "ID", "api_key": "your_openai_api_key", "proxy": false }' ``` **响应参数**: - 成功响应: ```json { "message": "分类完成", "output_file": "http://{server_address}:8070/data/{client_id}/{output_file_name}" } ``` - 文件处理失败响应: ```json { "message": "文件没能处理成功" } ``` - 错误响应: ```json { "message": "处理出现错误: [错误信息]" } ```