python dialogflow_v2 is extremely slow



Best,

目前我正在试验dialogflow_v2包,我不得不说,在大多数情况下它非常慢。
如此缓慢,以至于我怀疑放弃这艘船并寻找另一个聊天机器人 API。

基本上我正在做的是:

我在包中加载:

import dialogflow_v2
from google.oauth2 import service_account

我从服务帐户 json 文件创建凭据

cred_loc = 'first-planet-****************.json'
cred = service_account.Credentials.from_service_account_file(cred_loc)

我创建,agents_client,intents_client,entity_types_client

agents_client = dialogflow_v2.AgentsClient(credentials = cred)
agents_parent = agents_client.project_path(cred._project_id)
intents_client = dialogflow_v2.IntentsClient(credentials = cred)
intents_parent = intents_client.project_agent_path(cred.project_id)
entity_types_client = dialogflow_v2.EntityTypesClient(credentials = cred)
entity_types_parent = entity_types_client.project_agent_path(cred.project_id)

然后痛苦开始了:

搜索代理需要 24 秒

agents = []
for s in agents_client.search_agents(agents_parent).pages:
try:
agents.append(s.next())
except:
pass

列出意向需要 36 秒

intents_name_to_id = {}
for element in intents_client.list_intents(intents_parent, intent_view='INTENT_VIEW_FULL'):
intents_name_to_id[element.display_name] = element.name

列出实体类型需要 33 秒

entity_name_to_id = {}
for element in entity_types_client.list_entity_types(entity_types_parent):
entity_name_to_id[element.display_name] = element.name

并不是说它是一个大项目,相反,它是一个具有 1 个代理、2 个意图和 2 个实体类型的新项目......

因此,我的问题是:

  1. 这是一个错误吗?
  2. 是因为我使用的是非企业(免费(许可证吗?
  3. 是因为我设置连接的方式吗?(服务帐户文件?

对我来说,似乎我不能做那么多错事......

另外,当我通过云做同样的事情时...dialogflow.docs网站:

https://cloud.google.com/dialogflow/docs/reference/rest/v2/projects.agent.intents/list?apix_params=%7B%22parent%22%3A%22projects%2Ffirst-planet-268313%2Fagent%22%7D

然后它工作,非常好...(我在 1-2 秒内收到回复(

亲切问候


编辑/额外:
当我在没有dialogflow_v2的情况下做同样的事情时,它同样缓慢......

from google.oauth2 import service_account
import google.auth.transport.requests
cred_loc = 'first-planet-****.json'
SCOPES = ['https://www.googleapis.com/auth/dialogflow']
cred = service_account.Credentials.from_service_account_file(cred_loc,scopes=SCOPES)

cred.refresh(google.auth.transport.requests.Request())
parent = f'projects/{cred.project_id}'
header = {'Authorization': 'Bearer ' + cred.token}
search = requests.get(f'https://content-dialogflow.googleapis.com/v2/{parent}/agent:search', headers=header)
json.loads(search.content)

因此,dialogflow_v2和 via 请求的共同因素是服务帐户文件(两种方法都很慢(,而云...dialogflow.docs 网站使用 OAuth2 方法...

  • 如果您熟悉此问题,则可能是网络问题。尝试连接到其他 Wi-Fi 网络或移动热点。然后它应该被解决。

最新更新