Nano Hash - криптовалюты, майнинг, программирование

Spring Cloud Dataflow в Bluemix - пример ошибки Ticktock

Я экспериментировал с Spring Cloud Data Flow (версия 1.0.0.M2) в Cloud Foundry. В частности, я использую Bluemix для своей задачи.

Я использовал эти ссылки для успешного создания сервера Cloud Foundry: https://github.com/lshannon/spring-cloud-data-flow-demo

http://docs.spring.io/spring-cloud-dataflow-admin-cloudfoundry/docs/1.0.0.M2/reference/html/getting-started.html

Я запустил сервер, подключил локальную оболочку, успешно зарегистрировал процессоры, приемники и источники по умолчанию.

Используемые переменные среды ($1,$2,$3,$4) являются моими личными данными:

cf set-env $APP_NAME SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_API_ENDPOINT https://api.eu-gb.bluemix.net 
cf set-env $APP_NAME SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_ORGANIZATION $1
cf set-env $APP_NAME SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_SPACE $2
cf set-env $APP_NAME SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_DOMAIN eu-gb.mybluemix.net
cf set-env $APP_NAME SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_SERVICES redis01,rabbit
cf set-env $APP_NAME SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_USERNAME $3
cf set-env $APP_NAME SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_PASSWORD $4
cf set-env $APP_NAME SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_SKIP_SSL_VALIDATION false

Я дважды проверил эти переменные в экземпляре Bluemix, и все в порядке.

Затем я попытался воссоздать базовый пример потока с помощью оболочки, а именно:

stream create luketicktock --definition "time | log" --deploy

Вывод оболочки:

Created and deployed new stream 'luketicktock'

Однако я не вижу ни одного развернутого приложения Cloud Foundry, способного воспроизвести такой поток.

   2016-07-02T18:27:34.74+0200 [RTR/0]      OUT approver-dataflow-v2.eu-gb.mybluemix.net - [02/07/2016:16:27:34 +0000] "GET /streams/definitions?page=0&size=10 HTTP/1.1" 200 0 387 "http://approver-dataflow-v2.eu-gb.mybluemix.net/admin-ui/index.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36" 159.122.215.10:39562 x_forwarded_for:"87.14.219.53" x_forwarded_proto:"http" vcap_request_id:781a16d0-9b21-4549-4403-3b95744b936a response_time:0.046310147 app_id:59f2c573-1b54-4480-81e3-6a064260820a x_global_transaction_id:"1105927831"
