Answer Bot API

Cognitive Search API를 사용하면 자연어 이해 AI 기반의 Q&A 검색은 물론, 기계독해(MRC)로 사전에 등록한 문서에서 AI 가 자동으로 답변을 추출할 수 있습니다.

Q&A 와 문서 업로드하기

먼저 Alli 에 로그인해야 합니다. 그 다음 Q&A 메뉴로 이동하면 질문/답변 쌍을 등록할 수 있습니다. 워드, PDF, 파워포인트, 엑셀 등 문서 파일을 등록하려면 문서 메뉴로 이동합니다.

문서 데이터베이스를 마이크로소프트 OneDrive 등의 데이터 소스와 연동하려면 소스 설정 메뉴로 이동하세요. API 를 통해 문서를 직접 업로드하려면 본 문서의 Documents 업로드 부분을 참고하세요.

API 키 얻기

각 요청의 헤더에 프로젝트에 할당된 API-KEY 를 제공해야 합니다. API 키는 대시보드의 설정 메뉴 아래 일반 탭에서 찾을 수 있습니다.

에이전트 혹은 유저 정보 입력하기

특정 엔드포인트에는 리퀘스트 헤더에 에이전트나 유저 정보를 입력해 누가 해당 API 콜을 실행하는지 지정할 수 있습니다.

에이전트 정보는 AGENT-EMAIL 헤더를 사용해 입력합니다. 에이전트의 메일 주소는 Alli 대시보드 프로젝트 설정 > 담당자 메뉴에서 확인할 수 있습니다. 아래는 입력 예시입니다.

-H 'AGENT-EMAIL: agent_1@email.com'

유저 정보는 OWN-USER-ID 에 유저 ID 를 입력하여 제공할 수 있습니다. 기존 유저 ID 를 사용하거나 새로운 ID 를 사용할 수 있으며, 새로운 ID 가 입력되면 Alli 가 해당 ID 로 신규 유저를 생성합니다. 이후 같은 OWN-USER-ID 헤더가 사용되면 해당 콜은 동일 유저가 실행한 것으로 인식됩니다.

또한 유저 ID 를 사용할 때 유저의 이메일 정보를 업데이트할 수 있습니다. USER-EMAIL 헤더에 업데이트를 원하는 이메일을 입력하면 됩니다. 아래는 입력 예시입니다.

-H 'OWN-USER-ID: 5f1234567a409876c082487z' \
-H 'USER-EMAIL: user_1@email.com'

OWN-USER-ID 에는 ASCII 캐릭터만 사용할 수 있습니다. 사용하고자 하는 유저 ID 에 ASCII 캐릭터가 아닌 캐릭터가 포함되는 경우, base64 인코딩 후 base64:CONVERTED_ID 형식을 사용할 수 있습니다.

유저 ID 정보는 Alli 대시보드의 고객 메뉴에서 확인할 수 있습니다.

URL 내 Path parameter 인코딩하기

URL Path parameter 입력 시, 비예약문자(a-z,A-Z,0-9, - _ . ~)를 제외한 모든 문자를 UTF-8 및 퍼센트 인코딩 후 입력하시는 것을 권장합니다. 예약문자는( ! * ' ( ) ; : @ & = + $ , / ? # [ ] )는 반드시 UTF-8 및 퍼센트 인코딩되어야합니다.

에러 메시지

예상했던 response 를 받지 못한 경우 에러 메시지를 확인해 주세요. 예를 들어 잘못된 HTTP 메소드를 사용한 경우 아래와 같은 형식의 에러 메시지가 리턴됩니다.

{“error”: “Method Not Allowed POST: /webapi/faq_feedbacks”}

Q&A에서 검색하기

POST https://backend.alli.ai/webapi/faq

Q&A API 를 사용하면 Q&A 데이터베이스에 질문과 가장 관련이 깊은 Q&A 쌍을 찾아 제시합니다.

Headers

Request Body

{"result": 
  [
    {
      "confidence": 0.8371959004827834, 
      "effectiveConfidence": 0.9698303406362148, 
      "question": "제품 가격은 어떻게 되나요?", 
      "answer": "웹사이트에서 무료 플랜을 포함한 프라이싱 플랜을 확인하실 수 있습니다.",
      "id": "ClMVIjCoNDAiZDLyNWZhM1O3YTUIIKZjPPRcER==",
      "hashtags": [],
      "lastUpdatedDate": "2020-11-19",
      "agentFeedback": {
                "positiveCount": 1,
                "negativeCount": 0
            },
      "userFeedback": {
                "positiveCount": 1,
                "negativeCount": 0
            },
       "folder": "folder 1", 
       "agentEditor": ["email_1@allganize.ai", "email_2@allganize.ai", "email_3@allganize.ai"], 
       "agentViewer": ["email_4@allganize.ai"]
    },
    {
      "confidence": 0.6119840535714456, 
      "effectiveConfidence": 0.7738889000171243, 
      "question": "플랜별 가격표가 있나요?", 
      "answer": "물론 있습니다. 웹사이트의 PRICING 메뉴에서 확인하실 수 있습니다.",
      "id": "RkFROjVmNDAwZDMyNWZhM2Y4YTA1ZDZjNWUwMQ==",
      "hashtags": [],
      "lastUpdatedDate": "2020-11-20",
      "agentFeedback": {
                "positiveCount": 1,
                "negativeCount": 0
            },
      "userFeedback": {
                "positiveCount": 1,
                "negativeCount": 0
            },
       "folder": "folder 1", 
       "agentEditor": ["email_1@allganize.ai", "email_2@allganize.ai", "email_3@allganize.ai"], 
       "agentViewer": ["email_4@allganize.ai"],
       "userViewer": {"variables": {"CUSTOMER_ID": [{"id": "customer_id_1", "value": "customer_id_1"}]}}, 
       "allowOtherAgentsView": true, 
       "allowOtherUsersView": true
       }
  ],
  "count": 2,
  "hashId": "d4cr44d4e56766ce0c2b21f4aa5463a4"
}

Request Example

YOUR API KEY 를 프로젝트의 API 키로 바꾸어야 합니다. API 키 얻기 항목을 참고하세요.

curl -d '{ 
  "query": "보험 해지", 
  "hashtags": ["wiki", "knowledge"],
  "hashtagsOperator": "OR", 
  "maxResults": 3,
  "format": "text"}' \
-H "Content-Type: application/json" \
-H "API-KEY: YOUR API KEY" \
https://backend.alli.ai/webapi/faq

Response Example

{"result": 
  [
    {
      "confidence": 0.8371959004827834, 
      "effectiveConfidence": 0.9698303406362148, 
      "question": "제품 가격은 어떻게 되나요?", 
      "answer": "웹사이트에서 무료 플랜을 포함한 프라이싱 플랜을 확인하실 수 있습니다.",
      "id": "ClMVIjCoNDAiZDLyNWZhM1O3YTUIIKZjPPRcER==",
      "hashtags": [],
      "lastUpdatedDate": "2020-11-19",
      "agentFeedback": {
                "positiveCount": 1,
                "negativeCount": 0
            },
      "userFeedback": {
                "positiveCount": 1,
                "negativeCount": 0
            },
       "folder": "folder 1", 
       "agentEditor": ["email_1@allganize.ai", "email_2@allganize.ai", "email_3@allganize.ai"], 
       "agentViewer": ["email_4@allganize.ai"]
    },
    {
      "confidence": 0.6119840535714456, 
      "effectiveConfidence": 0.7738889000171243, 
      "question": "플랜별 가격표가 있나요?", 
      "answer": "물론 있습니다. 웹사이트의 PRICING 메뉴에서 확인하실 수 있습니다.",
      "id": "RkFROjVmNDAwZDMyNWZhM2Y4YTA1ZDZjNWUwMQ==",
      "hashtags": [],
      "lastUpdatedDate": "2020-11-20",
      "agentFeedback": {
                "positiveCount": 1,
                "negativeCount": 0
            },
      "userFeedback": {
                "positiveCount": 1,
                "negativeCount": 0
            },
       "folder": "folder 1", 
       "agentEditor": ["email_1@allganize.ai", "email_2@allganize.ai", "email_3@allganize.ai"], 
       "agentViewer": ["email_4@allganize.ai"],
       "userViewer": {"variables": {"CUSTOMER_ID": [{"id": "customer_id_1", "value": "customer_id_1"}]}}, 
       "allowOtherAgentsView": true, 
       "allowOtherUsersView": true
       }
  ],
  "count": 2,
  "hashId": "d4cr44d4e56766ce0c2b21f4aa5463a4"
}

Documents에서 검색하기

POST https://backend.alli.ai/webapi/mrc

Documents API 를 사용하면 복잡한 표 등이 포함된 비정형 문서에서 질문에 답변을 추출할 수 있습니다.

Headers

Request Body

answer: 대시보드에 업로드된 문서에서 추출된 답변입니다

answerHash: 피드백을 입력하거나 취소할 Documents 검색 결과를 특정하기 위해 사용됩니다.

confidence: AI 모델이 산출한 confidence 값을 보여줍니다. 0과 1 사이의 숫자입니다.

effectiveConfidence: 쿼리 결과에 피드백이 제공되면 AI 모델의 트레이닝에 반영되며, 유저와 에이전트의 피드백 결과를 반영하여 조정된 confidence 값이 effective confidence 입니다. 0과 1 사이의 숫자입니다.

documentId: 답변이 추출된 문서의 ID 입니다.

documentName: 답변이 추출된 문서의 이름입니다.

hashtags: 문서에 등록되어 있는 해시태그 목록입니다.

pageNo: 문서 내 답변이 추출된 페이지 정보입니다.

createdDate: 해당 문서가 생성(업로드) 된 날짜입니다.

agentFeedback: 해당 검색 결과에 대해 에이전트가 부여한 긍정(positiveCount) / 부정(negativeCount) 피드백입니다.

userFeedback: 해당 검색 결과에 대해 유저가 부여한 긍정 / 부정 피드백입니다.

body: 요청에서 returnPreview 가 true 인 경우 문서 검색 프리뷰의 html body 가 출력됩니다.

css: 요청에서 returnPreview 가 true 인 경우 문서 검색 프리뷰의 css 가 출력됩니다.

pdfPreview: 요청에서 pdfPreview 가 true 인 경우 문서 검색 결과 pdf 프리뷰의 url 이 리턴됩니다. 해당 url로의 엑세스는 다운로드 IP 화이트리스트를 이용해 제한이 가능합니다.

