2021-04-01 愚人节,哈哈哈
好久没记录一下自己开发里程了,计划从今天起,每天写一写开发的内容.
目前再做的内容,用到了开源标注工具 LableStudio.使用的版本是1.0
LableStudio说明
具体关于工具的说明,这里直接贴官方的Guide文档了
功能说明
1.0版本的LableStudio有多用户,多项目的功能,但是对于同一个LableStudio实例,多个用户之间的各个项目以及标注的内容是共享的,而实际业务要求,不同用户,只能查看分配给自己的标注内容.
业务要求需要有用户的概念,每个用户能且仅能标记分配给自己的数据.
对于每个要及进行标注的表,可以创建不同的标注任务,标注不同的内容,对于同一个任务,所有要标注的数据可以指定不同的标注人以及审核人.
模块设计
- 使用Docker来创建多个LableStudio实例,所以,首先需要有一套LableStudio Docker维护管理功能
- 任务分配部分,需要有一套任务管理以及相关内容审核页面
- 具体标注页面,采用LableStudio原生页面嵌入的形式
- 标注结果收集生成汇总(按具体任务,或者整体任务)
实现
具体实现略过,哈哈哈,这里只说一下实现过程中遇到的几个问题以及解决的方法
LableStudio页面内嵌问题
因为安全问题,LableStudio需要使用到用户名密码,并且要实现一键登录,因为直接内嵌的页面,所以在登陆信息的处理上存在一定问题,这里用cookie从外侧页面将登陆信息传入的内嵌页面.1
在处理登陆信息的时候,LableStudioAPI提供的是通过Token的方式,但是,对程序来说,并没有直接获取对应Token的API,页面F12同样没有看到对应的接口调用信息.
所以这里看了一下LableStudio后台日志,发现用户登录的时候调用了一个/user/login/?next=/projects/
的接口,用F12获取前端组件名称,然后试了一下,发现可行
但是返回的内容中没有Token信息,但是有cookie,把cookie信息带入其他请求中,发现可行,并且对应的永不信息也是正确的. ↩︎