GravityAI部署AI时抛出"argument subcommand: invalid choice"错误求助
问题排查与修复方案
错误原因分析
你遇到的错误提示说明平台调用脚本时传入了临时文件路径作为参数,但脚本未设计处理这类参数的逻辑,同时代码本身存在几处语法错误,导致无法响应平台的执行请求。
代码中的具体问题及修复
1. 函数缩进错误
grav.wait_for_requests(process) 被错误放在process函数内部,导致监听函数永远不会执行,脚本启动后直接结束。需将其移到函数外部。
2. DataFrame列选取语法错误
output_df = input_df(['id', 'category']) 写法错误,选取多列需用双层方括号:output_df = input_df[['id', 'category']]。
3. CSV保存方法名错误
output_df.csv(outPath, index=False) 应为output_df.to_csv(outPath, index=False),to_csv才是Pandas保存CSV的正确方法。
4. 拼写错误
label_encder 应为label_encoder(少写一个o),虽不影响当前加载,但会影响后续代码维护。
修复后的完整代码
from gravityai import gravityai as grav import pickle import pandas as pd model = pickle.load(open('financial_text_classifier.pkl', 'rb')) tfidf_vectorizer = pickle.load(open('financial_text_vectorizer.pkl','rb')) label_encoder = pickle.load(open('financial_text_encoder.pkl', 'rb')) def process(inPath, outPath): # 读取输入CSV文件 input_df = pd.read_csv(inPath) # 转换文本特征 features = tfidf_vectorizer.transform(input_df['body']) # 预测类别 predictions = model.predict(features) # 将预测结果转换为原始类别名称 input_df['category'] = label_encoder.inverse_transform(predictions) # 选取需要输出的列 output_df = input_df[['id', 'category']] # 保存结果到CSV output_df.to_csv(outPath, index=False) # 启动平台请求监听 grav.wait_for_requests(process)
平台配置检查
确认上传的json配置文件中,executable字段指向脚本文件名classify_financial_articles.py,无额外错误参数配置。平台会依据该配置调用脚本,配置错误也可能导致传入无效参数。
内容的提问来源于stack exchange,提问作者Danny
相关产品推荐
相关产品推荐

