python dialogflow_v2 非常慢
python dialogflow_v2 is extremely slow
最佳,
目前我正在试验 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 个实体类型...
因此我的问题是:
- 这是一个错误吗?
- 是因为我使用的是非企业(免费)许可证吗?
- 是因为我设置连接的方式吗? (服务帐户文件?)
对我来说,好像不能做错那么多...
另外,当我通过云做同样的事情时...dialogflow.docs 网站:
然后它工作了,非常好......(我在 1-2 秒内收到回复)
亲切的问候
EDIT/EXTRA:
当我在没有 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和通过请求的共同点是服务帐户文件(两种方法都很慢),而云...dialogflow.docs网站使用oauth2方法...
- 如果您觉得这个问题很熟悉,那么您可能遇到了网络问题。尝试连接到另一个 Wi-Fi-network 或移动热点。然后应该就解决了....
最佳,
目前我正在试验 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 个实体类型...
因此我的问题是:
- 这是一个错误吗?
- 是因为我使用的是非企业(免费)许可证吗?
- 是因为我设置连接的方式吗? (服务帐户文件?)
对我来说,好像不能做错那么多...
另外,当我通过云做同样的事情时...dialogflow.docs 网站:
然后它工作了,非常好......(我在 1-2 秒内收到回复)
亲切的问候
EDIT/EXTRA:
当我在没有 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和通过请求的共同点是服务帐户文件(两种方法都很慢),而云...dialogflow.docs网站使用oauth2方法...
- 如果您觉得这个问题很熟悉,那么您可能遇到了网络问题。尝试连接到另一个 Wi-Fi-network 或移动热点。然后应该就解决了....