我正在尝试创建一个 Web 应用程序,该应用程序接收来自 POST 请求的输入,并根据该输入提供一些 ML 预测。
由于预测模型相当繁重,我不希望用户等待计算完成。相反,我将大量计算委托给 Celery 任务,用户可以稍后检查结果。
我正在使用带有 Celery、Redis 和 Flower 的简单 Flask 应用程序。
我的view.py:
@ns.route('predict/')
class Predict(Resource):
...
def post(self):
...
do_categorize(data)
return jsonify(success=True)
Run Code Online (Sandbox Code Playgroud)
我的tasks.py文件看起来像这样:
from ai.categorizer import Categorizer
categorizer = Categorizer(
model_path='category_model.h5',
tokenizer_path='tokenize.joblib',
labels_path='labels.joblib'
)
@task()
def do_categorize(data):
result = categorizer.predict(data)
print(result)
# Write result to the DB
...
Run Code Online (Sandbox Code Playgroud)
我在课堂predict()上的方法Categorizer:
def predict(self, value):
K.set_session(self.sess)
with self.sess.as_default():
with self.graph.as_default():
prediction = self.model.predict(np.asarray([value], dtype='int64'))
return prediction
Run Code Online (Sandbox Code Playgroud)
我像这样运行芹菜:
celery worker …Run Code Online (Sandbox Code Playgroud) 我有一个问题困扰了我好几天。我正在尝试创建一个从 Firestore 数据库读取的 Firebase Cloud 函数。
我的 Firestore 数据库如下所示:
问题是我不能users这样列出:
db.collection('users').get().then((snapshot) => snapshot.forEach(...));
Run Code Online (Sandbox Code Playgroud)
如果我尝试这样做,我会得到空响应,就像我的集合中没有用户一样users。
但我尝试直接访问用户,它有效:
await db.collection('users/5CZxgu8nmNXu2TgplwOUdOIt8e33/receipts').get()
Run Code Online (Sandbox Code Playgroud)
我的完整代码:
import * as functions from 'firebase-functions';
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
exports.cat = functions.https.onRequest(async (req, res) => {
const receiptList: any = [];
const db: Firestore = admin.firestore();
const usersRef = await db.collection('users').get();
console.log(usersRef.empty); // Returns true
const receiptsRef = await db
.collection('users/5CZxgu8nmNXu2TgplwOUdOIt8e33/receipts')
.get();
receiptsRef.forEach((receipt: any) => {
console.log(receipt);
receiptList.push(receipt);
// Here I can access data
});
res.send(receiptList); …Run Code Online (Sandbox Code Playgroud) javascript firebase google-cloud-functions google-cloud-firestore