1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/iflytek-aiges

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Ядро сервиса AI Engine

Клонирование Звезды Статус сборки GitHub версия выпуска GitHub вкладчики Лицензия: Apache2.0

Официальная документация

👉👉👉Перейти

Введение

AIGES — это центральный компонент платформы Athena Serving Framework, созданный специально для разработчиков AI моделей и движков. Интегрировав AIGES, вы сможете быстро развернуть свои AI модели и движки и использовать сопутствующие системы управления сетью, распределением, данными и другими. Athena Serving Framework стремится ускорить процесс облачной службы AI моделей и движков, обеспечивая стабильность через архитектуру cloud-native. Вам не придётся беспокоиться о низкоуровневой инфраструктуре и управлении службами, чтобы эффективно, безопасно развертывать, обновлять, масштабировать, управлять и мониторить ваши модели и движки.## Новое!!!

👉👉👉Быстрый обзор различий между режимами CGo и gRPC

Общая архитектура

img

Процесс использования (AthenaServing)

img

Основные характеристики

  • Поддержка моделирования вывода в виде RPC-сервиса (Serving-фреймворк преобразует его в HTTP-сервис)
  • Поддержка выполнения кода на C
  • Поддержка выполнения кода на Python
  • Поддержка однократной (не поточной) и поточной обработки данных
  • Поддержка центра конфигураций и открытия служб
  • Поддержка конфигурации балансировки нагрузки
  • Поддержка HTTP/gRPC-сервисов
  • Возможность переключения между режимами CGo и gRPC [способ связи Go и Python]

Библиотека разработчика (SDK)

👉👉👉Python

Протокол AI

См.: 👉👉👉ase-proto

Подготовка окружения

Для Python используйте версию 3.9+ или скачайте наш образ Docker

Следующий процесс можно выполнять в контейнере (без использования GPU):

docker run -itd --name mnist2 -p gst:1888 public.ecr.aws/iflytek-open/aiges-gpu:10.1-1.17-3.9.13-ubuntu1804-v3.0-alpha11 bash

Вы также можете подготовить свое окружение и запустить AIGES с помощью загруженного двоичного файла.### 0. Установка SDK pip3 install aiges==0.5.0 -i https://pypi.python.org/simple

1. Скачивание загрузчика

wget https://github.com/iflytek/aiges/releases/download/v3.0-alpha11/aiges_3.0-alpha11_linux_amd64.tar.gz

Инициализация проекта Python

Создайте проект с названием mnist через команду aiges.

python3 -m aiges create -n mnist

2. Инициализация структуры проекта

root# tree mnist/
mnist/
├── Dockerfile
├── README.md
├── requirements.txt
└── wrapper
    ├── test_data
    │   └── test.png
    └── wrapper.py

3. Распаковка загрузчика [по умолчанию, образ Docker уже содержит AIservice, вы можете использовать следующую команду для обновления последней версии двоичного файла AIservice]

tar zxvf aiges_3.0-alpha11_linux_amd64.tar.gz -C mnist

Первый запуск:

root@505a3a0e670c:/home/aiges# ./AIservice
Запуск загрузчика:

- В локальном режиме:
1: ./AIservice -init , инициализирует конфигурационный файл aiges.toml (если он существует, то замена не происходит)
2: ./AIservice -m=0 , используется только для локального режима
3: ./AIservice -mnist , загружает mnistdemo
- В режиме центра конфигураций (в рамках открытого доступа будет удалено)
- Дополнительные параметры: ./AIservice -h

Структура проекта после этого шага:

➜  mnist git:(master) ✗ tree -L 3 .
.
├── AIservice
├── Dockerfile
├── include
│   ├── type.h
│   └── wrapper.h
├── library
│   ├── libahsc.so
│   ├── libIce.so.34
│   └── libIceUtil.so.34
├── README.md
├── requirements.txt
└── wrapper
    ├── test_data
    │   └── test.png
    └── wrapper.py