{
    "result": [
        {
            "answer": "ANSWER_1",
            "answerHash": "ANSWER_HASH_1",
            "confidence": CONFIDENCE_1,
            "effectiveConfidence": EFFECTIVE_CONFIDENCE_1,
            "documentId": "DOCUMENT_ID_1",
            "documentName": "DOCUMENT_NAME_1",
            "hashtags": [],
            "pageNo": PAGE_NUMBER,
            "createdDate": "DATE",
            "agentFeedback": {
                "positiveCount": 0,
                "negativeCount": 0
            },
            "userFeedback": {
                "positiveCount": 2,
                "negativeCount": 0
            },
            "body": "PREVIEW_HTML_BODY",
            "css": "PREVIEW_CSS"
            "pdfPreview": "PDF_PREVIEW_URL"
        }
    ]
}

Request Example

YOUR API KEY 를 프로젝트의 API 키로 바꾸어야 합니다. API 키 얻기 항목을 참고하세요.

curl -d '{ 
  "query": "보험 해지", 
  "hashtags": ["wiki", "knowledge"],
  "hashtagsOperator": "OR",
  "maxResults": 3, 
  "format": "text",
  "pdfPreview": true}' \
-H "Content-Type: application/json" \
-H "API-KEY: YOUR API KEY" \
https://backend.alli.ai/webapi/mrc

Response Example

{
    "result": [
        {
            "answer": "30일 안에는 불이익 없이 해지가 가능합니다.",
            "answerHash": "8430cf3b9af628abc1bb063802db39be",
            "confidence": 0.9998937845230103,
            "effectiveConfidence": 1,
            "documentId": "S25vd2xlZGdlQmFzZTo1ZjMzODFkZmNhYWJjYWUyMjkzYjFhY2U=",
            "documentName": "보험표준약관.docx",
            "hashtags": [],
            "pageNo": 5,
            "createdDate": "2020-11-18",
            "agentFeedback": {
                "positiveCount": 2,
                "negativeCount": 0
            },
            "userFeedback": {
                "positiveCount": 1,
                "negativeCount": 0
            },
            "pdfPreview": "PDF_PREVIEW_URL",
            "folder": "folder 1", 
            "agentEditor": ["email_1@allganize.ai", "email_2@allganize.ai", "email_3@allganize.ai"], 
            "agentViewer": ["email_4@allganize.ai"],
            "userViewer": {"variables": {"CUSTOMER_ID": [{"id": "customer_id_1", "value": "customer_id_1"}]}}, 
            "allowOtherAgentsView": true, 
            "allowOtherUsersView": true,
            "properties": {}

        },
        {
            "answer": "30일 이후 해지 시 환불이 불가능합니다.",
            "answerHash": "d849a49662a4f21df51de24d06196547",
            "confidence": 0.9998629689216614,
            "effectiveConfidence": 1,
            "documentId": "S25vd2xlZGdlQmFzZTo1ZjMzODFkZmNhYWJjYWUyMjkzYjFhY2U=",
            "documentName": "실보험 약관 2020.pdf",
            "hashtags": ["policy", "2020"],
            "pageNo": 234,
            "createdDate": "2020-11-18",
            "agentFeedback": {
                "positiveCount": 4,
                "negativeCount": 1
            },
            "userFeedback": {
                "positiveCount": 1,
                "negativeCount": 0
            },
            "pdfPreview": "PDF_PREVIEW_URL",
            "folder": "folder 1",
            "agentEditor": ["email_1@allganize.ai", "email_2@allganize.ai", "email_3@allganize.ai"], 
            "agentViewer": ["email_4@allganize.ai"],
            "userViewer": {"variables": {"CUSTOMER_ID": [{"id": "customer_id_1", "value": "customer_id_1"}]}}, 
            "allowOtherAgentsView": true, 
            "allowOtherUsersView": true,
            "properties": {}
        }
    ]
}

Q&A 상세 정보 확인

GET https://backend.alli.ai/webapi/single_faq

이 API 를 사용하면 Q&A 항목 하나의 상세 정보를 확인할 수 있습니다.

Headers

Request Body

{
    "result": {
        "question": "올거나이즈 사무실은 어디에 있나요?",
        "answer": "본사는 미국 캘리포니아의 실리콘밸리에 위치하고 있습니다.",
        "id": "RkFROjYwMmD2ZTQ0YWZmQWQ5YmQ0NmM5Y4VkNw==",
        "userFeedback": {
            "positiveCount": 0,
            "negativeCount": 0
        },
        "agentFeedback": {
            "positiveCount": 0,
            "negativeCount": 1
        },
        "lastUpdatedDate": "2021-02-19",
        "createdDate": "2021-02-19",
        "hashtags": [],
        "statusOnAt": null, 
        "statusOffAt": null,
        "folder": "folder 1", 
        "agentEditor": ["email_1@allganize.ai", "email_2@allganize.ai", "email_3@allganize.ai"], 
        "agentViewer": ["email_4@allganize.ai"],
        "userViewer": {"variables": {"CUSTOMER_ID": [{"id": "customer_id_1", "value": "customer_id_1"}]}}, 
        "allowOtherAgentsView": true, 
        "allowOtherUsersView": true
    }
}

Request Example

YOUR API KEY 를 프로젝트의 API 키로 바꾸어야 합니다. API 키 얻기 항목을 참고하세요.

curl -X GET \
-d '{"id": "RkFROjY0YWZmQWQ5YmQ0NmM5Y4VkNw==", "format": "text"}' \
-H "API-KEY: YOUR API KEY" \
https://backend.alli.ai/webapi/single_faq

Response Example

{
    "result": {
        "question": "올거나이즈 사무실은 어디에 있나요?",
        "answer": "본사는 미국 캘리포니아의 실리콘밸리에 위치하고 있습니다.",
        "id": "RkFROjYwMmD2ZTQ0YWZmQWQ5YmQ0NmM5Y4VkNw==",
        "userFeedback": {
            "positiveCount": 0,
            "negativeCount": 0
        },
        "agentFeedback": {
            "positiveCount": 0,
            "negativeCount": 1
        },
        "lastUpdatedDate": "2021-02-19",
        "createdDate": "2021-02-19",
        "hashtags": [],
        "statusOnAt": null, 
        "statusOffAt": null,
        "folder": "folder 1", 
        "agentEditor": ["email_1@allganize.ai", "email_2@allganize.ai", "email_3@allganize.ai"], 
        "agentViewer": ["email_4@allganize.ai"],
        "userViewer": {"variables": {"CUSTOMER_ID": [{"id": "customer_id_1", "value": "customer_id_1"}]}}, 
        "allowOtherAgentsView": true, 
        "allowOtherUsersView": true
    }
}

Documents 상세 정보 확인

GET https://backend.alli.ai/webapi/single_document

이 API 를 사용하면 Q&A 항목 하나의 상세 정보를 확인할 수 있습니다.

Headers

Request Body

{"result": {
      "id": "DOCUMENT_ID_1",
      "documentName": "DOCUMENT_NAME_1.docx",
      "createdDate": "2020-11-12",
      "agentFeedback": {
                "positiveCount": 1,
                "negativeCount": 0
            },
      "hashtags" : ["HASHTAG_1", "HASHTAG_2"]
    }
}

Request Example

YOUR API KEY 를 프로젝트의 API 키로 바꾸어야 합니다. API 키 얻기 항목을 참고하세요.

curl -X GET \
-d '{"id": "S25v42xlZGdlQmFzZTo1ZjEzODFkZmNhYWQjYWUyMjkZYjFhY2U="}' \
-H "API-KEY: YOUR API KEY" \
https://backend.alli.ai/webapi/single_document

Response Example

{"result": {
      "id": "S25vd2xlZGdlQmFzZTo1ZjMzODFkZmNhYWJjYWUyMjkzYjFhY2U=",
      "documentName": "정책문 1.docx",
      "createdDate": "2020-11-12",
      "agentFeedback": {
                "positiveCount": 1,
                "negativeCount": 0
            },
      "hashtags" : ["정책", "가이드"]
    }
}

Q&A Feedbacks

GET https://backend.alli.ai/webapi/faq_feedbacks

이 API 를 사용하면 검색 쿼리별로 Q&A 쌍에 주어지는 피드백 리스트를 받아올 수 있습니다.

Headers

Request Body

{
  "result": [
    {
      "query": "QUERY_1",
      "feedbacks": [
        {
          "faqId": "FAQ_ID_1_1", 
          "positive": true or false
        }, ...
      ]
    }, ...
  ],
  "count": COUNT_1
}

Request Example

YOUR API KEY 를 프로젝트의 API 키로 바꾸어야 합니다. API 키 얻기 항목을 참고하세요.

curl -X GET \
-d '{"offset": 0, "limit": 10}' \
-H "API-KEY: YOUR API KEY" \
https://backend.alli.ai/webapi/faq_feedbacks

Response Example

{
  "result": [
    {
      "query": "오피스가 어디죠?",
      "feedbacks": [
        {
          "faqId": "RkFROjVmNDA1MWVkMTFmOWJjMTJjOGUwMTg5YQ==",
          "positive": true
        },
        {
          "faqId": "RkFROjVmNDA1MWVkMTFmOWJjMTJjOGUwMThhNA==",
          "positive": false
        },
        {
          "faqId": "RkFROjVmNDA1MWVjMTFmOWJjMTJjOGUwMTgyYw==",
          "positive": true
        }
      ]
    },
    {
      "query": "투자를 받았나요?",
      "feedbacks": [
        {
          "faqId": "RkFROjVmNDA1MWVjMTFmOWJjMTJjOGUwMTgyNw==",
          "positive": true
        }
      ]
    }
  ],
  "count": 4
}

Q&A Feedback

POST https://backend.alli.ai/webapi/faq_feedback

이 API 를 사용하면 검색 쿼리별로 Q&A 에 피드백을 주거나 주어진 피드백을 삭제할 수 있습니다.

Headers

Request Body

{
  "errors": null,
  "result": {
    "faq": {
      "id": "ID_1"
    },
    "agentFeedback": {
      "positiveCount": NUMBER,
      "negativeCount": NUMBER
    }
  }
}

Request Example

YOUR API KEY 를 프로젝트의 API 키로 바꾸어야 합니다. API 키 얻기 항목을 참고하세요.

Q&A_ID 를 해당하는 Q&A ID 로 바꾸어야 합니다. Q&A ID 를 얻으려면 Q&A 에서 검색하기의 Response Example 혹은 Q&A Feedbacks 의 Response Example 항목을 참고하세요.

curl https://backend.alli.ai/webapi/faq_feedback \
-d '{"query": "어디에 있나요?", 
     "id": "Q&A_ID", 
     "isPositive": true}' \
-H "Content-Type: application/json" \
-H "API-KEY: YOUR API KEY"

Response Example

{
  "errors": null,
  "result": {
    "faq": {
      "id": "RkFROjVmNDA1MWVjMTFmOWJjMTJjOGUwMTgyNw=="
    },
    "agentFeedback": {
      "positiveCount": 3,
      "negativeCount": 1
    }
  }
}

Q&A User Feedback

POST https://backend.alli.ai/webapi/faq/user_feedback

이 API 를 사용하면 검색 쿼리별로 Q&A 에 유저 피드백을 부여할 수 있습니다.

