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)
函数调用。以下是我们可以推断的信息:
-
ValueError
:当一个函数接收到一个类型正确但值不适当的参数,或者当存在函数未设置处理的条件时,就会出现这种类型的错误。 -
LightGBM
与Scikit-learn
集成:回溯显示错误发生在预测步骤中,很可能涉及到使用LightGBM(lightgbm/sklearn.py
)的机器学习模型。LightGBM
是一个使用基于树的学习算法的梯度提升框架,在这种情况下似乎与Scikit-learn
集成。 -
数据输入问题:调用了
predict
或predict_proba
函数,这表明问题可能与传递给模型进行预测的输入数据(listaValores
)有关。这类错误的常见原因可能包括:
- 形状不匹配:模型期望输入数据具有一定的形状,但
listaValores
与此形状不匹配。 - 预处理不匹配:数据未按照与训练数据相同的方式进行预处理(缩放/标准化/编码)。
- 数据中存在模型无法处理的缺失值或无限值。
-
模型期望:错误可能表明模型对输入数据有一定的期望,但这些期望没有得到满足。例如,模型可能需要数值输入,但它接收到的是需要编码的分类数据。
-
_LGBMCheckArray
函数:这是一个内部LightGBM
函数调用,用于验证输入数组。accept_sparse=True
和force_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/