```### 4. Конфигурация режима PythonGrpc и инициализация aiges

Выполните последовательно следующие команды:

* ```export AIGES_PLUGIN_MODE=python```
* ```./AIservice -init```  [этот шаг создает конфигурационный файл `aiges.toml` в текущей директории]
* ```./AIservice -m 0 -c aiges.toml  -s svcName```

При запуске движка результат будет таким:[обратите внимание, что имя сервиса `svcName` должно совпадать с секцией в конфигурационном файле `aiges`, по умолчанию это `svcName`]```bash
root@012d31456c50:/home/aiges/mnist# . /AIservice -m 0 -c aiges.toml -s svcName
2022/11/15 18:22:01 widgetpy.go:26: Начало работы в режиме Python:
конфигурация config.toml версия:
2022/11/15 18:22:01 utils.NewLocalLog успешна. -> УРОВЕНЬ: отладка, ФАЙЛ:./log/aiges.log, МАКС_РАЗМЕР:3, МАКС_ЗАПИСЕЙ:3, МАКС_ВОЗРАСТ:3
2022/11/15 18:22:01 host2ip->ip:0.0.0.0,port:5090
2022/11/15 18:22:01 finderSwitch:0,finderSwitchErr:<nil>
2022/11/15 18:22:01 готов к работе с hermes.
2022/11/15 18:22:02 NewSessionManager успешна.
2022/11/15 18:22:02 NewSidGenerator успешна.
2022/11/15 18:22:02 fn:AbleTrace, able:false
2022/11/15 18:22:02 готов к работе с finder.
2022/11/15 18:22:02 готов к работе с метриками.
2022/11/15 18:22:02 метрики отключены
2022/11/15 18:22:02 готов к работе с ограничителем скорости.
2022/11/15 18:22:02 готов к работе с менеджером CPU.
2022/11/15 18:22:02 готов к работе с проверкой BVT.
2022/11/15 18:22:02 пространство имён не установлено, используется значение по умолчанию
2022/11/15 18:22:02 BVT отключена
заголовки прошли список: []
2022-11-15T18:22:02.476+0800 [ПРЕДУПРЕЖДЕНИЕ] python-plugin: плагин настроен с пустым SecureConfig
2022-11-15T18:22:02.477+0800 [ОТЛАДКА] python-plugin: запуск плагина: путь=/bin/sh аргументы=[sh, -c, "/usr/bin/env python -m aiges.serve"]
2022-11-15T18:22:02.478+0800 [ОТЛАДКА] python-plugin: плагин запущен: путь=/bin/sh pid=126
2022-11-15T18:22:02.478+0800 [ОТЛАДКА] python-plugin: ожидание адреса RPC: путь=/bin/sh
2022-11-15T18:22:02.653+0800 [ОТЛАДКА] python-plugin: использование плагина: версия=1
2022-11-15T18:22:02.655+0800 [ОТЛАДКА] python-plugin.stdio: получено EOF, завершение цикла приема: ошибка="rpc error: code = Unimplemented desc = Method not found!"
2022-11-15T18:22:02.656+0800 [ОТЛАДКА] python-plugin.sh: root:wrapperInit:107 - INFO: Импорт модуля из wrapper.py: wrapper
2022-11-15T18:22:02.657+0800 [ОТЛАДКА]

Все изменения были сделаны согласно правилам перевода, указанным выше.657+0800 [ОТЛАДКА] python-plugin.sh: root:wrapperInit:119 - ОШИБКА: модуль 'wrapper' не имеет атрибута 'Wrapper' 2022/11/15 18:22:02 grpc.go:20: Вызов WrapperInit провалился... ret: 30001 Это потому что наш wrapper ещё не готов

# Это потому что наш wrapper ещё не готов
```#### 5. Напишите логическую обёртку для проекта MNIST

Скачайте демонстрационный проект mnist:

* ```./AIservice -mnist```

По умолчанию будет скачана и распакована версия проекта `https://github.com/iflytek/aiges_demo.git`, которая будет распакована в текущую директорию `aiges_demo`.

Если данная команда долго не отвечает, это может быть связано с проблемами блокировки со стороны GFW. В таком случае вы можете скачать её вручную по адресу ```https://github.com/iflytek/aiges_demo/archive/refs/tags/v1.0.0.zip```

