首页 > 解决方案 > 在 Flask 中尝试使用将 *args 作为参数的函数构建 api 时出现内部服务器错误

问题描述

我有一个返回向量的函数。

def class_vector(*categories):
    all_categories = categories
    model = Word2Vec.load(r"C:\Users\vector.model")
    my_dict = dict({})
    for idx, key in enumerate(model.wv.vocab):
        my_dict[key] = model.wv[key]
                   
    categories_vectors = dict({})
        
    for i in all_categories:
        if i.lower() in my_dict.keys():
            categories_vectors[i] = my_dict[i]
                  
    average_vector = np.mean(list(categories_vectors.values()), axis =0)
    average_vector =  average_vector.reshape(1, -1)

    return average_vector

现在我调用这个函数:

vector_generator_object = class_vector("apple", "banana")

这非常有效,并为我返回了一个水果向量。上述函数位于名为vectors_list.py 的.py 文件中

现在我想构建一个将水果名称作为用户输入并使用该class_vector函数返回计算向量的 api。

接口代码:

from flask import Flask, request
from vector_list import class_vector

app = Flask(__name__)

@app.route('/')
def status():
    fruits = request.args.getlist("param")
    str_fruits = ",".join(fruits)
    returned_vec = class_vector(*str_fruits )
    return returned_vec

现在我flask run从 cmd & 做curl "http://localhost:5000?param=apple&param=banana"。这让我回来了500 Internal Server Error。知道如何解决这个问题

标签: pythonrestflaskinternal-server-errorargs

解决方案


你的烧瓶代码看起来不错。我认为问题出在您的class_vector. 如果您可以添加相同的内容,这将很有帮助traceback


推荐阅读