可以进行重复测量的方差分析的AI agent

embedded/2025/1/14 18:52:17/

可以进行重复测量的方差分析的AI agent

前几天做了机器学习的AI agent,把一个糖尿病机器学习模型采用API的形式接入到LLM模型中,结合LLM的智能性和机器学习模型的准确性,利用两者的有点,有可以避免两者的缺点,是一条合理且有发展前景的技术路线。 循着同样的思路,这次,尝试将医学统计学的“重复测量的方差分析”接入到LLM,因为这种分析方法算是相对复杂一点的方法,需要多步完成,中间还会用到球形检验等不太熟悉的检验方法,并且对结果进行专业的解释也是一个困难,正好可以接入LLM的智能来克服以上的部分。

现在已经上线百度千帆平台,「AI重复测量的方差分析」网页版地址,也可以在小程序上体验,还处于体验阶段。个人感觉这个API集合LLM的思路还是有很强的通用型,可以把之前自己的专业接入到LLM模型中。

1. 构建重复测量分析的API

使用python 的pingouin包可以实现重复测量的方差分析的各种分析函数,然后使用fastapi包装这些函数并部署到Render网站上(简便免费,但是算力有限),这样就形成了可以对外服务的API,建议使用api调试工具进行一下调试,比如apifox,还可以直接生成curl形式的代码,用来黏贴到百度的千帆大模型中的API组件中。

对于这种API,输入和原来机器学习的不一样,是List形式的,输出是json形式的,代码关键部分贴在下边。

python">from fastapi import FastAPI
from pydantic import BaseModel
import pandas as pd
import pingouin as pg
import json
from typing import List, Optionalapp = FastAPI()class RepeatedMeasuresAnovaInput(BaseModel):value_column: List[int]group_column: Optional[List[object]]=Nonetime_column: List[object]subject_column: List[int]@app.post("/sphericity_test")
def sphericity_test(input_data: RepeatedMeasuresAnovaInput):"""Perform a Mauchly's test of sphericity.Args:input_data: RepeatedMeasuresAnovaInputReturns:A JSON string containing the results of the sphericity test"""data_frame = pd.DataFrame({'value': input_data.value_column,'time': input_data.time_column,'subject': input_data.subject_column})try:spher, W, chisq, dof, pval  = pg.sphericity(data=data_frame, dv='value', within='time', subject='subject')output = {'sphericity': spher,'W': W,'chisq': chisq,'dof': dof,'pval': pval}return json.dumps(output, allow_nan=True,ensure_ascii=False)except Exception as e:return str(e)

2. 千帆平台构建API组件并接入LLM

构建组件这一块还算顺利,新增加几个参数作为输入,是array形式,值放在[]中,最后会以json的形式导入到模型中,输出是json格式的str形式,原始的输出会有反斜杠,可以不管。因为有多个API,所以增加了几个分支,通过关键词触发相应的分析步骤,分析之后直接进行输出,让用户知道是API输出的,不是大模型输出的。
在这里插入图片描述

下一步是构建一个应用,把组件接进去,应用设定上选择使用组件输出。这一块浪费了一些时间,一直提示数据格式不正确,调用组件失败,原因居然是因为有些低版本的大模型不理解数据形式,换了高版本的LLM模型后就可以了。

编写了一些promot之后,应用可以跑通了,算是版本1.0,后面还需要加工,欢迎大家体验。
在这里插入图片描述

3. 与shiny和streamlit等可视化界面应用比较

这里简单比较一下说一下,后续可能还会专门比较一下。
1、功能上来说,各有各的特点,无非是输入数据,展示结果,背后的运算都是一样的;
2.从易用性上来说,可视化界面可能更直观一些,更加符合数据处理的习惯,而大模型是通过一个对话框来实现这些功能,略显局促。
但是LLM比较了解的知识更全面,在处理用户意向不到的需求的时候,更加具有灵活性,另一方面随着,LLM组件功能的扩展,可能会有意想不到的设计。


http://www.ppmy.cn/embedded/153908.html

相关文章

Effective Objective-C 第一章阅读笔记

Effective Objective-C 第一章阅读笔记 文章目录 Effective Objective-C 第一章阅读笔记OC的语言起源内存管理小结 在类的头文件中尽量少引入其他头文件小结 多用字面量语法多用类型变量,少用#define预处理指令小结 枚举表示状态,选项,状态码…

CES Asia 2025:VR/AR/XR引领科技新潮流

在全球科技领域蓬勃发展的大背景下,CES Asia 2025(赛逸展)即将在京盛大开幕,VR/AR/XR技术作为前沿科技的代表,将在本次展会上大放异彩,展现出令人瞩目的发展趋势和巨大潜力,同时政策优势也将为其…

Spring底层核心原理解析

​ 本次分享会把Spring中核心知识点都给大家进行串讲,让大家对Spring的底层有一个整体的大致了解,比如: Bean的生命周期底层原理依赖注入底层原理初始化底层原理推断构造方法底层原理AOP底层原理Spring事务底层原理 但都只是大致流程&#…

docker简单使用

进入和退出docker linux命令 docker ps -a 查询已经创建的容器,包括正在运行的和已停止的容器docker start id-name 启动容器docker exec -it id-name /bin/bash 进入容器docker stop id-name 停止容器

说一说mongodb组合索引的匹配规则

一、背景 有一张1000多万条记录的大表,需要做归档至历史表,出现了大量慢查询。 查询条件是 "classroomId": {$in: ["xxx", "xxx", ..... "xxx","xxx", "xxx" ] }耗时近5秒,且…

2. Doris数据导入与导出

一. Doris数据导入 导入方式使用场景支持的文件格式导入模式Stream Load导入本地文件或者应用程序写入csv、json、parquet、orc同步Broker Load从对象存储、HDFS等导入csv、json、parquet、orc异步Routine Load从kakfa实时导入csv、json异步 1. Stream Load 基本原理 在使用…

英语互助小程序springboot+论文源码调试讲解

第2章 开发环境与技术 英语互助小程序的编码实现需要搭建一定的环境和使用相应的技术,接下来的内容就是对英语互助小程序用到的技术和工具进行介绍。 2.1 MYSQL数据库 本课题所开发的应用程序在数据操作方面是不可预知的,是经常变动的,没有…

No. 31 笔记 | Web安全-SQL手工注入技术学习 Part 2

一、研究背景 背景介绍 SQL注入是一种常见且高危的Web安全漏洞。攻击者可以通过构造恶意SQL查询语句来绕过验证机制,执行未授权操作,如获取敏感信息、篡改数据库内容甚至控制服务器。 研究内容 本笔记探讨以下数据库的手工注入技术: MySQLAc…