Распакуйте архив в директорию aiges_demo. Обратите внимание, что при ручной распаковке возможно наличие дополнительной папки aiges_demo_1.0.0.

Удалите директорию wrapper, созданную по умолчанию в текущей папке mnist, и замените её содержимым из демонстрационного проекта.

* ```rm -r wrapper```
* ```cp -ra aiges_demo/mnist/wrapper/ ./```
* ```cp -ra aiges_demo/mnist/requirements.txt mnist/```
* ```pip install -r requirements.txt```
* ```export AIGES_PLUGIN_MODE=python```
* ```export PYTHONPATH=/home/aiges/mnist/wrapper```
* ```Запустите движок снова ./AIservice -m 0 -c aiges.toml -s svcName```

Стандартный вывод:```bash
2022/11/15 21:26:29 widgetpy.go:26: Начало использования Python :
config.toml версия:
2022/11/15 21:26:29 utils.NewLocalLog успех. -> УРОВЕНЬ_ЛОГИРОВАНИЯ:debug, ИМЯ_ФАЙЛА_LOG:./log/aiges.log, MAXSIZE:3, MAXBACKUPS:3, MAXAGE:3
2022/11/15 21:26:29 host2ip->ip:0.0.0.0,port:5090
2022/11/15 21:26:29 finderSwitch:0,finderSwitchErr:<nil>
2022/11/15 21:26:29 готовы к работе с hermes.
2022/11/15 21:26:30 NewSessionManager успех.
2022/11/15 21:26:30 NewSidGenerator успех.
2022/11/15 21:26:30 fn:AbleTrace, able:false
2022/11/15 21:26:30 готовы к работе с finder.
2022/11/15 21:26:30 готовы к работе с метриками.
2022/11/15 21:26:30 метрики отключены
2022/11/15 21:26:30 готовы к работе с rateLimiter.
2022/11/15 21:26:30 готовы к работе с vCpuManager.
2022/11/15 21:26:30 готовы к работе с bvtVerifier.
2022/11/15 21:26:30 пространство имён не задано, используется значение по умолчанию
2022/11/15 21:26:30 bvt отключена
header pass list: []
[GIN-debug] [WARNING] Создание экземпляра движка Gin с уже присоединёнными middleware Logger и Recovery.
```[GIN-debug] [ВНИМАНИЕ] Запуск в режиме "debug". В производственной среде используйте режим "release".
  - использование окружения: export GIN_MODE=release
  - использование кода: gin.SetMode(gin.ReleaseMode)