Headers

Request Body

{
    "result": {
        "userFeedback": {
            "positiveCount": 1,
            "negativeCount": 0
        }
    }
}

Request Example

YOUR API KEY 를 프로젝트의 API 키로 바꾸어야 합니다. API 키 얻기 항목을 참고하세요.

Q&A_ID 를 해당하는 Q&A ID 로 바꾸어야 합니다. Q&A ID 를 얻으려면 Q&A 에서 검색하기의 Response Example 혹은 Q&A Feedbacks 의 Response Example 항목을 참고하세요.

curl --request POST 'https://backend.alli.ai/webapi/mrc/user_feedback' \
--header 'API-KEY: YOUR_API_KEY' \
-d '{
    "query": "office loacation?",
    "prev": false,
    "id": "RkFROjYwwEk4YTU0YTc0MjNmMDgxOIdkZTZiNA==",
    "positive": true
}'

Response Example

{
    "result": {
        "userFeedback": {
            "positiveCount": 1,
            "negativeCount": 0
        }
    }
}

Q&A 업로드

POST https://backend.alli.ai/webapi/upload_faq_file

이 API 를 이용하면 tsv, csv, xlsx, zip 형식으로 다수의 Q&A 를 한꺼번에 업로드할 수 있습니다.

Headers

Request Body

{
    "result": "success",
    "notUploaded": [
        {
            "question": "QUESTION_1",
            "state": "dup"
        },
        {
            "question": "QUESTION_2",
            "state": "up"
        }
    ]
}

Request Example

YOUR API KEY 를 프로젝트의 API 키로 바꾸어야 합니다. API 키 얻기 항목을 참고하세요.

curl -F 'file=@/location/to/your_file' \
-H 'API-KEY: YOUR_API_KEY'
https://backend.alli.ai/webapi/upload_faq_file

Response Example

{
    "result": "success",
    "notUploaded": [
        {
            "question": "AI 를 어떻게 트레이닝하나요?",
            "state": "dup"
        },
        {
            "question": "미팅 혹은 데모를 진행하고 싶습니다.",
            "state": "up"
        }
    ]
}

Q&A 추가

POST https://backend.alli.ai/webapi/register_faq

이 API 를 이용하면 새 Q&A 를 추가하거나 기존 Q&A 를 업데이트할 수 있습니다.

Headers

Request Body

{
    "result": {
        "status": "created",
        "id": "Q&A_ID"
    },
    "errors": null
}

Request Example

YOUR API KEY 를 프로젝트의 API 키로 바꾸어야 합니다. API 키 얻기 항목을 참고하세요.

curl 'https://backend.alli.ai/webapi/register_faq' \
-H 'API-KEY: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
    "status": "ON",
    "question": "사무실 위치가 어디인가요?",
    "similarQuestions": ["오피스 주소?", "주소가 어떻게 되죠?"],
    "answer": "미국 오클랜드, 한국 서울 및 일본 도쿄에 사무실이 있습니다.",
    "hashtags": ["office", "location"],
    "memo": "API 에서 추가",
    "folder": "folder 1", 
    "agentEditor": ["your@email.com"], 
    "agentViewer": ["your@email_2.com"],
    "userViewer": {
    "variables": {
      "CUSTOMER_ID": ["id_1", "id_2"],
      "CUSTOMER_GROUP": ["{categoryElementId}", "{categoryElementId}"]
        }
    },
    "followFolderPermission": false,
    "allowOtherAgentsView": true,
    "allowOtherUsersView": true
}'

Response Example

{
    "result": {
        "status": "created",
        "id": "RkFROkYwYRQxYzIzMDcxYWM5M3JlOWR5Y2EeOQ=="
    },
    "errors": null
}

Q&A 삭제

POST https://backend.alli.ai/webapi/delete_faq

이 API 를 사용해 Q&A 를 삭제할 수 있습니다.

Headers

Request Body

{
    "result": {
        "status": "deleted"
    },
    "errors": null
}

Request Example

YOUR API KEY 를 프로젝트의 API 키로 바꾸어야 합니다. API 키 얻기 항목을 참고하세요.

curl 'https://backend.alli.ai/webapi/delete_faq' \
-H 'API-KEY: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d {
    "id": "RkFROkYwYRQxYzIzMDcxYWM5M3JlOWR5Y2EeOQ=="
    }

Response Example

{
    "result": {
        "status": "deleted"
    },
    "errors": null
}

Q&A 목록 조회

GET https://backend.alli.ai/webapi/faqs

이 API 를 이용해 지식 베이스에 등록된 Q&A 의 목록을 조회할 수 있습니다.

Headers

Request Body

{
    "offset": 0,
    "count": 2,
    "totalCount": 2,
    "results": [
        {
            "id": "RkRODjYwUIr2YTUzYTc0MjNmMDgxOTFkZTRlNA==",
            "question": "올거나이즈 직원 수는 몇명인가요?",
            "answer": "현재 25명이 글로벌 오피스에서 근무하고 있습니다.",
            "hashtags": [
                "회사",
                "현황"
            ],
            "userFeedback": {
                "positiveCount": 0,
                "negativeCount": 0
            },
            "agentFeedback": {
                "positiveCount": 0,
                "negativeCount": 0
            },
            "lastUpdatedDate": "2021-05-04",
            "createdDate": "2021-02-23",
            "statusOnAt": null, 
            "statusOffAt": null,
            "folder": "folder 1", 
            "agentEditor": ["email_1@allganize.ai", "email_2@allganize.ai", "email_3@allganize.ai"], 
            "agentViewer": ["email_4@allganize.ai"],
            "userViewer": {"variables": {"CUSTOMER_ID": [{"id": "customer_id_1", "value": "customer_id_1"}]}}, 
            "allowOtherAgentsView": true, 
            "allowOtherUsersView": true

        },
        {
            "id": "RkFROjYwIdU4YTUzYTc0MjNmUR2wOTFkZTU1OA==",
            "question": "올거나이즈에사 발간한 백서가 있나요?",
            "answer": "물론 있습니다. 홈페이지의 Resources 메뉴를 확인하세요.",
            "hashtags": [
                "회사"
            ],
            "userFeedback": {
                "positiveCount": 0,
                "negativeCount": 0
            },
            "agentFeedback": {
                "positiveCount": 0,
                "negativeCount": 0
            },
            "lastUpdatedDate": "2021-05-04",
            "createdDate": "2021-02-23",
            "statusOnAt": null, 
            "statusOffAt": null,
            "folder": "folder 1", 
            "agentEditor": ["email_1@allganize.ai", "email_2@allganize.ai", "email_3@allganize.ai"], 
            "agentViewer": ["email_4@allganize.ai"],
            "userViewer": {"variables": {"CUSTOMER_ID": [{"id": "customer_id_1", "value": "customer_id_1"}]}}, 
            "allowOtherAgentsView": true, 
            "allowOtherUsersView": true
        }
    ]
}

Request Example

YOUR API KEY 를 프로젝트의 API 키로 바꾸어야 합니다. API 키 얻기 항목을 참고하세요.

curl -X GET 'https://backend.alli.ai/webapi/faqs' \
-H 'API-KEY: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
    "searchTerm": "올거나이즈",
    "isUsed": true,
    "hashtags": ["정책", "회사"],
    "hashtagsOperator": "OR",
    "createdByAgent": true,
    "answeredByMrc": true,
    "autoGenerated": false,
    "editedByAgent": false,
    "format": "text",
    "offset": 0,
    "limit": 10
}'

Response Example

{
    "offset": 0,
    "count": 2,
    "totalCount": 2,
    "results": [
        {
            "id": "RkRODjYwUIr2YTUzYTc0MjNmMDgxOTFkZTRlNA==",
            "question": "올거나이즈 직원 수는 몇명인가요?",
            "answer": "현재 25명이 글로벌 오피스에서 근무하고 있습니다.",
            "hashtags": [
                "회사",
                "현황"
            ],
            "userFeedback": {
                "positiveCount": 0,
                "negativeCount": 0
            },
            "agentFeedback": {
                "positiveCount": 0,
                "negativeCount": 0
            },
            "lastUpdatedDate": "2021-05-04",
            "createdDate": "2021-02-23",
            "statusOnAt": null, 
            "statusOffAt": null,
            "folder": "folder 1", 
            "agentEditor": ["email_1@allganize.ai", "email_2@allganize.ai", "email_3@allganize.ai"], 
            "agentViewer": ["email_4@allganize.ai"],
            "userViewer": {"variables": {"CUSTOMER_ID": [{"id": "customer_id_1", "value": "customer_id_1"}]}}, 
            "allowOtherAgentsView": true, 
            "allowOtherUsersView": true

        },
        {
            "id": "RkFROjYwIdU4YTUzYTc0MjNmUR2wOTFkZTU1OA==",
            "question": "올거나이즈에사 발간한 백서가 있나요?",
            "answer": "물론 있습니다. 홈페이지의 Resources 메뉴를 확인하세요.",
            "hashtags": [
                "회사"
            ],
            "userFeedback": {
                "positiveCount": 0,
                "negativeCount": 0
            },
            "agentFeedback": {
                "positiveCount": 0,
                "negativeCount": 0
            },
            "lastUpdatedDate": "2021-05-04",
            "createdDate": "2021-02-23",
            "statusOnAt": null, 
            "statusOffAt": null,
            "folder": "folder 1", 
            "agentEditor": ["email_1@allganize.ai", "email_2@allganize.ai", "email_3@allganize.ai"], 
            "agentViewer": ["email_4@allganize.ai"],
            "userViewer": {"variables": {"CUSTOMER_ID": [{"id": "customer_id_1", "value": "customer_id_1"}]}}, 
            "allowOtherAgentsView": true, 
            "allowOtherUsersView": true
        }
    ]
}

Q&A Candidates

GET https://backend.alli.ai/webapi/faq_candidates

이 API 를 이용하면 고객의 질문 중 답변되지 않은 질문, 즉 '미답변 질문' 들의 목록을 받아올 수 있습니다.

Headers

Request Body

{
  "count": NUMBER,
  "result": [
    {
      "id": "ID_ANSWER_1",
      "frequency": 1,
      "textAnswer": "ANSWER_1",
      "state": "ACTIVE",
      "createdAt": NUMBER,
      "questions": [
        {
          "id": "ID_QUESTION_1",
          "question": "QUESTION_1",
          "frequency": 1,
          "history": {
            "id": "ID_HISTORY_1"
          }
        }
      ]
    }, ...
  ],
  "errors": null
}

Request Example

YOUR API KEY 를 프로젝트의 API 키로 바꾸어야 합니다. API 키 얻기 항목을 참고하세요.

curl -X GET \
-d '{
    "hashtags": ["wiki"], 
    "searchTerm": "고객", 
    "order": "FREQUENCY_DESC", 
    "state": "ALL", 
    "offset": 0, 
    "limit": 10}' \
-H "API-KEY: YOUR API KEY" \
https://backend.alli.ai/webapi/faq_candidates

