Best,
В данный момент я экспериментирую с пакетом dialogflow_v2 и должен сказать, что в большинстве случаев он очень медленный.
Настолько медленный, что я сомневаюсь покинуть этот корабль и искать другой chatbot-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, intets_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 веб-сайт:
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 и через запрос - это файл учетной записи службы (оба метода работают медленно), в то время как облако ... Веб-сайт dialogflow.docs использует метод oauth2 ...