Example #1
0
def add_task_info(task: Task, task_id, admin_id):
    """
    添加新的打标任务的基础信息.
    (当前默认admin_id=1; 暂不考虑state,doc_type信息)

    从前端接收json信息(暂定)
    json格式如下:
    {
     'name':str,
     'desc':str,
     'label_sys_ids':[str]
    }
    """
    sess = SessionLocal()
    # 插入task表:
    current_time_str = datetime.fromtimestamp(int(time.time()))
    db_task = Task_(id=task_id,
                    name=task.name,
                    desc=task.desc,
                    admin_id=admin_id,
                    create_time=current_time_str)  # ??
    sess.add(db_task)
    sess.commit()

    # 插入task_records表
    for label_sys_id in task.label_sys_ids:
        db_task_record = TaskRecords_(task_id=int(task_id),
                                      label_sys_id=label_sys_id)
        sess.add(db_task_record)
    sess.commit()
    sess.close()
    return {'task_id': task_id}
Example #2
0
def upload_to_db(df, task_id):
    """
    df: 通过检查的dataframe
    task_id: task_id
    """
    # 开始往数据库插入:
    sess = SessionLocal()
    num_uploaded_docs = len(df)
    num_success_docs = 0
    for item in df.iterrows():
        try:
            title = item[1]['title']
            content = item[1]['content']
            doc_id = int(my_snow.get_id())
            db_doc = Document_(id=doc_id,
                               task_id=task_id,
                               title=title,
                               content=content,
                               state=0)  #初次上传,state都为0
            sess.add(db_doc)
            # sess.refresh(db_doc)
            num_success_docs += 1
        except:
            sess.rollback()  # 报错的话需要通过rollback来撤销当前session的操作
            print(traceback.format_exc())
    sess.commit()
    sess.close()
    return {
        "num_uploaded_docs": num_uploaded_docs,
        "num_success_docs": num_success_docs
    }
Example #3
0
def add_label_sys(label_sys: LabelSys, admin_id: int):
    """
    添加新的分类体系.
    label_sys的json格式如下:
    {
     'name':str,
     'desc':str,
     'multi':int,
     'labels':[{'name':str,'desc':str,'keywords':str},
               {'name':str,'desc':str,'keywords':str},...]
    }
    """
    if check_label_sys_name(label_sys.name):
        return None
    sess = SessionLocal()
    label_sys_id = int(my_snow.get_id())
    db_label_sys = LabelSys_(id=label_sys_id, name=label_sys.name, desc=label_sys.desc,
                             multi=label_sys.multi, admin_id=admin_id)  # (当前默认admin_id=1)
    sess.add(db_label_sys)
    sess.commit()
    sess.refresh(db_label_sys)

    label_id_list = []
    for label in label_sys.labels:
        label_id = int(my_snow.get_id())
        label_id_list.append(label_id)
        db_label = Label_(id=label_id, name=label.name, desc=label.desc, keywords=label.keywords, label_sys_id=label_sys_id)
        sess.add(db_label)
        sess.commit()
        sess.refresh(db_label)

    res = {'label_sys_id': label_sys_id, 'label_id_list': label_id_list}
    sess.close()
    return res