Response Example

{
  "count": 2,
  "result": [
    {
      "id": "RkFRQ2FuZGlkYXRlOjVlYjA3OGU5MGFmZmMyM2QxZjc4ZTMzMQ==",
      "frequency": 1,
      "textAnswer": "사용법은 이와 같습니다.\n— From 고객 가이드.pdf",
      "state": "ACTIVE",
      "createdAt": 1588623593321,
      "questions": [
        {
          "id": "RkFRQ2FuZGlkYXRlUXVlc3Rpb246NWViMDc4ZTkwYWZmYzIzZDFmNzhlMzMw",
          "question": "고객 매뉴얼이 있나요?",
          "frequency": 1,
          "history": {
            "id": "Q29udmVyc2F0aW9uOjVlYjA3OGI2NWUyMTJlMTMzZDM4NDAzOA=="
          }
        }
      ]
    },
    {
      "id": "RkFRQ2FuZGlkYXRlOjVlOWEzZWI2MmZlOTFkMzIwYjE2YWQyOQ==",
      "frequency": 1,
      "textAnswer": "15일 안에는 언제든 취소가 가능합니다.\n— From 고객정책.pdf",
      "state": "ACTIVE",
      "createdAt": 1587166902114,
      "questions": [
        {
          "id": "RkFRQ2FuZGlkYXRlUXVlc3Rpb246NWU5YTNlYjYyZmU5MWQzMjBiMTZhZDI4",
          "question": "환불받고 싶어요.",
          "frequency": 1,
          "history": {
            "id": "Q29udmVyc2F0aW9uOjVlOWEzZDliNjU5YmM2NTEyMTk5MDQ3Ng=="
          }
        }
      ]
    }
  ],
  "errors": null
}

Q&A Candidates

POST https://backend.alli.ai/webapi/add_faq_candidates

새로운 미답변 질문을 등록합니다. 미답변 질문은 지식 베이스 > 미답변 탭에 등록되며 답변 등록 후 Q&A 로 이동시킬 수 있습니다.

Headers

Request Body

{
    "result": {
        "candidates": [
            {
                "id": "CANDIDATE_ID_1"
            },
            {
                "id": "CANDIDATE_ID_2"
            }
        ]
    },
    "errors": null
}

Request Example

YOUR API KEY 를 프로젝트의 API 키로 바꾸어야 합니다. API 키 얻기 항목을 참고하세요.

curl https://backend.alli.ai/webapi/add_faq_candidates \
-d '{"queries": ["what is that processor", "how much does the processor cost"]}' \
-H "Content-Type: application/json" \
-H "API-KEY: YOUR_API_KEY"

Response Example

{
    "result": {
        "candidates": [
            {
                "id": "RkFRQ2FuZGlDYXRlOjYwMzBiMjRwNDM3NGI2ZmNjNDQ5ZTg0Nw=="
            },
            {
                "id": "RkFRQ2FuZGlkYXRlOjYwMzBiMjcwNDM3NGW2ZmNjNDQ5ZThhYQ=="
            }
        ]
    },
    "errors": null
}

Documents Feedbacks

GET https://backend.alli.ai/webapi/mrc_feedbacks

이 API 를 사용하면 검색 쿼리별로 문서에서 추출된 답변에 주어지는 피드백 리스트를 불러올 수 있습니다.

Headers

Request Body

{
  "result": [
    {
      "query": "QUERY_1",
      "feedbacks": [
        {
          "documentId": "DOCUMENT_ID_1",
          "answer": "ANSWER_1",
          "answerHash": "ANSWER_HASH_1",
          "positive": true or false
        }, ...
      ]
    }
  ],
  "count": NUMBER
}

Request Example

YOUR API KEY 를 프로젝트의 API 키로 바꾸어야 합니다. API 키 얻기 항목을 참고하세요.

curl -X GET \
-d '{"offset": 0, "limit": 10}' \
-H "API-KEY: YOUR API KEY" \
https://backend.alli.ai/webapi/mrc_feedbacks

Response Example

{
  "result": [
    {
      "query": "보험 해지하려구요",
      "feedbacks": [
        {
          "documentId": "S25vd2xlZGdlQmFzZTo1ZWM1YmJiZTczNmUxNmM0NDRjZDI2ZGM=",
          "answer": "30일 안에는 불이익 없이 해지가 가능합니다.",
          "answerHash": "44094c4a281484daadf28e67a4745747",
          "positive": true
        },
        {
          "documentId": "S25vd2xlZGdlQmFzZTo1ZWM1YmJiZTczNmUxNmM0NDRjZDI2ZGM=",
          "answer": "보험 가입 방법은 아래와 같습니다.",
          "answerHash": "296ffa9691166c583b00365fb6839a06",
          "positive": false
        },
        {
          "documentId": "S25vd2xlZGdlQmFzZTo1ZWM1YmJiZTczNmUxNmM0NDRjZDI2ZGM=",
          "answer": "30일 이후 해지 시 보험료 환불이 어려울 수 있습니다.",
          "answerHash": "48e5273910c913dbf0fc08482f7cd22c",
          "positive": true
        }
      ]
    }
  ],
  "count": 3
}

Documents Search Feedback

POST https://backend.alli.ai/webapi/mrc_feedback

이 API 를 사용하면 검색 쿼리에 따라 추출된 검색 결과에 대해 피드백을 주거나 제거할 수 있습니다.

Headers

Request Body

{
  "errors": null,
  "result": {
    "agentFeedback": {
      "positiveCount": NUMBER,
      "negativeCount": NUMBER
    }
  }
}

Request Example

YOUR API KEY 를 프로젝트의 API 키로 바꾸어야 합니다. API 키 얻기 항목을 참고하세요.

DOCUMENT_ID 와 ANSWER_HASH 부분을 해당하는 ID 로 바꾸어야 합니다. 각각의 정보를 얻으려면 Documents 에서 검색하기의 Response Example 항목이나 Documents Feedbacks의 Response Example 항목을 참고하세요.

curl https://backend.alli.ai/webapi/mrc_feedback \
-d '{"query": "보험 해지는 어떻게 하나요?", 
     "id": "DOCUMENT_ID", 
     "answerHash": "ANSWER_HASH", 
     "isPositive": true}' \
-H "Content-Type: application/json" \
-H "API-KEY: YOUR API KEY"

Response Example

{
  "errors": null,
  "result": {
    "agentFeedback": {
      "positiveCount": 2,
      "negativeCount": 1
    }
  }
}

Documents Search User Feedback

POST https://backend.alli.ai/webapi/mrc/user_feedback

이 API 를 이용해 특정 Documents 검색 결과에 긍정 혹은 부정 유저 피드백을 부여할 수 있습니다.

Headers

Request Body

{
    "result": {
        "userFeedback": {
            "positiveCount": 1,
            "negativeCount": 0
        }
    }
}

Request Example

curl -request POST 'https://backend.alli.ai/webapi/mrc/user_feedback' \
--header 'API-KEY: YOUR_API_KEY' \
-d '{
    "query": "왜 머신 러닝을 사용하나?",
    "answer": "However, this is rarely robust to natural language variation.\nSince the so-called \"statistical revolution\"[11][12] in the late 1980s and mid 1990s, much natural language processing research has relied heavily on machine learning.\nThe machine-learning paradigm calls instead for using statistical inference to automatically learn such rules through the analysis of large corpora of typical real-world examples (a corpus (plural, \"corpora\") is a set of documents, possibly with human or computer annotations).\nMany different classes of machine-learning algorithms have been applied to natural-language-processing tasks.\nThese algorithms take as input a large set of \"features\" that are generated from the input data.\n— From Natural language processing wiki (13).docx",
    "answerHash": "9108b12d0e2202fc39846bdeb9d2313b",
    "id": "S25vd2xlZGdlQmEuiTo2MDIxOTg3ZmekmDZmZTE0YTk4NjA2ZDU=",
    "positive": true
}'

Response Example

{
    "result": {
        "userFeedback": {
            "positiveCount": 1,
            "negativeCount": 0
        }
    }
}

Documents 업로드

POST https://backend.alli.ai/webapi/upload_file

이 API를 사용하면 로컬 저장공간에서 Cognitive Search 에 사용할 문서를 업로드할 수 있습니다. PDF, TXT, MS 워드, 파워포인트 엑셀, HTM 및 HTML 파일을 업로드할 수 있습니다. 연결된 리소스와 함께 HTML 파일을 업로드하려면 관련된 링크가 포함된 ZIP 파일을 업로드하면 됩니다.

Headers

Request Body

Request Example

/location/to/your_file는 로컬에 저장된 파일 경로로, YOUR HASH TAG 는 원하는 해시태그로 바꾸어야 합니다.

YOUR API KEY 프로젝트의 API 키로 바꾸어야 합니다. API 키 얻기 항목을 참고하세요.

curl -F 'file=@"/location/to/your_file"' \
-F 'hashtags="[\"api1\", \"api2\"]"' \
-F 'footerUrl="www.allganize.ai"' \
-F 'footerTitle="Allganize 웹사이트"' \
-F 'folder="folder 1"' \
-F 'followFolderPermission=false' \
-F 'agentViewer="[\"agent@allganize.io\"]"' \
-F 'userViewer="{
      \"variables\": {
      \"CUSTOMER_ID\": [\"customer_1\"],
      \"CUSTOMER_GROUP\": [\"Q2F0ZWdvcnlFbGVtZW5OAjYzNzkyZDY1NWM5ZDIxMTU5NDMwZDY1OA==\"]
        }
    }"' \
-H 'API-KEY: YOUR_API_KEY' https://backend.alli.ai/webapi/upload_file
    

Response Example

{
    "result": {
        "id": "S25vd2xlZGdlQmA23To2MGJjIsjA1YjM1Nz9iRc1YWIzYjA1ODk=",
        "fileName": "판매정보.docx",
        "hashtags": [
            "api1",
            "api2"
        ],
        "footer": "{\"blocks\": [{\"key\": \"oio7\", \"text\": \"— From ocr_en.png\", \"type\": \"unstyled\", \"depth\": 0, \"inlineStyleRanges\": [{\"offset\": 0, \"length\": 17, \"style\": \"ITALIC\"}], \"entityRanges\": [{\"offset\": 7, \"length\": 10, \"key\": 0}], \"data\": {}}], \"entityMap\": {\"0\": {\"type\": \"LINK\", \"mutability\": \"MUTABLE\", \"data\": {\"url\": \"https://download.alli.ai/download_document/UHJvamUiddDo1ZGMxYmI1qwe0ZTk0YWNmMmY5MjRlMzU=/S12vd2xlZGdlQmFzZTo2MGJijef1YjM1Nzc4NTc1YWIzYjA1ODk=\"}}}}",
        "folder": "folder 1", 
        "agentEditor": ["admin_1@allganize.ai", "admin_2@allganize.ai"], 
        "agentViewer": ["viewer_email@allganize.ai"],
        "allowOtherAgentsView": true,
        "allowOtherUsersView": true, 
        "properties": {}
    }
}