2016-07-02T18:27:39.14+0200 [App/0]      OUT 2016-07-02 16:27:39.143 ERROR 29 --- [io-61588-exec-5] o.s.c.d.s.c.CloudFoundryAppDeployer      : Error creating app luketicktock-log
2016-07-02T18:27:39.14+0200 [App/0]      OUT org.springframework.security.oauth2.client.resource.OAuth2AccessDeniedException: Error requesting access token.
2016-07-02T18:27:39.14+0200 [App/0]      OUT    at org.springframework.security.oauth2.client.token.OAuth2AccessTokenSupport.retrieveToken(OAuth2AccessTokenSupport.java:145) ~[spring-security-oauth2-2.0.9.RELEASE.jar!/:na]
2016-07-02T18:27:39.14+0200 [App/0]      OUT    at org.springframework.security.oauth2.client.token.grant.password.ResourceOwnerPasswordAccessTokenProvider.obtainAccessToken(ResourceOwnerPasswordAccessTokenProvider.java:47) ~[spring-security-oauth2-2.0.9.RELEASE.jar!/:na]
2016-07-02T18:27:39.14+0200 [App/0]      OUT    at org.springframework.security.oauth2.client.OAuth2RestTemplate.acquireAccessToken(OAuth2RestTemplate.java:221) ~[spring-security-oauth2-2.0.9.RELEASE.jar!/:na]
2016-07-02T18:27:39.14+0200 [App/0]      OUT    at org.springframework.security.oauth2.client.OAuth2RestTemplate.getAccessToken(OAuth2RestTemplate.java:173) ~[spring-security-oauth2-2.0.9.RELEASE.jar!/:na]
2016-07-02T18:27:39.14+0200 [App/0]      OUT    at org.springframework.security.oauth2.client.OAuth2RestTemplate.createRequest(OAuth2RestTemplate.java:105) ~[spring-security-oauth2-2.0.9.RELEASE.jar!/:na]
2016-07-02T18:27:39.14+0200 [App/0]      OUT    at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:592) ~[spring-web-4.2.5.RELEASE.jar!/:4.2.5.RELEASE]
2016-07-02T18:27:39.14+0200 [App/0]      OUT    at org.springframework.security.oauth2.client.OAuth2RestTemplate.doExecute(OAuth2RestTemplate.java:128) ~[spring-security-oauth2-2.0.9.RELEASE.jar!/:na]
2016-07-02T18:27:39.14+0200 [App/0]      OUT    at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:572) ~[spring-web-4.2.5.RELEASE.jar!/:4.2.5.RELEASE]
2016-07-02T18:27:39.14+0200 [App/0]      OUT    at org.springframework.web.client.RestTemplate.getForObject(RestTemplate.java:280) ~[spring-web-4.2.5.RELEASE.jar!/:4.2.5.RELEASE]
2016-07-02T18:27:39.14+0200 [App/0]      OUT    at org.cloudfoundry.spring.util.AbstractSpringOperations.lambda$get$3(AbstractSpringOperations.java:85) ~[cloudfoundry-client-spring-2.0.0.M4.jar!/:2.0.0.M4]
2016-07-02T18:27:39.14+0200 [App/0]      OUT    at org.cloudfoundry.spring.util.AbstractSpringOperations.lambda$null$1(AbstractSpringOperations.java:66) ~[cloudfoundry-client-spring-2.0.0.M4.jar!/:2.0.0.M4]
2016-07-02T18:27:39.14+0200 [App/0]      OUT    at reactor.core.publisher.FluxYieldingEmitter$YieldingSignalEmitter.request(FluxYieldingEmitter.java:75) ~[reactor-core-2.5.0.M3.jar!/:na]
2016-07-02T18:27:39.14+0200 [App/0]      OUT    at reactor.core.util.DeferredSubscription.set(DeferredSubscription.java:71) ~[reactor-core-2.5.0.M3.jar!/:na]
2016-07-02T18:27:39.14+0200 [App/0]      OUT    at reactor.core.publisher.FluxSubscribeOn$SubscribeOnPipeline.onSubscribe(FluxSubscribeOn.java:129) ~[reactor-core-2.5.0.M3.jar!/:na]
2016-07-02T18:27:39.14+0200 [App/0]      OUT    at reactor.core.subscriber.SignalEmitter.start(SignalEmitter.java:170) ~[reactor-core-2.5.0.M3.jar!/:na]
2016-07-02T18:27:39.14+0200 [App/0]      OUT    at reactor.core.publisher.FluxYieldingEmitter.subscribe(FluxYieldingEmitter.java:43) ~[reactor-core-2.5.0.M3.jar!/:na]
2016-07-02T18:27:39.14+0200 [App/0]      OUT    at reactor.core.publisher.FluxFlatMap.trySubscribeScalarMap(FluxFlatMap.java:153) ~[reactor-core-2.5.0.M3.jar!/:na]
2016-07-02T18:27:39.14+0200 [App/0]      OUT    at reactor.core.publisher.FluxFlatMap.subscribe(FluxFlatMap.java:170) ~[reactor-core-2.5.0.M3.jar!/:na]
2016-07-02T18:27:39.14+0200 [App/0]      OUT    at reactor.core.publisher.FluxSubscribeOn$SourceSubscribeTask.run(FluxSubscribeOn.java:363) ~[reactor-core-2.5.0.M3.jar!/:na]
2016-07-02T18:27:39.14+0200 [App/0]      OUT    at reactor.core.publisher.Computations$ProcessorWorker.onNext(Computations.java:919) ~[reactor-core-2.5.0.M3.jar!/:na]
2016-07-02T18:27:39.14+0200 [App/0]      OUT    at reactor.core.publisher.Computations$ProcessorWorker.onNext(Computations.java:883) ~[reactor-core-2.5.0.M3.jar!/:na]
2016-07-02T18:27:39.14+0200 [App/0]      OUT    at reactor.core.publisher.WorkQueueProcessor$QueueSubscriberLoop.run(WorkQueueProcessor.java:842) ~[reactor-core-2.5.0.M3.jar!/:na]
2016-07-02T18:27:39.14+0200 [App/0]      OUT    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) ~[na:1.8.0_91]
2016-07-02T18:27:39.14+0200 [App/0]      OUT    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) ~[na:1.8.0_91]
2016-07-02T18:27:39.14+0200 [App/0]      OUT    at java.lang.Thread.run(Thread.java:745) ~[na:1.8.0_91]
2016-07-02T18:27:39.14+0200 [App/0]      OUT Caused by: org.springframework.web.client.HttpClientErrorException: 401 Unauthorized
2016-07-02T18:27:39.14+0200 [App/0]      OUT    at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:91) ~[spring-web-4.2.5.RELEASE.jar!/:4.2.5.RELEASE]
2016-07-02T18:27:39.14+0200 [App/0]      OUT    at org.springframework.security.oauth2.client.token.OAuth2AccessTokenSupport$AccessTokenErrorHandler.handleError(OAuth2AccessTokenSupport.java:244) ~[spring-security-oauth2-2.0.9.RELEASE.jar!/:na]
2016-07-02T18:27:39.14+0200 [App/0]      OUT    at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:641) ~[spring-web-4.2.5.RELEASE.jar!/:4.2.5.RELEASE]
2016-07-02T18:27:39.14+0200 [App/0]      OUT    at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:597) ~[spring-web-4.2.5.RELEASE.jar!/:4.2.5.RELEASE]
2016-07-02T18:27:39.14+0200 [App/0]      OUT    at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:565) ~[spring-web-4.2.5.RELEASE.jar!/:4.2.5.RELEASE]
2016-07-02T18:27:39.14+0200 [App/0]      OUT    at org.springframework.security.oauth2.client.token.OAuth2AccessTokenSupport.retrieveToken(OAuth2AccessTokenSupport.java:137) ~[spring-security-oauth2-2.0.9.RELEASE.jar!/:na]
2016-07-02T18:27:39.14+0200 [App/0]      OUT    ... 24 common frames omitted
2016-07-02T18:27:40.70+0200 [RTR/2]      OUT approver-dataflow-v2.eu-gb.mybluemix.net - [02/07/2016:16:27:40 +0000] "GET /streams/definitions?page=0&size=10 HTTP/1.1" 200 0 384 "http://approver-dataflow-v2.eu-gb.mybluemix.net/admin-ui/index.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36" 159.122.215.11:30146 x_forwarded_for:"87.14.219.53" x_forwarded_proto:"http" vcap_request_id:ecaaca33-cc82-4c4e-4cd8-c81a431c4f4f response_time:0.009798874 app_id:59f2c573-1b54-4480-81e3-6a064260820a x_global_transaction_id:"3460948721"
2016-07-02T18:27:43.51+0200 [App/0]      OUT 2016-07-02 16:27:43.519 ERROR 29 --- [io-61588-exec-5] o.s.c.d.s.c.CloudFoundryAppDeployer      : Error creating app luketicktock-time
2016-07-02T18:27:43.51+0200 [App/0]      OUT org.springframework.security.oauth2.client.resource.OAuth2AccessDeniedException: Error requesting access token.
2016-07-02T18:27:43.51+0200 [App/0]      OUT    at org.springframework.security.oauth2.client.token.OAuth2AccessTokenSupport.retrieveToken(OAuth2AccessTokenSupport.java:145) ~[spring-security-oauth2-2.0.9.RELEASE.jar!/:na]
2016-07-02T18:27:43.51+0200 [App/0]      OUT    at org.springframework.security.oauth2.client.token.grant.password.ResourceOwnerPasswordAccessTokenProvider.obtainAccessToken(ResourceOwnerPasswordAccessTokenProvider.java:47) ~[spring-security-oauth2-2.0.9.RELEASE.jar!/:na]
2016-07-02T18:27:43.51+0200 [App/0]      OUT    at org.springframework.security.oauth2.client.OAuth2RestTemplate.acquireAccessToken(OAuth2RestTemplate.java:221) ~[spring-security-oauth2-2.0.9.RELEASE.jar!/:na]
2016-07-02T18:27:43.51+0200 [App/0]      OUT    at org.springframework.security.oauth2.client.OAuth2RestTemplate.getAccessToken(OAuth2RestTemplate.java:173) ~[spring-security-oauth2-2.0.9.RELEASE.jar!/:na]
2016-07-02T18:27:43.51+0200 [App/0]      OUT    at org.springframework.security.oauth2.client.OAuth2RestTemplate.createRequest(OAuth2RestTemplate.java:105) ~[spring-security-oauth2-2.0.9.RELEASE.jar!/:na]
2016-07-02T18:27:43.51+0200 [App/0]      OUT    at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:592) ~[spring-web-4.2.5.RELEASE.jar!/:4.2.5.RELEASE]
2016-07-02T18:27:43.51+0200 [App/0]      OUT    at org.springframework.security.oauth2.client.OAuth2RestTemplate.doExecute(OAuth2RestTemplate.java:128) ~[spring-security-oauth2-2.0.9.RELEASE.jar!/:na]
2016-07-02T18:27:43.52+0200 [App/0]      OUT    at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:572) ~[spring-web-4.2.5.RELEASE.jar!/:4.2.5.RELEASE]
2016-07-02T18:27:43.52+0200 [App/0]      OUT    at org.springframework.web.client.RestTemplate.getForObject(RestTemplate.java:280) ~[spring-web-4.2.5.RELEASE.jar!/:4.2.5.RELEASE]
2016-07-02T18:27:43.52+0200 [App/0]      OUT    at org.cloudfoundry.spring.util.AbstractSpringOperations.lambda$get$3(AbstractSpringOperations.java:85) ~[cloudfoundry-client-spring-2.0.0.M4.jar!/:2.0.0.M4]
2016-07-02T18:27:43.52+0200 [App/0]      OUT    at org.cloudfoundry.spring.util.AbstractSpringOperations.lambda$null$1(AbstractSpringOperations.java:66) ~[cloudfoundry-client-spring-2.0.0.M4.jar!/:2.0.0.M4]
2016-07-02T18:27:43.52+0200 [App/0]      OUT    at reactor.core.publisher.FluxYieldingEmitter$YieldingSignalEmitter.request(FluxYieldingEmitter.java:75) ~[reactor-core-2.5.0.M3.jar!/:na]
2016-07-02T18:27:43.52+0200 [App/0]      OUT    at reactor.core.util.DeferredSubscription.set(DeferredSubscription.java:71) ~[reactor-core-2.5.0.M3.jar!/:na]
2016-07-02T18:27:43.52+0200 [App/0]      OUT    at reactor.core.publisher.FluxSubscribeOn$SubscribeOnPipeline.onSubscribe(FluxSubscribeOn.java:129) ~[reactor-core-2.5.0.M3.jar!/:na]
2016-07-02T18:27:43.52+0200 [App/0]      OUT    at reactor.core.subscriber.SignalEmitter.start(SignalEmitter.java:170) ~[reactor-core-2.5.0.M3.jar!/:na]
2016-07-02T18:27:43.52+0200 [App/0]      OUT    at reactor.core.publisher.FluxYieldingEmitter.subscribe(FluxYieldingEmitter.java:43) ~[reactor-core-2.5.0.M3.jar!/:na]
2016-07-02T18:27:43.52+0200 [App/0]      OUT    at reactor.core.publisher.FluxFlatMap.trySubscribeScalarMap(FluxFlatMap.java:153) ~[reactor-core-2.5.0.M3.jar!/:na]
2016-07-02T18:27:43.52+0200 [App/0]      OUT    at reactor.core.publisher.FluxFlatMap.subscribe(FluxFlatMap.java:170) ~[reactor-core-2.5.0.M3.jar!/:na]
2016-07-02T18:27:43.52+0200 [App/0]      OUT    at reactor.core.publisher.FluxSubscribeOn$SourceSubscribeTask.run(FluxSubscribeOn.java:363) ~[reactor-core-2.5.0.M3.jar!/:na]
2016-07-02T18:27:43.52+0200 [App/0]      OUT    at reactor.core.publisher.Computations$ProcessorWorker.onNext(Computations.java:919) ~[reactor-core-2.5.0.M3.jar!/:na]
2016-07-02T18:27:43.52+0200 [App/0]      OUT    at reactor.core.publisher.Computations$ProcessorWorker.onNext(Computations.java:883) ~[reactor-core-2.5.0.M3.jar!/:na]
2016-07-02T18:27:43.52+0200 [App/0]      OUT    at reactor.core.publisher.WorkQueueProcessor$QueueSubscriberLoop.run(WorkQueueProcessor.java:842) ~[reactor-core-2.5.0.M3.jar!/:na]
2016-07-02T18:27:43.52+0200 [App/0]      OUT    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) ~[na:1.8.0_91]
2016-07-02T18:27:43.52+0200 [App/0]      OUT    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) ~[na:1.8.0_91]
2016-07-02T18:27:43.52+0200 [App/0]      OUT    at java.lang.Thread.run(Thread.java:745) ~[na:1.8.0_91]
2016-07-02T18:27:43.52+0200 [App/0]      OUT Caused by: org.springframework.web.client.HttpClientErrorException: 401 Unauthorized
2016-07-02T18:27:43.52+0200 [App/0]      OUT    at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:91) ~[spring-web-4.2.5.RELEASE.jar!/:4.2.5.RELEASE]
2016-07-02T18:27:43.52+0200 [App/0]      OUT    at org.springframework.security.oauth2.client.token.OAuth2AccessTokenSupport$AccessTokenErrorHandler.handleError(OAuth2AccessTokenSupport.java:244) ~[spring-security-oauth2-2.0.9.RELEASE.jar!/:na]
2016-07-02T18:27:43.52+0200 [App/0]      OUT    at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:641) ~[spring-web-4.2.5.RELEASE.jar!/:4.2.5.RELEASE]
2016-07-02T18:27:43.52+0200 [App/0]      OUT    at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:597) ~[spring-web-4.2.5.RELEASE.jar!/:4.2.5.RELEASE]
2016-07-02T18:27:43.52+0200 [App/0]      OUT    at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:565) ~[spring-web-4.2.5.RELEASE.jar!/:4.2.5.RELEASE]
2016-07-02T18:27:43.52+0200 [App/0]      OUT    at org.springframework.security.oauth2.client.token.OAuth2AccessTokenSupport.retrieveToken(OAuth2AccessTokenSupport.java:137) ~[spring-security-oauth2-2.0.9.RELEASE.jar!/:na]
2016-07-02T18:27:43.52+0200 [App/0]      OUT    ... 24 common frames omitted