```[GIN-debug] Получение GET    /v1/svcName               --> github.com/xfyun/aiges/httproto.(*Server).ginHandler.func1 (3 обработчика)
  [GIN-debug] Отправка POST   /v1/svcName               --> github.com/xfyun/aiges/httproto.(*Server).ginHandler.func1 (3 обработчика)
  [GIN-debug] Изменение PUT    /v1/svcName               --> github.com/xfyun/aiges/httproto.(*Server).ginHandler.func1 (3 обработчика)
  [GIN-debug] Обновление PATCH  /v1/svcName               --> github.com/xfyun/aiges/httproto.(*Server).ginHandler.func1 (3 обработчика)
  [GIN-debug] Запрос HEAD   /v1/svcName               --> github.com/xfyun/aiges/httproto.(*Server).ginHandler.func1 (3 обработчика)
  2022-11-15T21:26:30.116+0800 [ПРЕДУПРЕЖДЕНИЕ] python-plugin: плагин настроен с пустым SecureConfig
  2022-11-15T21:26:30.116+0800 [ОБСЛУЖИВАНИЕ] python-plugin: запуск плагина: path=/bin/sh args=[sh, -c, "/usr/bin/env python -m aiges.serve"]
  [GIN-debug] Опция OPTIONS /v1/svcName               --> github.com/xfyun/aiges/httproto.(*Server).ginHandler.func1 (3 обработчика)
  [GIN-debug] Удаление DELETE /v1/svcName               --> github.com/xfyun/aiges/httproto.(*Server).ginHandler.func1 (3 обработчика)
  [GIN-debug] Подключение CONNECT /v1/svcName               --> github.com/xfyun/aiges/httproto.(*Server).ginHandler.func1 (3 обработчика)
  [GIN-debug] Отслеживание TRACE  /v1/svcName               --> github.com/xfyun/aiges/httproto.(*Server).ginHandler.func1 (3 обработчика)
  [GIN-debug] Получение GET    /test.json                --> github.com/xfyun/aiges/httproto.getDemo (3 обработчика)
  2022-11-15T21:26:30.116+0800 [ОБСЛУЖИВАНИЕ] python-plugin: плагин запущен: path=/bin/sh pid=1081
  2022-11-15T21:26:30.116+0800 [ОБСЛУЖИВАНИЕ] python-plugin: ожидание адреса RPC: path=/bin/sh
```[GIN-debug] Получение GET    /swagger/*any             --> github.com/swaggo/gin-swagger.CustomWrapHandler.func1 (3 обработчика)
2022-11-15T21:26:30.242+0800 [ОБСЛУЖИВАНИЕ] python-plugin: использование плагина: версия=1
2022-11-15T21:26:30.244+0800 [ОБСЛУЖИВАНИЕ] python-plugin.stdio: получено EOF, прекращение цикла приема данных: err="ошибка rpc: метод не реализован!"
2022-11-15T21:26:30.245+0800 [ОБСЛУЖИВАНИЕ] python-plugin.sh: root:wrapperInit:107 - ИНФОРМАЦИЯ: импортирование модуля из wrapper.py: wrapper
2022-11-15T21:26:31.642+0800 [ОБСЛУЖИВАНИЕ] python-plugin.sh: root:_check_path:151 - ВНИМАНИЕ: <класс 'FileNotFoundError'>
2022-11-15T21:26:31.643+0800 [ОБСЛУЖИВАНИЕ] python-plugin.sh: root:wrapperInit:112 - ИНФОРМАЦИЯ: Новый пользовательский обертыватель создан успешно. Запуск вызова функций инициализации пользователя...
2022-11-15T21:26:31.643+0800 [ОБСЛУЖИВАНИЕ] python-plugin.sh: root:wrapperInit:85 - ИНФОРМАЦИЯ: Инициализация...
2022-11-15T21:26:31.666+0800 [DEBUG] python-plugin.sh: root:wrapperSchema:141 - ИНФОРМАЦИЯ: Вхожу в wrapperSchema...
2022-11-15T21:26:31.672+0800 [DEBUG] python-plugin.sh: root:test_value:233 - ВНИМАНИЕ: test_data/0.png не существует. Проверьте это.
2022-11-15T21:26:31.672+0800 [DEBUG] python-plugin.sh: root:schema:434 - ИНФОРМАЦИЯ: Генерирую схему...

aiService.Init: инициализация завершена успешно!
2022/11/15 21:26:31 готов к выполнению x.run
2022/11/15 21:26:31 готов к инициализации interceptora
2022/11/15 21:26:31 успешная инициализация interceptora
2022/11/15 21:26:31 готов к вызову grpc.NewServer(opts...), maxRecv:4194304, maxSend:4194304
2022/11/15 21:26:31 готов к вызову utils.RegisterXsfCallServer(x.grpcserver, srv)
2022/11/15 21:26:31 готов к вызову reflection.Register(x.grpcserver)
2022/11/15 21:26:31 готов к выполнению userCallback
2022/11/15 21:26:31 работа с UserHighPriority
2022/11/15 21:26:31 работа с UserNormalPriority2022/11/15 21:26:31 работа с UserLowPriority
2022/11/15 21:26:31 готов к вызову x.grpcserver.Serve
2022/11/15 21:26:31 проверка запущенного gRPC сервиса ([::]:5090)
2022/11/15 21:26:31 gRPC сервер ([::]:5090) успешно запущен
2022/11/15 21:26:31 bvtVerifierInst отключен, игнорирую...
2022/11/15 21:26:31 готов к вызову finderadapter.Register([::]:5090)
2022/11/15 21:26:31 готов к выполнению fcDelayInst
2022/11/15 21:26:31 готов к вызову fc delay task
2022/11/15 21:26:31 блокировка для выполнения x.grpcserver.Serve```По умолчанию слушаемый HTTP порт равен 1888, что можно увидеть в файле aiges.toml

### 5. Отладка с помощью Postman

* API адрес: http://ваш_IP:1888/v1/имя_сервиса [конкретный адрес можно проверить через http://ваш_IP:1888 swagger]
```* POST запрос: часть body```json
{
    "header": {
        "appid": "123456",
        "uid": "39769795890",
        "did": "SR082321940000200",
        "imei": "8664020318693660",
        "imsi": "4600264952729100",
        "mac": "6c:92:bf:65:c6:14",
        "net_type": "wi-fi",
        "net_isp": "CMCC",
        "status": 3,
        "res_id": ""
    },
    "parameter": {
        "svcName": {
            "result": {
                "encoding": "utf8",
                "compress": "raw",
                "format": "plain",
                "data_type": "текст"
            }
        }
    },
    "payload": {
        "img": {
            "encoding": "jpg",
            "status": 3
        }
    }
}
``````"text":"iVBORw0KGgoAAAANSUhEUgAAAOEAAADgCAYAAAD17wHfAAANa0lEQVR4Xu3dr29USxyG8VpUExQOhcGRIAkGU1OFh/+gCZI/AEdSWdMEj0A2QW+CQyFRyAYFloS9eTf5hsm7c2a295w9c3484hPgnrvdbbvPzrYzc87J5eXl9uLiYvvmzRsAI3r9+vV2s9lsTxTgyckJgAZubm62JyrSDwAYx+fPn4kQaGkX4ePHj/cOABgHIyHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0BgRAo0RIdAYEQKNESHQGBECjREh0Bg}
}

Примечание: В данном случае отсутствует текст для перевода, поэтому остаётся только синтаксическая конструкция на языке программирования. Возврат ответа

{
    "header": {
        "code": 0,
        "sid": "0d9115af-0c6b-4526-a539-05b3c8aa9cfa",
        "status": 3
    },
    "payload": {
        "result": {
            "compress": "raw",
            "encoding": "utf8",
            "format": "plain",
            "seq": "0",
            "status": "3",
            "text": "{\"result\": 7, \"msg\": \"Распознанный результат является числом: 7\"}"
        }
    }
}
```### 6. Отладка MNIST с помощью Swagger

В данный момент встроена версия Swagger 2.0 для OpenAPI 3.0.

После запуска доступна по адресу:

```http://<ваш_адрес_IP>:1888```

Как показано на следующих изображениях:

![изображение](./doc/swagger.jpg)

Пробуйте! Вы можете скопировать часть запроса из Postman для выполнения запроса.

![изображение2](./doc/swagger2.jpg.png)

Вы можете видеть, что результат распознавания возвращается.

* Таким образом, отдельный загрузчик AIGES завершил базовое выполнение.

Учитывая, что alpha — это обрезанный вариант, который недавно был объединён с HTTP-интерфейсами, многие функции ещё не завершены, но он уже может обеспечивать базовый уровень управления.

Знаемые проблемы:

* Отсутствие обработки выхода процесса Python, требуется автоматическое завершение вместе с родительским процессом.

* Некоторые ошибки во время выполнения временно не были учтены.

## Контакты

* Акцент делаем на:

[![ifly](https://avatars.githubusercontent.com/u/26786495?s=96&v=4)](https://github.com/iflytek)

* Контакт:

![мышка](https://raw.githubusercontent.com/berlinsaint/readme/main/weixin_ybyang.jpg)

**Обратите внимание: отметьте источник - открытый проект**

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Python и 6 других языков
Apache-2.0
Отмена

Обновления (1)

все

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/iflytek-aiges.git
git@api.gitlife.ru:oschina-mirror/iflytek-aiges.git
oschina-mirror
iflytek-aiges
iflytek-aiges
grpc