Upload Documents from S3

POST https://backend.alli.ai/webapi/upload_from_s3

이 API 를 이용하면 S3 에 저장된 문서를 가져와 Cognitive Search 에서 사용할 수 있습니다. 불러온 문서는 대시보드의 지식 베이스 아래 문서 탭에 등록됩니다. PDF, TXT, MS 워드, 파워포인트 엑셀, HTM 및 HTML 파일을 불러올 수 있습니다.

Headers

Request Body

Request Example

YOUR API KEY 프로젝트의 API 키로 바꾸어야 합니다. API 키 얻기 항목을 참고하세요.

curl https://backend.alli.ai/webapi/upload_from_s3 -d '{
    "path": "s3://YOUR_S3_FILE_PATH", 
    "secretKey": "YOUR_SECRET_KEY", 
    "accessKey": “YOUR_ACCESS_KEY", 
    "bucket": "YOUR_BUCKET_NAME", 
    "hashtags": ["HASHTAG_1", "HASHTAG_2"],
    "footerTitle": "Allganize API 문서",
    "footerUrl": "docs.allganize.ai"},
    "folder": "folder 1",
    "followFolderPermission": false,
    "agentViewer": ["viewer_email@allganize.ai"],
    "userViewer": {
      "variables": {
      "CUSTOMER_ID": ["id_1"],
      "CUSTOMER_GROUP": ["{categoryElementsId}"]
      }
    }}' \
-H "Content-Type: application/json" \ 
-H "API-KEY: YOUR_API_KEY"

Response Example

{
    "result": {
        "id": "S25vd2xlZGdlQmA23To2MGJjIsjA1YjM1Nz9iRc1YWIzYjA1ODk=",
        "fileName": "판매정보.docx",
        "hashtags": [
            "api1",
            "api2"
        ],
        "footer": "{\"blocks\": [{\"key\": \"oio7\", \"text\": \"— From ocr_en.png\", \"type\": \"unstyled\", \"depth\": 0, \"inlineStyleRanges\": [{\"offset\": 0, \"length\": 17, \"style\": \"ITALIC\"}], \"entityRanges\": [{\"offset\": 7, \"length\": 10, \"key\": 0}], \"data\": {}}], \"entityMap\": {\"0\": {\"type\": \"LINK\", \"mutability\": \"MUTABLE\", \"data\": {\"url\": \"https://download.alli.ai/download_document/UHJvamUiddDo1ZGMxYmI1qwe0ZTk0YWNmMmY5MjRlMzU=/S12vd2xlZGdlQmFzZTo2MGJijef1YjM1Nzc4NTc1YWIzYjA1ODk=\"}}}}",
        "folder": null,
        "agentEditor": [
            "agent1@allganize.io"
        ],
        "agentViewer": [],
        "userViewer": {
            "variables": {
                "CUSTOMER_ID": [
                    {
                        "id": "new_user_1",
                        "value": "new_user_1"
                    }
                ],
                "CUSTOMER_GROUP": [
                    {
                        "id": "Q2F0ZWdvcnlFbGVtZW50OjYzNdf2MjU0OWU4OTM4N2IzMTkxN2Y0ZA==",
                        "value": "group_1"
                    },
                    {
                        "id": "Q2F0ZWdvcnlFbGVtZW50OjYzNziymRU1Nzg4YWFmODVjZTU1YjVkMg==",
                        "value": "group_2"
                    }
                ]
            }
        },
        "allowOtherAgentsView": true,
        "allowOtherUsersView": false,
        "properties": {}
    }
}

Document 처리 상태 확인

GET https://backend.alli.ai/webapi/check_file_status

업로드된 문서는 변환 및 파싱 등 처리 과정을 거치게 됩니다. 이 API를 사용하면 업로드된 문서의 처리 현황을 알 수 있습니다.

Headers

Request Body

{"result": 
    {"id": "YOUR DOCUMENT ID", 
    "status": "initializing"}}

Request Example

YOUR API KEY 를 프로젝트의 API 키로 바꾸어야 합니다. API 키 얻기 항목을 참고하세요. 또한 DOCUMENT_ID 를 해당하는 ID 로 바꾸어야 합니다. Documents 에서 검색하기의 Response Example 항목, Documents Feedbacks의 Response Example 항목을 참고하세요.

curl -X GET https://backend.alli.ai/webapi/check_file_status \
-d '{"id": "DOCUMENT_ID"}' \
-H "API-KEY: YOUR API KEY" \
-H "Content-Type: application/json"

Response Example

{"result": 
    {"id": "S25vd2xlZGdlQmFzZTo1ZWM1YmJiZTczNmUxNmM0NDRjZDI2ZGM", 
    "status": "initializing"}}

Status 는 아래 중 한가지 값을 가집니다.

'initializing : preparing for the processing or waiting
'converting': converting the files
'conversion_complete'
'conversion_fail'
'parsing': parsing for retrievers
'parsing_fail'
'completed': parsing and embedding are done

Document 삭제

POST https://backend.alli.ai/webapi/delete_file

이 API 를 사용하면 업로드된 문서를 삭제할 수 있습니다. 복수의 문서를 한꺼번에 삭제할 수 있습니다.

Headers

Request Body

{
    "result": {
        "ok": true,
    },
    "errors": null
}

Request Example

YOUR API KEY 를 프로젝트의 API 키로 바꾸어야 합니다. API 키 얻기 항목을 참고하세요. 또한 DOCUMENT_ID 를 해당하는 ID 로 바꾸어야 합니다. Documents 에서 검색하기의 Response Example 항목, Documents Feedbacks의 Response Example 항목을 참고하세요.

curl -d '{"ids": ["DOCUMENT_ID"]}' \
-H "API-KEY: YOUR API KEY" \
-H "Content-Type: application/json" \
https://backend.alli.ai/webapi/delete_file

Response Example

{
    "result": {
        "ok": true,
    },
    "errors": null
}

Document 목록 조회

GET https://backend.alli.ai/webapi/knowledge_bases

이 API 를 사용하면 업로드된 문서 목록을 불러올 수 있습니다.

Query Parameters

Headers

{
  "result": {
    "items": [
      {
        "id": "S23wd2xlZGdlQmRzZTo1ZmFmMzYwZ3IyYjliMTI2OTAyMWVmMDQ=",
        "fileName": "정책문서1.docx",
        "hashtags": ["정책", "문서"],
        "folder": "folder 2", 
        "editor": ["email_1@allganize.ai", "email_2@allganize.ai"], 
        "viewer": ["email_3@allganize.ai"]
      },
      {
        "id": "S75vd2elZGdlQmFzZTo1ZmFlMjdhYmMx22E3MWM1MzA0NDI3ZWQ=",
        "fileName": "보험약관2.pdf",
        "hashtags": ["보험", "약관"],
        "folder": "folder 2", 
        "agentEditor": ["email_1@allganize.ai", "email_2@allganize.ai", "email_3@allganize.ai"], 
        "agentViewer": ["email_4@allganize.ai"],
        "userViewer": {"variables": {"CUSTOMER_ID": [{"id": "customer_id_1", "value": "customer_id_1"}]}}, 
        "allowOtherAgentsView": true, 
        "allowOtherUsersView": true
      }
    ]
  },
  "errors": null
}

Request Example

YOUR API KEY 를 프로젝트의 API 키로 바꾸어야 합니다. API 키 얻기 항목을 참고하세요.

curl -X GET -d '{"status": true, 
         "offset": 0, 
         "limit": 10, 
         "order": "FILE_NAME_ASC", 
         "hashtags": ["policy", "insurance"],
         "hashtagsSearchOperator": "OR"}' \
-H 'API-KEY: YOUR API KEY' \
https://backend.alli.ai/webapi/knowledge_bases

order 패러미터에는 아래 값들을 사용할 수 있습니다.

Response Example

{
  "result": {
    "items": [
      {
        "id": "S23wd2xlZGdlQmRzZTo1ZmFmMzYwZ3IyYjliMTI2OTAyMWVmMDQ=",
        "fileName": "정책문서1.docx",
        "hashtags": ["정책", "문서"],
        "folder": "folder 2", 
        "editor": ["email_1@allganize.ai", "email_2@allganize.ai"], 
        "viewer": ["email_3@allganize.ai"]
      },
      {
        "id": "S75vd2elZGdlQmFzZTo1ZmFlMjdhYmMx22E3MWM1MzA0NDI3ZWQ=",
        "fileName": "보험약관2.pdf",
        "hashtags": ["보험", "약관"],
        "folder": "folder 2", 
        "agentEditor": ["email_1@allganize.ai", "email_2@allganize.ai", "email_3@allganize.ai"], 
        "agentViewer": ["email_4@allganize.ai"],
        "userViewer": {"variables": {"CUSTOMER_ID": [{"id": "customer_id_1", "value": "customer_id_1"}]}}, 
        "allowOtherAgentsView": true, 
        "allowOtherUsersView": true
      }
    ]
  },
  "errors": null
}

Documents 이름 변경 (지식 베이스)

POST https://backend.alli.ai/webapi/update_kb_name

이 API 를 이용하면 업로드된 문서의 이름을 변경할 수 있습니다.

Headers

Request Body

{
    "result": {
        "id": "DOCUMENT_ID",
        "filename": "FILENAME"
    }
}

Request Example

YOUR API KEY 를 프로젝트의 API 키로 바꾸어야 합니다. API 키 얻기 항목을 참고하세요. 또한 DOCUMENT_ID 를 해당하는 ID 로 바꾸어야 합니다. Documents 에서 검색하기의 Response Example 항목, Documents Feedbacks의 Response Example 항목을 참고하세요.

curl -L -X POST 'https://backend.alli.ai/webapi/update_kb_name' \
-H 'Content-Type: application/json' \
-H 'API-KEY: YOUR_API_KEY' \
--data-raw '{"id": "DOCUMENT_ID", "filename": "FILENAME"}'

Response Example

{
    "result": {
        "id": "DOCUMENT_ID",
        "filename": "정책문서.docx"
    }
}

Documents 업데이트

POST https://backend.alli.ai/webapi/update_document

이 API 를 이용하면 지정된 문서의 해시태그, footer, footer 링크를 업데이트할 수 있습니다.

Headers

Request Body

Request Example

YOUR API KEY 를 프로젝트의 API 키로 바꾸어야 합니다. API 키 얻기 항목을 참고하세요. 또한 DOCUMENT_ID 를 해당하는 ID 로 바꾸어야 합니다. Documents 에서 검색하기의 Response Example 항목, Documents Feedbacks의 Response Example 항목을 참고하세요.

