Dialogflow webhook 部署在Google cloud functions上调用api的代码:
设置Entry point : webhook
import json
import requests
import re
api_key = "**********"
chat_bot_id = "*********"
url = "***************"
def webhook(request):
try:
req = request.get_json() # 轉換成 dict 格式
user_message = req['text'] # 取得用户消息
if user_message=='Osteoporosis AI Expert':
a = {
"fulfillment_response": {
"messages": [{"text": {"text": ['Hey']}}]
}
}
else:
# 调用OpenAI API
openai_response = call_openai_api(user_message)
response_text = openai_response['response']
if "我不知道" in response_text:
response_text += "如果您想进一步了解情况,请联系********"
# 构建回复
a = {
"fulfillment_response": {
"messages": [{"text": {"text": [response_text]}}]
}
}
print(a)
# return jsonify(fulfillment_response)
return a
except:
print(request.args)
return {"fulfillment_response": {"messages": [{"text": {"text": ['An error occurred.']}}]}}
def call_openai_api(prompt):
headers = {
"X-Api-Key": api_key,
"Content-Type": "application/json"
}
data = {
"chatId": None,
"chatBotId": chat_bot_id,
"message": prompt,
"stream": False
}
response = requests.post(url, headers=headers, json=data)
return response.json()