Похоже, что серверу потока данных не удается запросить токен доступа к Bluemix для создания потока. Я сделал что-то не так?

Спасибо за поддержку!


  • Я просто попробовал с сервером версии 1.0.0.M3 на Bluemix и получил ту же ошибку. На всякий случай я попробовал использовать пробную учетную запись на Pivotal PAAS, и все работает отлично. Кажется, проблема связана с реализацией Cloud Foundry в Bluemix ... возможно, это связано с github.com/cloudfoundry/cf-java-client/issues/513 04.07.2016

Ответы:


1

Обычно это наблюдается при развертывании в Cloud Foundry без действующего самозаверяющего сертификата. Если это в вашей среде разработки, вы можете пропустить проверку SSL следующим образом.

cf set-env $APP_NAME SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_SKIP_SSL_VALIDATION true

На сегодняшний день «ядро» Spring Cloud Data Flow находится на уровне RC1, а Cloud Foundry реализация находится в M3. Как указано в блоге RC1, наряду с изменениями терминологии было внесено несколько новых улучшений, поэтому настоятельно рекомендуется выполнить обновление до последней версии.

05.07.2016
  • К сожалению, я тоже безуспешно пробовал этот подход. Дело в том, что единственная версия, которая работает, - это 1.0.0.M1, потому что она предоставляет: SECURITY_OAUTH2_CLIENT_ACCESS_TOKEN_URI и SECURITY_OAUTH2_CLIENT_USER_AUTHORIZATION_URI, которые в случае Bluemix соответственно: https://login.eu-gb.bluemix.net/UAALoginServerWAR/oauth/token и https://login.eu-gb.bluemix.net/UAALoginServerWAR/oauth/authorize. К сожалению, более поздние версии не позволяют этого. См. ref 05.07.2016
  • См. Комментарий в # 772 06.07.2016
  • К сожалению, мне не удалось решить проблему с помощью ваших комментариев. Я подозреваю, что проблема связана с базовым cf-client-java, используемым сервером DataFlow, который не проходит процедуру входа в среду Bluemix, как упоминалось здесь. 06.07.2016
  • Просто попробовал с ночной сборкой 1.0.0.SNAPSHOT все еще безуспешно. Часть data-server.yml относится к защите вашего экземпляра потока данных с помощью oauth, не подключающегося к системе управления Bluemix. Так что теперь я ничего не понимаю :( 08.07.2016
  • Как вы уже знаете, команда cf-java-client уже расследует это через cloudfoundry / cf-java-client / issues # 513 - как только проблема будет решена, вы можете повторить развертывание потока. 08.07.2016
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..