curl -L -X POST 'https://backend.alli.ai/webapi/update_document' \
-H 'Content-Type: application/json' \
-H 'API-KEY: YOUR_API_KEY' \
-d '{
    "hashtags": ["hashtag1", "hashtag2"],
    "id": "DOCUMENT_ID",
    "footerTitle": "Allganize API 문서",
    "footerUrl": "docs.allganize.ai",
    "folder": "folder 2",
    "followFolderPermission": false,
    "agentViewer": ["viewer_email@allganize.ai"],
    "userViewer": {
      "variables": {
      "CUSTOMER_ID": ["id_1"],
      "CUSTOMER_GROUP": ["{categoryElementsId}"]
        }
    },
    "allowOtherUsersView": true
    }'

Response Example

{
    "result": {
        "knowledgeBase": {
            "id": "S25vd1iuRGdlQmFzZTo2MGJhYjQzERHjYTNiNWE0PLD3MDk1YTg=",
            "hashtags": [
                "hashtag1",
                "hashtag2"
            ],
            "footer": "{\"blocks\": [{\"key\": \"qn8p\", \"text\": \"— From Allganize API documentation\", \"type\": \"unstyled\", \"depth\": 0, \"inlineStyleRanges\": [], \"entityRanges\": [{\"offset\": 7, \"length\": 27, \"key\": 0}], \"data\": {}}], \"entityMap\": {\"0\": {\"type\": \"LINK\", \"mutability\": \"MUTABLE\", \"data\": {\"url\": \"docs.allganize.ai\"}}}}",
            "folder": "folder 2", 
            "agentsEditor": ["admin_1@allganize.ai", "admin_2@allganize.ai"], 
            "agentsViewer": ["viewer_email@allganize.ai"],
            "userViewer": {"variables": {"CUSTOMER_GROUP": [{"id": "Q2F0ZwdvcnlFbGVtZW50OjYzNzcyZDY1NWM5ZDIxMTU5NDMwZDY1OA==", "value": "group_name"}], "CUSTOMER_ID": [{"id": "id_1", "value": "id_1"}]}},
            "allowOtherAgentsView": true,
            "allowOtherUsersView": true
        }
    },
    "errors": null
}

List Documents

GET https://backend-ja.alli.ai/webapi/knowledge_bases

이 API 를 사용하면 업로드된 문서 일람을 확인할 수 있습니다.

Query Parameters

Headers

아래와 같은 JSON 형식으로 리턴할 수 있습니다.

id: 리스트에 있는 문서의 ID입니다.

fileName: 리스트에 있는 문서의 파일명입니다.

hashtags: 문서에 추가된 해시태그입니다.

autoHashtags: 문서에 자동 생성된 해시태그입니다.

downloadUrl: 문서 다운로드 URL입니다.

footerUrl: 문서 푸터에 포함된 URL입니다.

folder: 문서 DB 폴더에서 답변이 검색된 경우, 이곳에 폴더명이 반한됩니다.

editor: 문서 편집 권한을 갖는 에이전트의 메일 주소 리스트입니다.

viewer: 문서 조회 권한을 갖는 에이전트의 메일 주소 리스트입니다.

count: 조건에 해당하는 문서의 총 합계입니다.

{
  "result": {
    "items": [
      {
        "id": "DOCUMENT_ID",
        "fileName": "FILENAME",
        "hashtag": ["HASHTAG_1", "HASHTAG_2"],
        "autoHashtag": ["AUTOHASHTAG_1"],
        "folder": "folder 2", 
        "editor": ["email_1@allganize.ai", "email_2@allganize.ai"], 
        "viewer": ["email_3@allganize.ai"]
      }
    ]
    "count": 1
  },
  "errors": null
}

Request Example

YOUR API KEY 를 프로젝트의 API 키로 바꾸어야 합니다. API 키 얻기 항목을 참고하세요.

curl -X GET -d '{"status": true, 
         "offset": 0, 
         "limit": 10, 
         "order": "FILE_NAME_ASC",
         "searchTerm": "term1 OR term2"  
         "hashtags": ["policy", "insurance"],
         "hashtagsSearchOperator": "OR"}' \
-H 'API-KEY: YOUR_API_KEY' \
https://backend-ja.alli.ai/webapi/knowledge_bases

다음 중 하나의 값을 order 파라미터로 사용할 수 있습니다.

Response Example

{
  "result": {
    "items": [
      {
        "id": "S23wd2xlZGdlQmRzZTo1ZmFmMzYwZ3IyYjliMTI2OTAyMWVmMDQ=",
        "fileName": "policy1.docx",
        "hashtags": ["policy"],
        "score": 1.0,
        "downloadUrl": "https://download.alli.ai/download_document/UHJvamVjdDo1YzZiYjYyNDQxNmFmYzAwMDgyMTQwNDU=/S23wd2xlZGdlQmRzZTo1ZmFmMzYwZ3IyYjliMTI2OTAyMWVmMDQ=",
        "footerUrl": "https://download.alli.ai/download_document/UHJvamVjdDo1YzZiYjYyNDQxNmFmYzAwMDgyMTQwNDU=/S23wd2xlZGdlQmRzZTo1ZmFmMzYwZ3IyYjliMTI2OTAyMWVmMDQ=",
        "folder": "folder 2", 
        "editor": ["email_1@allganize.ai", "email_2@allganize.ai"], 
        "viewer": ["email_3@allganize.ai"]
      },
      {
        "id": "S75vd2elZGdlQmFzZTo1ZmFlMjdhYmMx22E3MWM1MzA0NDI3ZWQ=",
        "fileName": "insurance_policy.pdf",
        "hashtags": ["policy", "insurance"],
        "score": 0.89,
        "downloadUrl": "https://download.alli.ai/download_document/UHJvamVjdDo1YzZiYjYyNDQxNmFmYzAwMDgyMTQwNDU=/S75vd2elZGdlQmFzZTo1ZmFlMjdhYmMx22E3MWM1MzA0NDI3ZWQ=",
        "footerUrl": "www.example.com",
        "folder": "folder 2", 
        "editor": ["email_1@allganize.ai", "email_2@allganize.ai"], 
        "viewer": ["email_3@allganize.ai"]
      }
    ]
    "count": 450
  },
  "errors": null
}

Knowledge Base Documents 상태 변경

POST https://backend.alli.ai/webapi/toggle_documents

이 API 를 사용하면 지식 베이스 다수의 문서 상태를 한꺼번에 변경할 수 있습니다.

Headers

Request Body

{
  "result": {
    "knowledgeBases": [
      {
        "id": "YOUR_FIRST_DOCUMENT_ID",
        "status": true or false
      },
      {
        "id": "YOUR_SECOND_DOCUMENT_ID",
        "status": true or false
      }
    ]
  },
  "errors": null
}

Request Example

curl -X 'POST' 
-H 'API-KEY: YOUR_API_KEY' 
-d '{ 
"ids":[YOUR_FIRST_DOCUMENT_ID, 
YOUR_SECOND_DOCUMENT_ID, ETC],
"use": true
}' 
https://backend.alli.ai/webapi/toggle_documents

Response Example

{
  "result": {
    "knowledgeBases": [
      {
        "id": "YOUR_FIRST_DOCUMENT_ID",
        "status": true
      },
      {
        "id": "YOUR_SECOND_DOCUMENT_ID",
        "status": false
      }
    ]
  },
  "errors": null
}

Knowledge Base 자동 해시태그 (Classification)

POST https://backend.alli.ai/webapi/knowledge_base_auto_hashtag

이 API 를 사용하면 해당 문서에 classification 을 이용해 제시된 자동 해시태그의 정보를 가져옵니다.

Headers

Request Body

{
    "result": {
        "updated": [
            {
                "id": "DOCUMENT_ID",
                "autoHashtags": [
                    {
                        "state": "STATE",
                        "bestConfidence": NUMBER,
                        "autoHashtag": {
                            "id": "KNOWLEDGE_BASE_AUTO_HASHTAG_ID",
                            "hashtag": "HASHTAG_VALUE"
                        }
                    }
                ]
            }
        ],
        "errors": null
    },
    "errors": null
}

Request Example

YOUR API KEY 를 프로젝트의 API 키로 바꾸어야 합니다. API 키 얻기 항목을 참고하세요. 또한 DOCUMENT_ID 를 해당하는 ID 로 바꾸어야 합니다. Documents 에서 검색하기의 Response Example 항목, Documents Feedbacks의 Response Example 항목을 참고하세요.

curl -X POST -d '{"ids": ["DOCUMENT_ID"]}' \
-H 'API-KEY: YOUR_API_KEY' \
https://backend.alli.ai/webapi/kb_auto_hashtag

Response Example

{
    "result": {
        "updated": [
            {
                "id": "S25vd2xlZGdlQmFzZTo1ZmY3Y2U0YzZiNzk4MjM0YTAwNGRkNGE=",
                "autoHashtags": [
                    {
                        "state": "SUGGESTED",
                        "bestConfidence": 0.9866862297058105,
                        "autoHashtag": {
                            "id": "QXV0b0hhc2h0YWc6NWZmNjk2ZGQyYTZmMjBhZjUxMTY3ZTU1",
                            "hashtag": "CLASSIFICATION_RESULT"
                        }
                    },
                    {
                        "state": "SUGGESTED",
                        "bestConfidence": 0.9445914626121521,
                        "autoHashtag": {
                            "id": "QXV0b0hhc2h0YWc6NWZmNjk2ZWYyYTZmMjBhZjUxMTY3ZWQ1",
                            "hashtag": "CLASSIFICATION_RESULT"
                        }
                    }
                ]
            }
        ],
        "errors": null
    },
    "errors": null
}

Knowledge Base 자동 해시태그 피드백 (Classification)

POST https://backend.alli.ai/webapi/kb_auto_hashtag_feedback

이 API 를 이용하면 문서에 제시된 자동 해시태그를 승인하거나 거절할 수 있습니다.

Headers

Request Body

{
    "result": [
        {
            "id": "KNOWLEDGE_BASE_AUTO_HASHTAG_ID",
            "state": "STATE"
        },
        {
            "id": "KNOWLEDGE_BASE_AUTO_HASHTAG_ID_2",
            "state": "STATE"
        }
    ]
}

Request Example

YOUR API KEY 를 프로젝트의 API 키로 바꾸어야 합니다. API 키 얻기 항목을 참고하세요. 또한 HASHTAG_ID 를 실제 ID 로 바꾸어야 합니다. 해시태그 ID 를 얻는 방법은 Knowledge Base Auto Hashtag (Classification) 항목을 참고하세요.

curl -X POST -d '{
    "autoHashtagFeedbacks": [
        {"id": "HASHTAG_ID_1", "state": "approved"},
        {"id": "HASHTAG_ID_2", "state": "declined"}
    ]
}' \
-H 'API-KEY: YOUR_API_KEY' \
https://backend.alli.ai/webapi/kb_auto_hashtag_feedback

