【问题标题】:Connect Dialogflow with Google BigQuery via Cloudfunctions with Python使用 Python 通过 Cloudfunctions 将 Dialogflow 与 Google BigQuery 连接起来
【发布时间】:2019-09-01 09:59:47
【问题描述】:

我是 Python 和云函数的新手,但我看到可以通过 Cloudfunctions 连接 Dialogflow 和 GoogleBigQuery,但我不明白如何做到这一点,有人可以解释一下如何做到这一点或者我的方式尝试它至少接近?

import flask
from flask import Flask
from flask import request
from flask import make_response

app = Flask(__name__)
@app.route('/prueba_1', methods=['POST'])
def prueba_1():
    import json
    import pandas as pd
    ss = pd.read_gbq("SELECT something FROM bigquery_table LIMIT 1","arbor-209819")
    ll = {
        "speech" : ss.to_json(),
        "displayText": ss.to_json(),
        "source": "apiai-weather-webhook-sample"
    }
    res = json.dumps(ll, indent=4)
    r = make_response(res)
    r.headers['Content-Type'] = 'application/json'
    return r

if __name__ == '__main__':
    app.run(debug=True)

非常感谢。

【问题讨论】:

  • 嗨杰弗,谢谢你的问题。尝试运行代码时是否遇到任何错误?如果不能,您能否更具体地说明您要解决的问题。

标签: python google-bigquery google-cloud-firestore connection google-cloud-functions


【解决方案1】:

您已关闭,您的函数需要接受请求。此外,用于云功能的 python 消除了代码中的大量开销(尽管您仍然需要它进行本地测试)。您可以关注this quickstart 以帮助您入门。

这是一个如何编写的示例:

from flask import jsonify
import pandas as pd

def prueba_1(request):

    # Your code

    ss = pd.read_gbq('SELECT * FROM my_dataset.my_table')

    # More code

    return jsonify(my_dictionary)

jsonify 接受一个 dict 对象并返回一个 application/json 响应。请记住在您的要求中添加 pandas 和 pandas-gbq。

最后,如果您使用云功能为 Dialogflow 设置custom webhook,请记住检查requestresponse 格式。

【讨论】:

    猜你喜欢
    • 2021-05-03
    • 1970-01-01
    • 2020-03-30
    • 1970-01-01
    • 1970-01-01
    • 2020-10-13
    • 1970-01-01
    • 2021-12-08
    • 2017-06-03
    相关资源
    最近更新 更多