对华裔名字进行分类

wangdalin f13f279d92 优化代码, 增加GBK解码 9 months ago
tools e627f79d74 增加readme, 提取config, 整理client 10 months ago
.gitignore 42b87c4bf8 gitignore修改 10 months ago
client.py 5793e852d5 业务修改, csv支持, 异步并行 9 months ago
config.py 3e104729c2 小调整 9 months ago
functions.py e627f79d74 增加readme, 提取config, 整理client 10 months ago
name_classify_api.py f13f279d92 优化代码, 增加GBK解码 9 months ago
readme.md 82ea25a668 增加readme的curl说明 10 months ago
requirements.txt 5ddb5b163b bug-fix 10 months ago

readme.md

以下是这两个接口的接口说明文档,使用Markdown格式编写:

启动服务方式

conda activate name_cls
nohup python name_classify_api.py > /dalin/logs/name_cls.log &

请求方式

curl -X POST "http://10.41.1.57:8070/uploadfile/" -F "file=@/Users/tyz/Desktop/0909人群分析/2售后新加坡自建站退货人群 匹配0902-090.xlsx" -F "client_id=tyz"
curl -X POST "http://10.41.1.57:8070/classify_bert/" -H "Content-Type: application/json" -d "{\"path\": \"./process/tyz/2售后新加坡自建站退货人群匹配0902-090.xlsx\", \"client_id\": \"tyz\", \"name_column\": \"姓名\"}"

其中的第二个链接里的path是第一次请求的返回的path, client_id设置相同

API 接口文档

1. 文件上传接口

接口路径: /upload/

请求方法: POST

请求参数:

参数名称 类型 必须 描述
file UploadFile 要上传的文件
client_id string 客户端ID,用于创建用户目录

功能描述:

此接口用于上传文件,并将文件存储到服务器上的指定目录中。每个客户端都有自己的独立目录。上传文件后,系统会为文件和目录设置权限。

示例请求:

curl -X POST "http://{server_address}/upload/" \
  -F "file=@path/to/your/file.xlsx" \
  -F "client_id=12345"

响应参数:

  • 成功响应:
{
  "message": "文件 'your_file.xlsx' 上传成功",
  "client_id": "12345",
  "file_path": "./process/12345/your_file.xlsx"
}
  • 错误响应:
{
  "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文件中的数据进行分类处理。接口会在服务器上检查并清理过期的文件和目录,然后根据用户提供的数据进行分类。分类完成后,返回结果文件的下载链接。

示例请求:

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
  }'

响应参数:

  • 成功响应:
{
  "message": "分类完成",
  "output_file": "http://{server_address}:8070/data/{client_id}/{output_file_name}"
}
  • 文件处理失败响应:
{
  "message": "文件没能处理成功"
}
  • 错误响应:
{
  "message": "处理出现错误: [错误信息]"
}