Response Example

{
    "result": [
        {
            "id": "S25vd2xlZGdlQmFzZUF1dG9IYXNodGFnOjVmZjhmZmJlYzJkNmUyNjJkOTVlZTQyYg==",
            "state": "approved"
        },
        {
            "id": "S25vd2xlZGdlQmFzZUF1dG9IYXNodGFnOjVmZjhmZTdmYzJkNmUyNjJkOTVlZTI5OQ==",
            "state": "declined"
        }
    ]
}

Q&A 선택

POST https://backend.alli.ai/webapi/faq/select_answer

이 API 를 이용하면 특정 Q&A 를 고객이 선택한 것으로 처리할 수 있습니다.

Path Parameters

Request Body

{"result": "Success"}

Request Example

YOUR API KEY 를 프로젝트의 API 키로 바꾸어야 합니다. API 키 얻기 항목을 참고하세요.

Q&A_ID 를 해당하는 Q&A ID 로 바꾸어야 합니다. Q&A ID 를 얻으려면 Q&A 에서 검색하기의 Response Example 혹은 Q&A Feedbacks 의 Response Example 항목을 참고하세요.

curl -X POST -d '{
    "hashId": "Hash ID from Q&A search result",
    "id": "Q&A_ID"
}' \
-H 'API-KEY: YOUR_API_KEY' \
https://backend.alli.ai/webapi/faq/select_answer

Response Example

{
    "result": "Success"
}

Agent 관리

POST https://backend.alli.ai/webapi/agent_management

프로젝트에서 에이전트를 생성하거나 지울 수 있습니다.

Headers

Request Body

{
    "result": {
        "id" : "QWdlbnQ6NWZkMmFjMzIwODQ4MzY1ZDI4NWFjMGUw",
        "status": "deleted" 
    },
    "errors": null
}

Request Example

YOUR API KEY 를 프로젝트의 API 키로 바꾸어야 합니다. API 키 얻기 항목을 참고하세요.

curl https://backend.alli.ai/webapi/agent_management \
-d '{"email": "1234@gmail.com",
     "deleteFlag": true,
     "password": "password1234",
     "locale": "ko"}' \
-H "Content-Type: application/json" \
-H "API-KEY: YOUR_API_KEY"

Response Example

{
    "result": {
        "id" : "QWdlbnQ6NWZkMmFjMzIwODQ4MzY1ZDI4NWFjMGUw",
        "status": "created" 
    },
    "errors": null
}

해시태그 전체 확인

GET https://backend.alli.ai/webapi/hashtags

Q&A 와 Documents 에 등록된 모든 해시태그들을 조회합니다.

Headers

{
  "result": {
    "HASHTAG_1": 2,
    "HASHTAG_2": 1, ...
  }
}

Request Example

YOUR API KEY 를 프로젝트의 API 키로 바꾸어야 합니다. API 키 얻기 항목을 참고하세요.

curl -X GET \
-H "API-KEY: YOUR API KEY" \
https://backend.alli.ai/webapi/hashtags

Response Example

{
  "result": {
    "정책: 2,
    "고객대응: 1
  }
}

Q&A 검색 기록 확인

GET https://backend.alli.ai/webapi/faq_histories

과거의 Q&A 검색 기록을 확인합니다.

Query Parameters

Headers

{
    "result": {
        "histories": [
            {
                "agent": {
                    "id": "QWdlbnQ6NjA0NmMyNsksNTFjMmVlYjc4Mjg3Zjcy"
                },
                "question": "보험 정책 정보?",
                "answers": [
                    {
                        "faq": {
                            "id": "RkFROjYwND87MmUxM2MzYmQ5MjVmMzgxMGNkOQ=="
                        },
                        "effectiveConfidence": 0.9999999999999927,
                        "confidence": 0.9999999999999927
                    }
                ]
            }
        ],
        "count": 1
    },
    "errors": null
}

Request Example

YOUR API KEY 를 프로젝트의 API 키로 바꾸어야 합니다. API 키 얻기 항목을 참고하세요.

curl -X GET \ 
-d { "startDate":"2021-02-19","endDate":"2021-02-23", \
"order": "DESC","searchTerm":"life", "limit": 1, "offset": 0 } \
-H 'API-KEY: YOUR_API_KEY' \
https://backend.alli.ai/webapi/faq_histories

Response Example

{
    "result": {
        "histories": [
            {
                "agent": {
                    "id": "QWdlbnQ6NjA0NmMyNsksNTFjMmVlYjc4Mjg3Zjcy"
                },
                "question": "보험 정책 정보?",
                "answers": [
                    {
                        "faq": {
                            "id": "RkFROjYwND87MmUxM2MzYmQ5MjVmMzgxMGNkOQ=="
                        },
                        "effectiveConfidence": 0.9999999999999927,
                        "confidence": 0.9999999999999927
                    }
                ]
            }
        ],
        "count": 1
    },
    "errors": null
}

Documents 검색 기록 확인

GET https://backend.alli.ai/webapi/mrc_histories

과거의 Documents 검색 기록을 확인합니다.

Query Parameters

Headers

{
    "result": {
        "histories": [
            {
                "agent": {
                    "id": "QWdlbnQ6NWZiNzc5MGIwZjE3Zjc5ZmNiNzVlYzFh"
                },
                "question": "c004 프로그램 메모리",
                "answers": [
                    {
                        "knowledgeBase": {
                            "id": "S25vd2xlZGdlQmFzZTo2MDUyODM0ODFiYzgxNDcwZTEzNGRjNDQ=",
                            "fileName": "specification_en.pdf"
                        },
                        "answer": "{\"blocks\": [{\"key\": \"kn13\", \"type\": \"unstyled\", \"text\": \"Type capacity program memory program memory - C004, B04KR: 80KB\", \"depth\": 0, \"inlineStyleRanges\": [], \"entityRanges\": [], \"data\": {}}, {\"key\": \"2vjf\", \"text\": \" \", \"type\": \"unstyled\", \"depth\": 0, \"inlineStyleRanges\": [], \"entityRanges\": [], \"data\": {}}, {\"key\": \"45cb\", \"text\": \"— From specification_en.pdf\", \"type\": \"unstyled\", \"depth\": 0, \"inlineStyleRanges\": [{\"offset\": 0, \"length\": 27, \"style\": \"ITALIC\"}], \"entityRanges\": [{\"offset\": 7, \"length\": 20, \"key\": 0}], \"data\": {}}], \"entityMap\": {\"0\": {\"type\": \"LINK\", \"mutability\": \"MUTABLE\", \"data\": {\"url\": \"https://staging-download.alli.ai/download_document/UHJvamVjdDo1ZmI3NzkwYjBmMTdmNzlmY2I3NWVjMWM=/S25vd2xlZGdlQmFzZTo2MDUyODM0ODFiYzgxNDcwZTEzNGRjNDQ=\"}}}}",
                        "answerHash": "6648c76e9be27864557f84ab7822cde8",
                        "answerFormat": "DRAFTJS",
                        "hashtags": [],
                        "feedbackAvailable": true,
                        "columnFilterValues": []
                    },
                    ...
                    {
                        "knowledgeBase": {
                            "id": "S25vd2xlZGdlQmFzZTo2MDUyODM0ODFiYzgxNDcwZTEzNGRjNDQ=",
                            "fileName": "specification_en.pdf"
                        },
                        "answer": "{\"blocks\": [{\"key\": \"87us\", \"type\": \"unstyled\", \"text\": \"Type capacity reload memory reload memory - C004, B04KR: 2048KB\", \"depth\": 0, \"inlineStyleRanges\": [], \"entityRanges\": [], \"data\": {}}, {\"key\": \"p0wr\", \"text\": \" \", \"type\": \"unstyled\", \"depth\": 0, \"inlineStyleRanges\": [], \"entityRanges\": [], \"data\": {}}, {\"key\": \"qpau\", \"text\": \"— From specification_en.pdf\", \"type\": \"unstyled\", \"depth\": 0, \"inlineStyleRanges\": [{\"offset\": 0, \"length\": 27, \"style\": \"ITALIC\"}], \"entityRanges\": [{\"offset\": 7, \"length\": 20, \"key\": 0}], \"data\": {}}], \"entityMap\": {\"0\": {\"type\": \"LINK\", \"mutability\": \"MUTABLE\", \"data\": {\"url\": \"https://staging-download.alli.ai/download_document/UHJvamVjdDo1ZmI3NzkwYjBmMTdmNzlmY2I3NWVjMWM=/S25vd2xlZGdlQmFzZTo2MDUyODM0ODFiYzgxNDcwZTEzNGRjNDQ=\"}}}}",
                        "answerHash": "9537b6560701930d079f39ced8be1b3e",
                        "answerFormat": "DRAFTJS",
                        "hashtags": [],
                        "feedbackAvailable": true,
                        "columnFilterValues": []
                    }
                ]
            }
        ],
        "count": 1
    },
    "errors": null
}

Request Example

YOUR API KEY 를 프로젝트의 API 키로 바꾸어야 합니다. API 키 얻기 항목을 참고하세요.

curl -X GET \ 
-d { "startDate":"2021-02-19","endDate":"2021-02-23", \
"order": "DESC","searchTerm":"life", "limit": 1, "offset": 0 } \
-H 'API-KEY: YOUR_API_KEY' \
https://backend.alli.ai/webapi/mrc_histories

Response Example

