「开发者说」生物医药行业产品信息查询机器人开发实践-爱代码爱编程
本次的供稿人为上海陶术生物科技有限公司IT部门经理张伟,其分享的开发经验为通过钉钉机器人解决其生物化学类产品管理全流程的问题。概览本文大概需要3分钟,精读本文需要10分钟。文末附作者的开源代码链接。
“钉钉开放平台逐渐完善的开发文档, 丰富的案例, 强大开放矩阵中的开放接口让钉钉应用开发简便而高效. 通过陶术小AI机器人的开发,高效的解决了生物化学品类繁多的管理痛点,提高了公司客服与销售人员的工作效率。在数字化进程中,陶术生物科技同钉钉一起让进步发生。“
——「开发者说」
01应用开发背景:
-
公司简介:
上海陶术生物科技有限公司是一家致力于服务全球研发工作者的高新技术企业,深耕化合物筛选领域十余年,实现了从药物虚拟筛选到实体化合物分子供应、从商业化产品销售到个性化定制合成、从对明确靶点的分子筛选到对明确分子的多靶点筛选、从高通量筛选到化学结构优化的全流程服务模式。公司旗下TOPSCIENCE(陶术生物)品牌立足于多年积累的行业经验,与全球知名高校和科研院所的专业学者建立了紧密的合作关系,为各类创新药物的研发提供便捷的一站式采购体验。
-
产品背景:
公司主要实体产品为生物化学试剂, 产品特点是单个产品包装规格小, 一般为毫克到克级别, 但产品品种多, 其中抑制剂和天然产物有上万种,
-
行业痛点、困扰:
销售和客服人员在查询产品货期, 库存, 价格等信息时需首先登录内部系统, 再打开产品查询界面, 输入产品编号后搜索, 整个过程繁琐费时, 且内部系统界面对移动设备不友好.
02项目概况
-
项目需求场景
-
公司的客服或销售人员能随时随地快速查询产品信息, 同时记录所有的查询操作以便日后分析。
-
销售部和客服部员工有权使用, 其他部门员工和非企业员工不可用;
-
手机, PC均操作方便;
-
员工的所有查询操作都有记录;
-
用户无需输账号密码.
-
-
解决方案
使用钉钉机器人开发陶术小AI--产品信息查询机器人
机器人功能: 在机器人的对话窗口, 使用者发送产品编号或名称会即可返回该产品的详细信息, 如库存量, 包装规格-价格等, 以及打开该产品对应官网页面的快捷方式按钮
-
技术架构
开发语言: Python
服务端框架: FastAPI
数据库: MySQL
前端: 钉钉机器人原生对话框
-
项目效果
-
使用前:
-
查询产品信息首先登录内部系统, 再打开产品查询界面, 输入产品编号后搜索, 整个过程繁琐费时, 且内部系统界面对移动设备不友好.
-
使用后:
直接在钉钉上打开机器人会话窗口, 发送关键词后瞬间返回结果, 手机和电脑端操作同样方便.
软件界面:
搜索的关键词完全匹配产品编号或名称时直接返回产品信息
搜索的关键词与产品编号或名称不完全相符时, 会返回10个最相近的产品
点击返回结果中的"查询陶素"按钮后会在侧边栏打开该产品对应的网页
数据库中的查询记录
03开发实战分享
•钉钉API开发集成
主要使用了一下api:
获取访问凭证
成员信息读取
企业内机器人发送消息
-
开发步骤
-
应用创建
-
首先在钉钉开放平台-企业内部开发创建机器人应用.
-
在开发管理页面添加服务器出口IP地址和接收钉钉机器人返回消息的url
-
如果需要后台获取用户姓名, 部门等信息需在权限管理页面申请成员信息读权限和成员信息读权限
-
-
服务端开发
-
需要用到fastapi和pymysql这两个外部包
-
用户向机器人发消息时, 机器人会将消息打包后post到服务器, 消息包含以下字段conversationId, chatbotCorpId, chatbotUserId, msgId, senderNick, isAdmin, senderStaffId, sessionWebhookExpiredTime, createAt, senderCorpId, conversationType, senderId, sessionWebhook, msgtype, text.
-
服务端解析机器人post请求后, 会构建一个互动卡片, 以json字符串的形式返回给机器人
-
附录: