在线问诊 Python、FastAPI、Neo4j — 创建药品节点

简介: 在线问诊 Python、FastAPI、Neo4j — 创建药品节点

目录


在线问诊 Python、FastAPI、Neo4j — 创建节点

Neo4j 节点的标签可以理解为 Java 中的实体。

根据常规流程:首先有什么症状,做哪些对应的检查,根据检查诊断什么疾病,需要用什么药物治疗,服药期间要注意哪些饮食,需要做哪些运行

在线问诊大概创建:症状、检查项目、疾病、药品、饮食、运动 这几个对象

前提条件

基于 Python FastAPI 获取 Neo4j 数据 :https://www.cnblogs.com/vipsoft/p/17687070.html

创建节点 Demo

通过 这个Demo 理解 Neo4j Driver for Python ,创建节点

test_create_node.py

import logging
from utils.neo4j_provider import driver
logging.root.setLevel(logging.INFO)
''' 创建知识图谱实体节点类型schema '''
def create_drug(tx, name):
    query = (
        "CREATE (n:Drug {name: $name})"
        "RETURN id(n)"
    )
    result = tx.run(query, name=name)
    return result.single()[0]
if __name__ == "__main__":
    with driver.session() as session:
        session.execute_write(create_drug, "扶他林")
    driver.close()
    logging.info("创建成功")

验证

# 查看创建后的结果
MATCH (n:Drug) WHERE n.name="扶他林" RETURN n
# 删除节点
MATCH (n:Drug) WHERE n.name="扶他林" DELETE n

准备数据

采用 CSV 格式,CSV 是一种纯文本形式保存数据,好处可以记事本打开预览,也可用 excel 打开,将来数据来源都过爬虫或者NLP处理,比处理Excel要方便得多

Excel 只能看,如果编辑 CSV 就乱码了,不知道为啥

通用名,商品名,英文名称,适应症,用法用量,禁忌,不良反应,药理毒理,注意事项,图片地址

创建药品标签节点

创建药品标签节点

build_drugs.py

import logging
import csv
from utils.neo4j_provider import driver
logging.root.setLevel(logging.INFO)
# 从CSV 中读取数据,并生成 CQL
def generate_cql() -> str:
    with open('drugs_data.csv', 'r', encoding='utf-8') as csv_file:
        csv_reader = csv.DictReader(csv_file)
        cql = ""
        for idx, row in enumerate(csv_reader):
            cql += """(drug%s:Drug {name: "%s",generic_name: "%s",english_name: "%s",indications: "%s",contraindications: "%s",adverse_reactions: "%s",toxicology: "%s",attention: "%s",usage_dosage: "%s",images_url: "%s"}),\r\n""" \
                   % (idx, row['商品名'], row['通用名'], row['英文名称'], row['适应症'], row['禁忌'], row['不良反应'], row['药理毒理'], row['注意事项'], row['用法用量'], row['图片地址'])
        return "CREATE %s" % (cql.rstrip(",\r\n"))
        data = [row for row in csv_reader]
# 执行写的命令
def execute_write(cql):
    with driver.session() as session:
        session.execute_write(execute_cql, cql)
    driver.close()
# 执行 CQL 语句
def execute_cql(tx, cql):
    tx.run(cql)
# 清除 Drug 标签数据
def clear_data():
    cql = "MATCH (n:Drug) DETACH DELETE n"
    execute_write(cql)
if __name__ == "__main__":
    clear_data()
    cql = generate_cql()
    print(cql)
    execute_write(cql)

源代码地址:https://gitee.com/VipSoft/VipQA