{
    "result": {
        "histories": [
            {
                "agent": {
                    "id": "QWdlbnQ6NWZiNzc5MGIwZjE3Zjc5ZmNiNzVlYzFh"
                },
                "question": "c004 프로그램 메모리",
                "answers": [
                    {
                        "knowledgeBase": {
                            "id": "S25vd2xlZGdlQmFzZTo2MDUyODM0ODFiYzgxNDcwZTEzNGRjNDQ=",
                            "fileName": "specification_en.pdf"
                        },
                        "answer": "{\"blocks\": [{\"key\": \"kn13\", \"type\": \"unstyled\", \"text\": \"Type capacity program memory program memory - C004, B04KR: 80KB\", \"depth\": 0, \"inlineStyleRanges\": [], \"entityRanges\": [], \"data\": {}}, {\"key\": \"2vjf\", \"text\": \" \", \"type\": \"unstyled\", \"depth\": 0, \"inlineStyleRanges\": [], \"entityRanges\": [], \"data\": {}}, {\"key\": \"45cb\", \"text\": \"— From specification_en.pdf\", \"type\": \"unstyled\", \"depth\": 0, \"inlineStyleRanges\": [{\"offset\": 0, \"length\": 27, \"style\": \"ITALIC\"}], \"entityRanges\": [{\"offset\": 7, \"length\": 20, \"key\": 0}], \"data\": {}}], \"entityMap\": {\"0\": {\"type\": \"LINK\", \"mutability\": \"MUTABLE\", \"data\": {\"url\": \"https://staging-download.alli.ai/download_document/UHJvamVjdDo1ZmI3NzkwYjBmMTdmNzlmY2I3NWVjMWM=/S25vd2xlZGdlQmFzZTo2MDUyODM0ODFiYzgxNDcwZTEzNGRjNDQ=\"}}}}",
                        "answerHash": "6648c76e9be27864557f84ab7822cde8",
                        "answerFormat": "DRAFTJS",
                        "hashtags": [],
                        "feedbackAvailable": true,
                        "columnFilterValues": []
                    },
                    ...
                    {
                        "knowledgeBase": {
                            "id": "S25vd2xlZGdlQmFzZTo2MDUyODM0ODFiYzgxNDcwZTEzNGRjNDQ=",
                            "fileName": "specification_en.pdf"
                        },
                        "answer": "{\"blocks\": [{\"key\": \"87us\", \"type\": \"unstyled\", \"text\": \"Type capacity reload memory reload memory - C004, B04KR: 2048KB\", \"depth\": 0, \"inlineStyleRanges\": [], \"entityRanges\": [], \"data\": {}}, {\"key\": \"p0wr\", \"text\": \" \", \"type\": \"unstyled\", \"depth\": 0, \"inlineStyleRanges\": [], \"entityRanges\": [], \"data\": {}}, {\"key\": \"qpau\", \"text\": \"— From specification_en.pdf\", \"type\": \"unstyled\", \"depth\": 0, \"inlineStyleRanges\": [{\"offset\": 0, \"length\": 27, \"style\": \"ITALIC\"}], \"entityRanges\": [{\"offset\": 7, \"length\": 20, \"key\": 0}], \"data\": {}}], \"entityMap\": {\"0\": {\"type\": \"LINK\", \"mutability\": \"MUTABLE\", \"data\": {\"url\": \"https://staging-download.alli.ai/download_document/UHJvamVjdDo1ZmI3NzkwYjBmMTdmNzlmY2I3NWVjMWM=/S25vd2xlZGdlQmFzZTo2MDUyODM0ODFiYzgxNDcwZTEzNGRjNDQ=\"}}}}",
                        "answerHash": "9537b6560701930d079f39ced8be1b3e",
                        "answerFormat": "DRAFTJS",
                        "hashtags": [],
                        "feedbackAvailable": true,
                        "columnFilterValues": []
                    }
                ]
            }
        ],
        "count": 1
    },
    "errors": null
}

유저 정보 조회하기

GET https://backend.alli.ai/webapi/users

유저(고객)의 OWN-USER-ID, CUSTOMER GROUP, e-mail 을 확인합니다.

Query Parameters

Headers

{
  "result": [
    {
      "id": "1"
      "email": "example_1@email.com",
      "customerGroup": {
        "id": "B3D0ZWdvcnlFbGVtZW50OjYzNzcyZDY1NWM5ZDIxMTU5NDMwZDY1OA==",
        "value": "IT",
      }
    },
    {
      "id": "2"
      "email": "example_2@email.com",
      "customerGroup": {
        "id": "X2F0ZWdvcnlFbGVtZW50OjYzNzcyZDY1NWM5ZDIxMTU5NDMwZDY1OC==",
        "value": "QA",
      }
    }
  ],
  "totalCount": 10
  "count": 2
}

Request Example

YOUR API KEY 를 프로젝트의 API 키로 바꾸어야 합니다. API 키 얻기 항목을 참고하세요.

curl -L -X GET 'https://backend.alli.ai/webapi/users' \
-H 'API-KEY: YOUR_API_KEY'

Response Example

{
  "result": [
    {
      "id": "1"
      "email": "example_1@email.com",
      "customerGroup": {
        "id": "B3D0ZWdvcnlFbGVtZW50OjYzNzcyZDY1NWM5ZDIxMTU5NDMwZDY1OA==",
        "value": "IT",
      }
    },
    {
      "id": "2"
      "email": "example_2@email.com",
      "customerGroup": {
        "id": "X2F0ZWdvcnlFbGVtZW50OjYzNzcyZDY1NWM5ZDIxMTU5NDMwZDY1OC==",
        "value": "QA",
      }
    }
  ],
  "totalCount": 10
  "count": 2
}

개별 유저 정보 조회하기

GET https://backend.alli.ai/webapi/users/{OWN-USER-ID}

개별 유저(고객)의 OWN-USER-ID, CUSTOMER GROUP, e-mail 을 확인합니다.

Path Parameters

Headers

{
  "result": {
    "id": "123"
    "email": "abc@email.com",
    "customerGroup": {
      "id": "Q2F0ZWdvcnlFbGVtZW50OjYzNzcyZDY1NWM5sXIxMTU5NDMwZDY1OA==",
      "value": "IT",
    }
  }
}

Request Example

YOUR API KEY 를 프로젝트의 API 키로 바꾸어야 합니다. API 키 얻기 항목을 참고하세요.

{OWN-USER-ID}를 해당하는 사용자의 ID로 바꾸어야합니다. 유저 정보 조회하기 API를 사용해서 전체 유저의 ID를 획득하실 수 있습니다.

curl -L -X GET 'https://backend.alli.ai/webapi/user/{OWN-USER-ID}' \
-H 'API-KEY: YOUR_API_KEY'

Response Example

{
  "result": {
    "id": "123"
    "email": "abc@email.com",
    "customerGroup": {
      "id": "Q2F0ZWdvcnlFbGVtZW50OjYzNzcyZDY1NWM5sXIxMTU5NDMwZDY1OA==",
      "value": "IT",
    }
  }
}

유저 정보 업데이트하기

POST https://backend.alli.ai/webapi/user/{OWN-USER-ID}/customer_variables/{variableName}

개별 유저(고객)의 OWN-USER-ID, CUSTOMER GROUP를 업데이트하실 수 있습니다..

Path Parameters

Headers

Request Body

{
  "result": {
    "id": "123"
    "email": "sdf@sdf.ca",
    "customerGroup": {
      "id": "123",
      "value": "123",
    }
  }
}

Request Example

YOUR API KEY 를 프로젝트의 API 키로 바꾸어야 합니다. API 키 얻기 항목을 참고하세요.

{variableName} 및 {id}를 해당하는 값으로 바꾸어야합니다. 업데이트하고자하는 항목( "CUSTOMER_GROUP" 혹은 "CUSTOMER_ID”)을 {variableName}에 입력하시고, 변경하시려는 id 값을 {id}에 입력해주세요. 유저 정보 조회하기 API를 통해 필요한 id를 확인하실 수 있습니다.

curl -L -X POST 'https://backend.alli.ai/webapi/user/{OWN-USER-ID}/customer_variable/{variableName}' \
-H 'Content-Type: application/json' \
-H 'API-KEY: YOUR_API_KEY' \
-d '{
    "id": "{id}"
}'

Response Example

{
  "result": {
    "name": "CUSTOMER_ID",
    "type": "STRING"
    "id": "60091782",
    "value": "60091782"
  } 
}

CUSTOMER GROUP 조회하기

GET https://backend.alli.ai/webapi/customer_variable/customer_group/category_elements

등록된 CUSTOMER GROUP을 확인합니다.

Headers

{
  "result": [
    {
      "id": "RkFROjVkZDQ4ZWFhN2E4ZGM2M2Y4OGNhZmUzOa==",
      "value": "IT",
    },
    {
      "id": "RkFROjVkZDQ4ZWFhN2E4ZGM2M2Y4OGNhZmUzOb==",
      "value": "QA",
    },
  ]
}

Request Example

YOUR API KEY 를 프로젝트의 API 키로 바꾸어야 합니다. API 키 얻기 항목을 참고하세요.

curl -L -X GET 'https://backend.alli.ai/webapi/customer_variable/customer_group/category_elements' \
-H 'API-KEY: YOUR_API_KEY'

Response Example

{
  "result": [
    {
      "id": "RkFROjVkZDQ4ZWFhN2E4ZGM2M2Y4OGNhZmUzOa==",
      "value": "IT",
    },
    {
      "id": "RkFROjVkZDQ4ZWFhN2E4ZGM2M2Y4OGNhZmUzOb==",
      "value": "QA",
    },
  ]
}

CUSTOMER GROUP 생성하기

POST https://backend.alli.ai/webapi/customer_variable/customer_group/category_element

CUSTOMER GROUP을 생성합니다.

Headers

Request Body

{
  "result": {
    "id": "category_element_id"
    "value": "sample_category_element"
  }
}

Request example

YOUR API KEY 를 프로젝트의 API 키로 바꾸어야 합니다. API 키 얻기 항목을 참고하세요.

curl -L -X POST 'https://backend.alli.ai/webapi/customer_variable/{variableName}/category_element' \
-H 'Content-Type: application/json' \
-H 'API-KEY: YOUR_API_KEY' \
-d '{
    "value": "sample_category_element"
}'

Response example

{
  "result": {
    "id": "category_element_id"
    "value": "sample_category_element"
  }
}

CUSTOMER GROUP 업데이트하기

POST https://backend.alli.ai/webapi/customer_variable/customer_group/category_element/{categoryElementId}

CUSTOMER GROUP을 업데이트합니다.

Path Parameters

Headers

Request Body

{
  "result": {
    "id": "category_element_id"
    "value": "sample_category_element"
  }
}

Request Example

YOUR API KEY 를 프로젝트의 API 키로 바꾸어야 합니다. API 키 얻기 항목을 참고하세요.

{categoryElementId}를 해당하는 CUSTOMER GROUP의 ID로 바꾸어야합니다. CUSTOMER GROUP 조회하기 API를 사용해서 획득하실 수 있습니다.

curl -L -X POST 'https://backend.alli.ai/webapi/customer_variable/customer_group/category_element/{categoryElementId}' \
-H 'Content-Type: application/json' \
-H 'API-KEY: YOUR_API_KEY' \
-d '{
    "value": "sample_category_element"
}'

Response Example

{
  "result": {
    "id": "category_element_id"
    "value": "sample_category_element"
  }
}

CUSTOMER GROUP 삭제하기

DELETE https://backend.alli.ai/webapi/customer_variable/customer_group/category_element/{categoryElementId}

CUSTOMER GROUP을 삭제합니다.

Path Parameters

Headers

{}

Request Example

YOUR API KEY 를 프로젝트의 API 키로 바꾸어야 합니다. API 키 얻기 항목을 참고하세요.

{categoryElementId}를 해당하는 CUSTOMER GROUP의 ID로 바꾸어야합니다. CUSTOMER GROUP 조회하기 API를 사용해서 획득하실 수 있습니다.

curl -L -X DELETE 'https://backend.alli.ai/webapi/customer_variable/customer_group/category_element/{categoryElementId}' \
-H 'API-KEY: YOUR_API_KEY'

Response Example

{}

Last updated