Я портирую на DialogFlow V2 и хотел бы попробовать версии агента.Прочтите об этом здесь: https://cloud.google.com/dialogflow/docs/agents-versions
Дело в том, что я не знаю, как это влияет на конфигурацию учетных данных, так как я не смог ничего найти в клиентской библиотеке.Текущий код, который у меня есть для аутентификации:
public DialogFlowEngine(DialogFlowConfig config) throws IOException {
this.config = config;
GoogleCredentials credentials = GoogleCredentials.fromStream(
new ByteArrayInputStream(config.getClientCredentials().getBytes())
);
this.sessionSettings =
SessionsSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(credentials))
.build();
this.projectId = ((ServiceAccountCredentials)credentials).getProjectId();
}
Затем при создании сеанса:
try (SessionsClient sessionsClient = SessionsClient.create(this.sessionSettings)) {
SessionName session = SessionName.of(projectId, requestId);
...
Я видел, что если я хочу использовать функцию контроля версий агента с помощью RAWостальная конечная точка, которую я должен был бы опубликовать на URL-адресе, подобном "https://dialogflow.googleapis.com/v2beta1/projects/small-talk-dfghk/agent/environments/development/users/-/sessions/e5472b8a-9feb-43f1-8213-648215960d22:detectIntent"
Однако, судя по API, такая операция не может быть выполнена, поскольку декомпилированный класс SessionName соответствует URL-адресу, например так:
private static final PathTemplate PATH_TEMPLATE = PathTemplate.createWithoutUrlEncoding("projects/{project}/agent/sessions/{session}");
Есть ли способ, которым мы могли бы сделать это?Как бы вы порекомендовали настроить DialogFlow между средами (dev, qa, staging, prod ...) в противном случае?
Даже если бы у меня был правильный вызов API, я все еще задаюсь вопросом ... Могут ли разные версии агента иметьразные учетные данные Json для каждой среды?
Спасибо за помощь!