目录
相关文章
|
11天前
|
SQL 前端开发 Python
基于python-django的neo4j人民的名义关系图谱查询系统
基于python-django的neo4j人民的名义关系图谱查询系统
20 0
|
11天前
|
数据采集 前端开发 数据库
基于python-django的neo4j化学关系材料图谱系统
基于python-django的neo4j化学关系材料图谱系统
22 0
|
2月前
|
存储 JSON 数据安全/隐私保护
"FastAPI身份验证与授权的奥秘:如何用Python打造坚不可摧的Web应用,让你的项目一鸣惊人?"
【8月更文挑战第31天】在现代Web开发中,保证应用安全性至关重要,FastAPI作为高性能Python框架,提供了多种身份验证与授权方式,包括HTTP基础认证、OAuth2及JWT。本文将对比这些机制并附上示例代码,展示如何使用HTTP基础认证、OAuth2协议以及JWT进行用户身份验证,确保只有合法用户才能访问受保护资源。通过具体示例,读者可以了解如何在FastAPI项目中实施这些安全措施。
98 1
|
2月前
|
机器学习/深度学习 JSON API
【Python奇迹】FastAPI框架大显神通:一键部署机器学习模型,让数据预测飞跃至Web舞台,震撼开启智能服务新纪元!
【8月更文挑战第16天】在数据驱动的时代,高效部署机器学习模型至关重要。FastAPI凭借其高性能与灵活性,成为搭建模型API的理想选择。本文详述了从环境准备、模型训练到使用FastAPI部署的全过程。首先,确保安装了Python及相关库(fastapi、uvicorn、scikit-learn)。接着,以线性回归为例,构建了一个预测房价的模型。通过定义FastAPI端点,实现了基于房屋大小预测价格的功能,并介绍了如何运行服务器及测试API。最终,用户可通过HTTP请求获取预测结果,极大地提升了模型的实用性和集成性。
192 1
|
2月前
|
Python
在线问诊 Python、FastAPI、Neo4j — 问题咨询
在线问诊 Python、FastAPI、Neo4j — 问题咨询
45 1
|
2月前
|
JSON 数据库 开发者
FastAPI入门指南:Python开发者必看——从零基础到精通,掌握FastAPI的全栈式Web开发流程,解锁高效编码的秘密!
【8月更文挑战第31天】在当今的Web开发领域,FastAPI迅速成为开发者的热门选择。本指南带领Python开发者快速入门FastAPI,涵盖环境搭建、基础代码、路径参数、请求体处理、数据库操作及异常处理等内容,帮助你轻松掌握这一高效Web框架。通过实践操作,你将学会构建高性能的Web应用,并为后续复杂项目打下坚实基础。
77 0
|
2月前
|
存储 测试技术 开发者
FastAPI异步处理的神奇之处:如何用Python打造高性能Web应用,让你的项目一鸣惊人?
【8月更文挑战第31天】在现代Web开发中,高性能至关重要。FastAPI作为一款高性能Python Web框架,支持多种异步处理方式,包括非阻塞I/O、异步函数(async/await)及异步上下文管理器(async with),能够大幅提升应用性能。本文通过示例代码详细介绍了FastAPI中的异步处理方法,并分享了最佳实践,帮助开发者构建高效的Web应用。
95 0
|
2月前
|
安全 Python
FastAPI安全性揭秘:如何用Python构建坚不可摧的Web应用?
【8月更文挑战第31天】在现代Web开发中,确保应用安全稳定至关重要。FastAPI作为高性能Python Web框架,提供了认证授权、数据验证、CSRF保护及HTTPS支持等安全机制。本文将深入探讨这些特性,并通过示例代码展示如何利用FastAPI构建安全可靠的Web应用。 FastAPI的安全性涵盖多个方面:通过认证授权机制验证用户身份并控制访问权限;利用数据验证功能防止恶意输入;启用CSRF保护避免跨站请求伪造攻击;支持HTTPS增强应用安全性。示例代码展示了如何使用JWT进行认证授权、如何通过`Body`验证请求数据、如何启用CSRF保护以及如何配置HTTPS支持。
88 0
|
2月前
|
API C++ Python
【Azure 应用服务】Python fastapi Function在Azure中遇见AttributeError异常(AttributeError: 'AsgiMiddleware' object has no attribute 'handle_async')
【Azure 应用服务】Python fastapi Function在Azure中遇见AttributeError异常(AttributeError: 'AsgiMiddleware' object has no attribute 'handle_async')
|
2月前
|
API Python
在线问诊 Python、FastAPI、Neo4j — 提供咨询接口服务
在线问诊 Python、FastAPI、Neo4j — 提供咨询接口服务
33 0