def classify(self, msg: str): collection = db.get_collection(name='disease') # Collection if collection.find_one(filter={'疾病名称': msg}): return IT_TYPE.CONCEPT status, entity = self._match_treat(msg) if status: return IT_TYPE.TREATMENT, entity status, entity = self._match_inquiry(msg) if status: return IT_TYPE.INQUIRY, entity return IT_TYPE.CHAT
def disease_doc(id: str): collection = db.get_collection(name='disease') # Collection d = collection.find_one( filter={'_id': jsonb.ObjectId(id)}, # projection={'疾病链接':0, 'pdf链接':0, '英文名':0, '别名':0, '所属科目':0, 'ICD号':0,}) projection={ '疾病名称': 1, '概述': 1, '临床表现': 1, '治疗': 1, '预防': 1 }) result = reconstruce_doc(d) return jsonify(result), 200
def search_result(query: str, page, per_page): result = [] similarities = [] seg_query = jieba.cut_for_search(query) collection = db.get_collection(name='new_disease') # Collection for doc in collection.find(filter={}): seg_title = doc['seg_title'] id_ = str(doc['_id']) similarity = query_similarity_calculation(seg_query, seg_title) similarities.append((id_, similarity)) sim_top_ids = similarity_sort(similarities, page, per_page) for id_, _ in sim_top_ids: doc = collection.find_one(filter={'_id': jsonb.ObjectId(id_)}) result.append(doc) return result
def disease_list(page: int = 0): collection = db.get_collection(name='disease') # Collection per_page: int = app.config['PER_PAGE'] find_result = collection.find(filter={}, limit=per_page, sort={}, skip=per_page * page, projection={ '疾病链接': 0, 'pdf链接': 0, '英文名': 0, '别名': 0, '所属科目': 0, 'ICD号': 0 }) # Cursor u_result = [] for i in find_result: id_ = str(i.pop('_id')) i['_id'] = id_ u_result.append(i) return jsonify({'data': u_result}), 200
import json import jieba from flask import Flask, jsonify, request from pymongo import MongoClient from bson import json_util as jsonb from setting import config from intention import intention_classifier, IT_TYPE from model import db app = Flask(__name__) app.config.from_object(config) DELETE_KEYS = [''] collection = db.get_collection(name='disease') class ChatResponse: def __init__(self, it_type, msg, *args, **kwargs): self.it_type = it_type self.msg = msg def build(self): if self.it_type == IT_TYPE.CONCEPT: # 概念 return self._build_concept_resp() elif self.it_type == IT_TYPE.CHAT: # 闲聊 return self._build_chat_resp() elif self.it_type == IT_TYPE.INQUIRY: # 巡诊 return self._build_inquiry_resp() elif self.it_type == IT_TYPE.TREATMENT: # 治疗