当前位置: 首页 > news >正文

GPT-4 Vision调试任何应用,即使缺少文本日志 升级Streamlit七

GPT-4 Vision 系列:

  • 翻译: GPT-4 with Vision 升级 Streamlit 应用程序的 7 种方式一
  • 翻译: GPT-4 with Vision 升级 Streamlit 应用程序的 7 种方式二
  • 翻译: GPT-4 Vision静态图表转换为动态数据可视化 升级Streamlit 三
  • 翻译: GPT-4 Vision从图像转换为完全可编辑的表格 升级Streamlit四
  • 翻译: GPT-4 Vision通过量身定制的推荐来增强应用的用户体验 升级Streamlit五
  • 翻译: GPT-4 Vision征服LLM幻觉hallucinations 升级Streamlit六

1.6. 调试任何应用,即使缺少文本日志

作为 Streamlit 的开发倡导者,我花了很大一部分时间在论坛上,帮助我们的社区用户调试他们的 Streamlit 应用程序。

虽然 GPT-4 是一个非常有效的工具,可以快速查看错误日志以找到错误的来源,但有时,用户由于各种原因无法提供错误日志跟踪:

  • 日志跟踪可能包含无法共享的私有数据。
  • 用户可能无法在特定时间访问日志跟踪。

我们可能只能从 Streamlit 前端获得错误标注的屏幕截图,如下所示:

在这里插入图片描述
这可能会使调试问题变得困难,因为我们无权访问完整的日志跟踪。

不要害怕!ChatGPT Vision 仍然可以通过从屏幕截图中提取相关信息来提供有用的调试提示来帮助您。

使用以下提示prompt粘贴上面的图像:

Give me a clue on the error.
给我关于错误的线索。

2. GPT-4 的答案

在这里插入图片描述
根据您提供的截图,看起来一个Streamlit应用程序在执行过程中遇到了ValueError错误。错误源自一个名为classificacao_com_automl_em_manutencao_pred...(由于截图被截断,无法看到完整文件名)的文件中的modelo.predict(listaValores)函数调用。以下是我们可以推断的信息:

  1. ValueError:当一个函数接收到一个类型正确但值不适当的参数,或者当存在函数未设置处理的条件时,就会出现这种类型的错误。

  2. LightGBMScikit-learn集成:回溯显示错误发生在预测步骤中,很可能涉及到使用LightGBM(lightgbm/sklearn.py)的机器学习模型。LightGBM是一个使用基于树的学习算法的梯度提升框架,在这种情况下似乎与Scikit-learn集成。

  3. 数据输入问题:调用了predictpredict_proba函数,这表明问题可能与传递给模型进行预测的输入数据(listaValores)有关。这类错误的常见原因可能包括:

  • 形状不匹配:模型期望输入数据具有一定的形状,但listaValores与此形状不匹配。
  • 预处理不匹配:数据未按照与训练数据相同的方式进行预处理(缩放/标准化/编码)。
  • 数据中存在模型无法处理的缺失值或无限值。
  1. 模型期望:错误可能表明模型对输入数据有一定的期望,但这些期望没有得到满足。例如,模型可能需要数值输入,但它接收到的是需要编码的分类数据。

  2. _LGBMCheckArray函数:这是一个内部LightGBM函数调用,用于验证输入数组。accept_sparse=Trueforce_all_finite=False 参数表明模型被设置为接受稀疏输入并且不要求所有值都是有限的。然而,如果传递给它的数据不满足其他标准(如正确的形状或类型),它仍然可能引发ValueError

为了调试此问题,您应该:

  • 检查listaValores的形状和类型,确保它与模型的训练数据匹配。
  • 确保对训练数据应用的任何预处理步骤也应用于listaValores
  • 查看日志中的完整错误信息,正如Streamlit错误消息所建议的,以获取关于ValueError原因的更具体细节。

通常,调试此类错误涉及在错误发生之前的各个点打印出或记录数据的形状和类型,并确认输入数据满足模型的所有假设。

代码

https://github.com/zgpeace/pets-name-langchain/tree/develop

参考

https://blog.streamlit.io/7-ways-gpt-4-vision-can-uplevel-your-streamlit-apps/

相关文章:

  • 测试面试题(0101设计测试用例关键)
  • C#: 软件任务栏托盘图标添加关闭软件菜单等
  • Gin 框架之jwt 介绍与基本使用
  • excel怎么设置密码?轻松保护您的工作表
  • Mybatis之SqlSessionFactory详解
  • 【Java 设计模式】行为型之解释器模式
  • DAY35:贪心算法part4、860\406\452
  • 【Docker】docker安装jenkins
  • python数据生成excel文件实现
  • uniapp中mescroll的使用
  • 医院如何筛选安全合规的内外网文件交换系统?
  • uniapp如何添加多个表单数组?
  • iPhone 14支持NFC吗?如果支持,那么怎么启用
  • 华为radius认证
  • Qt 信号与槽
  • 【347天】每日项目总结系列085(2018.01.18)
  • JavaScript学习总结——原型
  • Java教程_软件开发基础
  • JS基础之数据类型、对象、原型、原型链、继承
  • Linux下的乱码问题
  • Markdown 语法简单说明
  • SegmentFault 2015 Top Rank
  • spring + angular 实现导出excel
  • XForms - 更强大的Form
  • 从重复到重用
  • 分布式任务队列Celery
  • 服务器之间,相同帐号,实现免密钥登录
  • 使用common-codec进行md5加密
  • 微信支付JSAPI,实测!终极方案
  • 验证码识别技术——15分钟带你突破各种复杂不定长验证码
  • 移动端解决方案学习记录
  • 由插件封装引出的一丢丢思考
  • Java性能优化之JVM GC(垃圾回收机制)
  • ​secrets --- 生成管理密码的安全随机数​
  • ​比特币大跌的 2 个原因
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (2)STM32单片机上位机
  • (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (day 12)JavaScript学习笔记(数组3)
  • (Mirage系列之二)VMware Horizon Mirage的经典用户用例及真实案例分析
  • (多级缓存)缓存同步
  • (论文阅读26/100)Weakly-supervised learning with convolutional neural networks
  • (十一)c52学习之旅-动态数码管
  • (算法二)滑动窗口
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • (译) 理解 Elixir 中的宏 Macro, 第四部分:深入化
  • (转)Oracle存储过程编写经验和优化措施
  • .form文件_SSM框架文件上传篇
  • .NET 4.0网络开发入门之旅-- 我在“网” 中央(下)
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • .NET CLR Hosting 简介
  • .NET CORE使用Redis分布式锁续命(续期)问题
  • .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions)
  • .NET高级面试指南专题十一【 设计模式介绍,为什么要用设计模式】
  • .net获取当前url各种属性(文件名、参数、域名 等)的方法