Orange3 Interface Module

※ 마지막 업데이트: 2024-02-03

개요

  • 최근 스마트공장 시스템 구축에 AI 기술 적용을 필요로 하는 프로젝트가 많아지고 있음에 따라 Python 스크립트를 직접 작성하지 않더라도 그래픽 사용자 인터페이스(GUI)에서 비전문가도 쉽게 데이터 분석 및 기계 학습 모델을 만들 수 있는 'Orange3' 도구를 이용하여 서비스할 수 있도록 지원하는 모듈

Guide

Orange3

  • 완성된 모델을 'Save Model' 위젯을 이용하여 ".pkcls" 파일 내보내기

[PlusWin-Dev6] Orange3 모델 관리

  • 신규 버튼 클릭 후 모델 정보를 입력과 업로드할 모델 파일을 지정하고 저장

[PlusWin-Dev6] 예측 API 테스트

  • 등록된 모델 정보를 선택하고 [예측 테스트] 버튼을 클릭하여 팝업에서 테스트 진행

[PlusWin6] 프로그램 적용

private void Predict()
{
    lblResult.Text = string.Empty;

    object paramValue = new
    {
        model_id = "MODEL-TEST",
        param = $"[[{numSepalLengthCm.Value}, {numSepalWidthCm.Value}, {numPetalLengthCm.Value}, {numPetalWidthCm.Value}]]",
    };

    string[] speciesType = { "Iris-setosa", "Iris-versicolor", "Iris-virginica", };

    string result = null;
    try
    {
        var response = ApiHelper.Call(
            HttpMethod.Post,
            $"/api/orange3/predict",
            paramValue);

        if (response?.IsSuccessStatusCode ?? false)
        {
            var task = response.Content?.ReadAsStringAsync();
            task?.Wait();

            JObject jObject = null;
            if (task?.Result?.TryParseJson(out jObject) ?? false)
            {
                JToken[] values = jObject.SelectToken("values")?.ToArray();
                JToken maxValueItem = values?.Max();

                int index = values?.FindIndex(x => x.Equals(maxValueItem)) ?? -1;
                result = $"{speciesType?.ElementAtOrDefault(index)} ({maxValueItem})";
            }
        }
        else
        {
            result = ApiHelper.GetStatusAndMessage(response);
        }
    }
    catch (Exception ex)
    {
        MessageForm.Show(ex);
    }
    finally
    {
        lblResult.Text = $"결과: {result}";
    }
}

API

등록된 모델 리스트 조회

GET https://pw6.gsti.co.kr/api/orange3/model-data/list

모델 파일 다운로드

GET https://pw6.gsti.co.kr/api/orange3/model

Query Parameters

Name
Type
Description

id*

string

모델 ID

신규 모델 정보 등록

POST https://pw6.gsti.co.kr/api/orange3/model

Content-Type: multipart/form-data

Request Body

Name
Type
Description

Id

string

모델 ID

File

string($binary)

모델 파일

IsUse

boolean

사용 여부

SampleParam

string

샘플 파라미터

Description

string

설명

모델 정보 수정

PUT https://pw6.gsti.co.kr/api/orange3/model

Content-Type: multipart/form-data

Request Body

Name
Type
Description

Id

string

모델 ID

File

string($binary)

모델 파일

IsUse

boolean

사용 여부

SampleParam

string

샘플 파라미터

Description

string

설명

모델 데이터 삭제

DELETE https://pw6.gsti.co.kr/api/orange3/model

Query Parameters

Name
Type
Description

id

string

모델 ID

예측 실행

POST https://pw6.gsti.co.kr/api/orange3/predict

Request Body

Name
Type
Description

model_id

string

모델 ID

param

string

예측 실행에 필요한 파라미터 (일반적으로 2차원 배열의 문자열 값)

스터디 자료

머신러닝, 지도학습 이해 (생활코딩)

Orange3 입문 가이드

오렌지3 머신러닝 지도학습 (생활코딩)

Last updated