之前帮公司实现了一个Ai问诊的app,刚好写一篇.
通过宠物的图片、视频或者主人的描述,来生成病情报告.
在匹配出合适的医院,让主人挑选预约就医.
按照以下流程,其实都还挺简单的,一般配上前后端各一个,
具备一定经验的前提下,2-4周左右,就能出第一版本了.
bash
目录:
1:Ai使用GPT
1.1 调用gpt接口
1.2 返回使用流或者JSON
1.3 使用assistaant来存储上下文
1.4 使用Role来定义助手的职责
1.5 视频截取帧
1.6 控制token数量
2:地图医院信息
2.1 医院信息位置爬取
2.2 医院信息上传
2.3 gpt问答的时候,匹配最近的医院
3:知识库
3.1 宠物健康知识、问答等知识爬取
3.2 知识库上传
一:Ai使用GPT
1.去官方拿api接口,获取密钥,普通接口调用即可.
assistaant会麻烦点,需要创建线程、消息、文件等等,这些建议直接看官方文档
2.返回使用流或者JSON
因为gpt返回的时候默认是流,他会一个字一个字的返回,
所以我们的https接口建议也可以用Stream,
这样的话,客户端就不会陷入长时间的等待,会一个字一个字的加载.
嫌麻烦用json也行.
3. 使用assistaant来存储上下文
GPT创建助手,用来存储上下文聊天信息,这样的话AI每次分析问题的时候,
就能结合全局聊天来判断了
4.使用Role来定义助手的职责
给assistaant定义它是干什么,比如宠物问诊助手,
以及它要用什么形式来进行问答流程.
5. 视频截取帧
我们会通过图片和视频来判断宠物症状,但是GPT目前是不支持上传视频的,
所以我们会通过FFmpeg来截取视频帧来上传.
6. 控制token数量
GPT用会把问答信息转换为token数量来计费,
所以我们需要计算一下每次问答耗费了多少token数量.
二:地图医院信息
1.医院信息位置爬取
可以使用google地图api直接获取,但是比较贵
通过https://petsapp.com这个网站也能获取
通过他们api的规则去爬,又或者直接开启网页去爬,但是这样的方式会慢点
2.医院信息上传
爬取下来的信息可以持久化,上传到assistaant助手里.
3.gpt问答的时候,匹配最近的医院
问答进度到了百分之百的时候,根据经纬度匹配医院信息.
三:知识库
1 宠物健康知识、问答等知识爬取
GPT上关于宠物知识数据并不多且不具体,所以需要我们额外的去爬取,
还有一些问诊思路,例如宠物食欲不振大概有哪些方面影响的,
会问你最近宠物有做过什么没.
去https://www.merckvetmanual.com/dog-owners获取
2 知识库上传
上传到assistaant文件里也可以. 可以通过文件来进行信息补充.
但这个最好有一个专门的平台来处理,我们是使用https://dify.petority.app
至于其他的宠物、用户、后台、聊天等这些数据的持久化,普通的业务逻辑实现,
这些就没啥好写的了,根据公司要求去实现就好,反正换个公司就是另一套实现.