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

Name
Type
Description

API-KEY*

string

할당된 API 키입니다. 대시보드의 설정 메뉴 > 일반 탭에서 찾을 수 있습니다.

AGENT-EMAIL

string

해당 API 콜을 실행하는 에이전트를 지정하고 싶은 경우 에이전트 이메일을 입력합니다. 에이전트 이메일은 대시보드의 프로젝트 설정 > 담당자 메뉴에서 확인할 수 있습니다.

OWN-USER-ID

string

해당 API 콜을 실행하는 유저를 지정하고 싶은 경우 신규 혹은 기존 유저 ID 를 입력합니다. 유저 ID 는 대시보드의 고객 메뉴에서 확인할 수 있습니다.

USER-EMAIL

string

OWN-USER-ID 와 함께 사용합니다. 이메일 주소를 입력하여 해당 유저의 이메일 정보를 업데이트할 수 있습니다.

Request Body

Name
Type
Description

autoRegisterCandidates

boolean

기본값은 true 입니다. 이 값을 false 로 설정하면 정답을 찾지 못한 경우에 자동으로 Candidates에 등록하지 않습니다.

hashtagsOperator

string

AND 혹은 OR 값입니다. 지정된 해시태그를 모두 포함하는 Q&A 를 찾으려면 AND를, 하나라도 포함하는 Q&A 를 찾으려면 OR 를 사용합니다.

hashtags

array

해당 해시태그를 포함하는 Q&A 만 검색 대상에 포함합니다.

maxResults

integer

리턴할 결과의 최대 개수입니다.

query*

string

문자열 형식의 검색 쿼리입니다.

format

string

html 혹은 text 입니다. 답변에 Styled html 이 포함되어 있는 경우 (폰트 크기 혹은 색상 등) html 을 사용하면 됩니다. 단순 텍스트로만 답변을 얻고 싶으면 text 를 사용합니다. 기본값은 html 입니다.

{"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

Name
Type
Description

API-KEY*

string

할당된 API 키입니다. 대시보드의 일반 > 설정 메뉴에서 찾을 수 있습니다.

AGENT-EMAIL

string

해당 API 콜을 실행하는 에이전트를 지정하고 싶은 경우 에이전트 이메일을 입력합니다. 에이전트 이메일은 대시보드의 프로젝트 설정 > 담당자 메뉴에서 확인할 수 있습니다.

OWN-USER-ID

string

해당 API 콜을 실행하는 유저를 지정하고 싶은 경우 신규 혹은 기존 유저 ID 를 입력합니다. 유저 ID 는 대시보드의 고객 메뉴에서 확인할 수 있습니다.

USER-EMAIL

string

OWN-USER-ID 와 함께 사용합니다. 이메일 주소를 입력하여 해당 유저의 이메일 정보를 업데이트할 수 있습니다.

Request Body

Name
Type
Description

returnPreview

boolean

true 인 경우 각 검색 결과 html 프리뷰의 html body 및 css 정보가 리턴됩니다. 기본값은 false 입니다.

autoRegisterCandidates

boolean

default 값은 true 입니다. 이 값을 false 로 설정하면 정답을 찾지 못한 경우에 자동으로 Candidates 에 등록하지 않습니다.

hashtagsOperator

string

AND 혹은 OR 값입니다. 지정된 해시태그를 모두 포함하는 Q&A 를 찾으려면 AND를, 하나라도 포함하는 Q&A 를 찾으려면 OR 를 사용합니다.

maxResults

integer

확인할 검색 결과의 최대 개수입니다.

query*

string

문자열 형식의 검색 쿼리입니다.

hashtags

string

대시보드에 등록한 문서에 해시태그를 추가할 수 있으며, hashtags 를 사용해 해당 태그가 붙은 문서로 검색 대상을 한정할 수 있습니다.

format

string

html 혹은 text 입니다. 답변에 styled html 이 포함되어 있는 경우 (폰트 크기 혹은 색상 등) html 을 사용하면 됩니다. 단순 텍스트로만 답변을 얻고 싶으면 text 를 사용합니다. 기본값은 html 입니다.

returnPdfPreview

boolean

true 인 경우 각 검색 결과 pdf 프리뷰의 링크를 pdfPreview 패러미터로 리턴합니다.

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

Name
Type
Description

API-KEY*

string

할당된 API 키입니다. 대시보드의 일반 > 설정 메뉴에서 찾을 수 있습니다.

Request Body

Name
Type
Description

id*

string

확인하고자 하는 Q&A 의 ID입니다.

format

string

Q&A 의 답변 부분 형식입니다. html 혹은 text 을 사용할 수 있습니다. 기본값은 html 입니다.

{
    "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

Name
Type
Description

API-KEY*

string

할당된 API 키입니다. 대시보드의 일반 > 설정 메뉴에서 찾을 수 있습니다.

Request Body

Name
Type
Description

id*

string

확인하고자 하는 문서의 ID The id of the document.

{"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

Name
Type
Description

API-KEY*

string

할당된 API 키입니다. 대시보드의 일반 > 설정 메뉴에서 찾을 수 있습니다.

AGENT-EMAIL

string

특정 에이전트가 부여한 피드백만 조회하고 싶은 경우 에이전트의 이메일을 입력합니다. 에이전트 이메일은 대시보드의 프로젝트 설정 > 담당자 메뉴에서 확인할 수 있습니다.

OWN-USER-ID

string

특정 유저가 뷰여한 피드백만 조회하고 싶은 경우 유저의 아이디를 입력합니다. 유저 ID 는 대시보드의 고객 메뉴에서 확인할 수 있습니다.

Request Body

Name
Type
Description

offset

integer

페이지에 출력될 첫번째 항목의 위치를 결정합니다.

limit

integer

한 페이지에 몇개의 항목을 출력할 결정합니다. 최대값은 100입니다.

{
  "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

Name
Type
Description

API-KEY*

string

할당된 API 키입니다. 대시보드의 일반 > 설정 메뉴에서 찾을 수 있습니다.

AGENT-EMAIL

string

해당 API 콜을 실행하는 에이전트를 지정하고 싶은 경우 에이전트 이메일을 입력합니다. 에이전트 이메일은 대시보드의 프로젝트 설정 > 담당자 메뉴에서 확인할 수 있습니다.

Request Body

Name
Type
Description

query*

string

해당 Q&A 에 피드백 정보를 주거나 취소하고자 하는 검색 쿼리입니다.

id*

string

피드백 정보를 주거나 취소할 Q&A 의 ID 입니다. 검색이 일어날 때 검색 쿼리와 결과 Q&A 쌍에 대해 주어지며, 위의 POST Q&A API 를 이용해 추출할 수 있습니다.

isPositive*

boolean

true 이면 긍정 피드백을 주며, false 이면 부정 피드백을 줍니다. null 이면 주어진 피드백을 취소합니다.

{
  "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

Name
Type
Description

API-KEY*

string

할당된 API 키입니다. 대시보드의 일반 > 설정 메뉴에서 찾을 수 있습니다.

OWN-USER-ID

string

해당 API 콜을 실행하는 유저를 지정하고 싶은 경우 신규 혹은 기존 유저 ID 를 입력합니다. 유저 ID 는 대시보드의 고객 메뉴에서 확인할 수 있습니다.

USER-EMAIL

string

OWN-USER-ID 와 함께 사용합니다. 이메일 주소를 입력하여 해당 유저의 이메일 정보를 업데이트할 수 있습니다.

Request Body

Name
Type
Description

prev

boolean

해당 쿼리에 부여한 과거의 피드백을 수정하려면 true 로 설정합니다.

positive*

boolean

true 인 경우 긍정 피드백, false 인 경우 부정 피드백을 부여합니다.

query*

string

결과에 피드백을 부여할 검색 쿼리입니다.

id*

string

피드백 정보를 Q&A 의 ID 입니다. 검색이 일어날 때 검색 쿼리와 결과 Q&A 쌍에 대해 주어지며, 위의 POST Q&A API 를 이용해 추출할 수 있습니다.

analyticsHashtags

array

해시태그 별 통계에서 사용될 해시태그를 수동으로 등록할 수 있습니다. 해당 해시태그가 적용 범위로 사용됩니다.

{
    "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

Name
Type
Description

API-KEY*

string

할당된 API 키입니다. 대시보드의 일반 > 설정 메뉴에서 찾을 수 있습니다.

AGENT-EMAIL

string

해당 API 콜을 실행하는 에이전트를 지정하고 싶은 경우 에이전트 이메일을 입력합니다. 에이전트 이메일은 대시보드의 프로젝트 설정 > 담당자 메뉴에서 확인할 수 있습니다.

Request Body

Name
Type
Description

file*

string

Q&A 파일이 저장된 로컬 위치입니다. xlsx, tsv, csv 및 zip 파일 형식을 지원합니다.

{
    "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

Name
Type
Description

API-KEY*

string

할당된 API 키입니다. 대시보드의 일반 > 설정 메뉴에서 찾을 수 있습니다.

AGENT-EMAIL

string

해당 API 콜을 실행하는 에이전트를 지정하고 싶은 경우 에이전트 이메일을 입력합니다. 에이전트 이메일은 대시보드의 프로젝트 설정 > 담당자 메뉴에서 확인할 수 있습니다.

Request Body

Name
Type
Description

status

string

ON 혹은 OFF 값을 가집니다. ON 인 경우 해당 Q&A 가 Q&A 검색에 사용됩니다.

question*

string

Q&A 의 질문 부분입니다.

similarQuestions

array

동일한 답변을 가지는 유사한 질문들입니다. 복수의 질문을 추가할 수 있습니다.

answer*

string

Q&A 의 답변 부분입니다. 질문이 동일한 Q&A 가 존재하는 경우 해당 답변으로 기존 Q&A 가 업데이트됩니다.

hashtags

array

Q&A 에 추가될 해시태그들입니다. 복수의 해시태그를 추가할 수 있습니다.

memo

string

해당 Q&A 와 관련해 다른 에이전트와 공유할 메모를 추가할 수 있습니다.

followFolderPermission

boolean

업로드 시 속한 폴더가 있을 경우, 해당 폴더의 권한을 그대로 승계하거나 승계하지 않습니다.(기본값: 참) 승계하지 않을 경우, 아래에서 따로 지정하는 권한을 사용합니다. 별도로 지정하지 않을 경우, 모든 에이전트 및 유저가 권한을 갖게 됩니다.

agentEditor

array

해당 파일을 편집 가능한 권한을 가진 에이전트를 등록합니다.

agentViewer

array

해당 파일을 조회 가능한 권한을 가진 에이전트를 등록합니다.

userViewer

object

해당 파일을 조회 가능한 권한을 가진 유저를 등록합니다. customer_id, customer_group을 이용해 등록할 수 있습니다. customer_id는 own-user-id와 동일하고, customer_group의 id(categoryElementsId)는 CUSTOMER GROUP 조회하기 API를 통해 획득하실 수 있습니다.

allowOtherAgentsView

boolean

editor/viewer 목록에 없는 에이전트도 조회가 가능하도록 설정합니다.

allowOtherUsersView

boolean

viewer 목록에 없는 유저도 조회가 가능하도록 설정합니다.

{
    "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

Name
Type
Description

API-KEY*

string

할당된 API 키입니다. 대시보드의 일반 > 설정 메뉴에서 찾을 수 있습니다.

Request Body

Name
Type
Description

id*

string

삭제할 Q&A 의 ID 입니다.

{
    "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

Name
Type
Description

API-KEY*

string

할당된 API 키입니다. 대시보드의 일반 > 설정 메뉴에서 찾을 수 있습니다.

Request Body

Name
Type
Description

searchTerm

string

Q&A 목록을 필터링할 키워드 검색 쿼리입니다. Operator 를 이용해 고급 검색이 가능합니다. "TERM1 TERM2" 로 AND 검색, "TERM1 OR TERM2" 로 OR 검색, "\"TERM\"" 로 정확하게 일치하는 경우 검색이 가능합니다.

isUsed

boolean

true 인 경우 켜져있는 Q&A 만 조회합니다. false 인 경우 꺼져있는 Q&A 만 조회합니다.

hashtags

array

해시태그를 이용해 목록을 필터링합니다. 복수의 태그를 사용할 수 있습니다.

hashtagsOperator

string

and 혹은 or 를 사용할 수 있습니다. and 인 경우 복수의 해시태그를 모두 가지는 Q&A 만 조회합니다. or 인 경우 하나라도 가지는 Q&A 를 모두 조회합니다.

createdByAgent

boolean

true 인 경우 에이전트가 직접 등록한 Q&A 만 조회합니다. false 인 경우 그렇지 않은 Q&A 들만 조회합니다. createdByAgent, answeredByMrc, autoGenerated, editedByAgent 필터들은 상호 배타적으로 적용되며, 둘 이상이 사용될때는 OR 로직이 적용됩니다.

answeredByMrc

boolean

true 인 경우 문서에서 자동으로 답변이 추출된 Q&A 만 조회합니다. false 인 경우 그렇지 않은 Q&A 들만 조회합니다.

autoGenerated

boolean

true 인 경우 자동 생성된 Q&A 만 조회합니다. false 인 경우 그렇지 않은 Q&A 들만 조회합니다.

editedByAgent

boolean

true 인 경우 에이전트가 편집한 기록이 있는 Q&A 만 조회합니다. false 인 경우 그렇지 않은 Q&A 들만 조회합니다.

format

string

html 혹은 text 입니다. 답변에 styled html 이 포함되어 있는 경우 (폰트 크기 혹은 색상 등) html 을 사용하면 됩니다. 단순 텍스트로만 답변을 얻고 싶으면 text 를 사용합니다. 기본값은 html 입니다.

offset

integer

페이지에 출력될 첫번째 항목의 위치를 결정합니다.

limit

integer

한 페이지에 몇개의 항목을 출력할 결정합니다. 최대값 및 기본은 1,000입니다.

{
    "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

Name
Type
Description

API-KEY*

string

할당된 API 키입니다. 대시보드의 일반 > 설정 메뉴에서 찾을 수 있습니다.

Request Body

Name
Type
Description

hashtags

array

해당 해시태그들 붙어 있는 미답변 질문만 확인할 수 있도록 하는 array 입니다.

searchTerm

string

확인할 미답변 질문을 필터링하기 위한 검색 쿼리입니다. Operator 를 이용해 고급 검색이 가능합니다. "TERM1 TERM2" 로 AND 검색, "TERM1 OR TERM2" 로 OR 검색, "\"TERM\"" 로 정확하게 일치하는 경우 검색이 가능합니다.

order

string

미답변 질문을 정렬할 기준입니다. 속성_[DESC or ASC] 형식으로 구성되며, 속성에는 FREQUENCY 와 CREATEDAT 이 있습니다.

state

string

확인할 미답변 질문들의 상태입니다. ALL, ACTIVE, ARCHIVED 중 하나의 값입니다.

offset

integer

페이지에 출력될 첫번째 항목의 위치를 결정합니다.

limit

integer

한 페이지에 몇개의 항목을 출력할 결정합니다. 최대값은 100입니다.

{
  "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

Name
Type
Description

API-KEY*

string

할당된 API 키입니다. 대시보드의 일반 > 설정 메뉴에서 찾을 수 있습니다.

AGENT-EMAIL

string

해당 API 콜을 실행하는 에이전트를 지정하고 싶은 경우 에이전트 이메일을 입력합니다. 에이전트 이메일은 대시보드의 프로젝트 설정 > 담당자 메뉴에서 확인할 수 있습니다.

OWN-USER-ID

string

해당 API 콜을 실행하는 유저를 지정하고 싶은 경우 신규 혹은 기존 유저 ID 를 입력합니다. 유저 ID 는 대시보드의 고객 메뉴에서 확인할 수 있습니다.

USER-EMAIL

string

OWN-USER-ID 와 함께 사용합니다. 이메일 주소를 입력하여 해당 유저의 이메일 정보를 업데이트할 수 있습니다.

Request Body

Name
Type
Description

queries*

string

등록할 미답변 질문 쿼리입니다.

analyticsHashtags

array

해시태그 별 통계에서 사용될 해시태그를 수동으로 등록할 수 있습니다. 해당 해시태그가 적용 범위로 사용됩니다. 미답변 Q&A 자체의 해시태그로 직접 등록되지 않는 점을 유의해주세요.

{
    "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

Name
Type
Description

API-KEY*

string

할당된 API 키입니다. 대시보드의 일반 > 설정 메뉴에서 찾을 수 있습니다.

AGENT-EMAIL

string

특정 에이전트가 부여한 피드백만 조회하고 싶은 경우 에이전트의 이메일을 입력합니다. 에이전트 이메일은 대시보드의 프로젝트 설정 > 담당자 메뉴에서 확인할 수 있습니다.

OWN-USER-ID

string

특정 유저가 뷰여한 피드백만 조회하고 싶은 경우 유저의 아이디를 입력합니다. 유저 ID 는 대시보드의 고객 메뉴에서 확인할 수 있습니다.

Request Body

Name
Type
Description

offset

integer

페이지에 출력될 첫번째 항목의 위치를 결정합니다.

limit

integer

한 페이지에 몇개의 항목을 출력할 결정합니다. 최대값은 100입니다.

{
  "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

Name
Type
Description

API-KEY*

string

할당된 API 키입니다. 대시보드의 일반 > 설정 메뉴에서 찾을 수 있습니다.

AGENT-EMAIL

string

해당 API 콜을 실행하는 에이전트를 지정하고 싶은 경우 에이전트 이메일을 입력합니다. 에이전트 이메일은 대시보드의 프로젝트 설정 > 담당자 메뉴에서 확인할 수 있습니다.

Request Body

Name
Type
Description

query*

string

Documents 검색 결과에 피드백 정보를 주고자 하는 검색 쿼리입니다.

id*

string

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

answerHash*

string

해당 쿼리에 대해 문서에서 추출된 답변에 부여되는 ID 값입니다. Documents 검색이 일어날 때 쿼리와 검색 결과 쌍에 주어지는 값이며, 위의 POST Documents API 를 이용해 얻을 수 있습니다.

isPositive*

boolean

true 이면 해당 쿼리에 대한 검색 결과에 긍정 피드백을 부여합니다. false 이면 부정을 부여하며, null 일 때는 주어진 피드백을 취소합니다.

{
  "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

Name
Type
Description

API-KEY*

string

할당된 API 키입니다. 대시보드의 일반 > 설정 메뉴에서 찾을 수 있습니다.

Request Body

Name
Type
Description

answerHash*

string

해당 쿼리에 대해 문서에서 추출된 답변에 부여되는 ID 값입니다. Documents 검색이 일어날 때 쿼리와 검색 결과 쌍에 주어지는 값이며, 위의 POST Documents API 를 이용해 얻을 수 있습니다.

answer*

string

해당 쿼리에 대해 문서에서 추출된 답변입니다.

id*

string

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

positive*

boolean

값이 true 인 경우 긍정 피드백이, false 인 경우 부정 피드백이 주어집니다. null 인 경우 주어진 피드백을 취소합니다.

query*

string

Documents 검색 결과에 유저 피드백 정보를 주고자 하는 검색 쿼리입니다.

analyticsHashtags

array

해시태그 별 통계에서 사용될 해시태그를 수동으로 등록할 수 있습니다. 해당 해시태그가 적용 범위로 사용됩니다.

{
    "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

Name
Type
Description

API-KEY*

string

할당된 API 키입니다. 대시보드의 일반 > 설정 메뉴에서 찾을 수 있습니다.

AGENT-EMAIL

string

해당 API 콜을 실행하는 에이전트를 지정하고 싶은 경우 에이전트 이메일을 입력합니다. 에이전트 이메일은 대시보드의 프로젝트 설정 > 담당자 메뉴에서 확인할 수 있습니다.

Request Body

Name
Type
Description

file*

string

업로드할 파일의 로컬 위치입니다.

hashtags

array

업로드된 파일에 붙일 해시태그입니다.

footerTitle

string

업로드하는 파일에서 검색 결과가 추출될 때 소스 부분에 들어갈 텍스트를 footer 형태로 입력할 수 있습니다. 해당 텍스트는 검색 결과 아래 '- From' 텍스트 다음에 출력됩니다.

footerUrl

string

footerTitle 에 연결될 링크를 지정할 수 있습니다.

folder

string

업로드 시 파일이 속하게 될 폴더를 지정할 수 있습니다.

followFolderPermission

boolean

업로드 시 속한 폴더가 있을 경우, 해당 폴더의 권한을 그대로 승계하거나 승계하지 않습니다.(기본값: 참) 승계하지 않을 경우, 아래에서 따로 지정하는 권한을 사용합니다. 별도로 지정하지 않을 경우, 모든 에이전트 및 유저가 권한을 갖게 됩니다.

agentsEditor

array

해당 파일을 편집 가능한 권한을 가진 에이전트를 등록합니다.

agentsViewer

array

해당 파일을 조회 가능한 권한을 가진 에이전트를 등록합니다.

userViewer

object

해당 파일을 조회 가능한 권한을 가진 유저를 등록합니다. customer_id, customer_group을 이용해 등록할 수 있습니다. customer_id는 own-user-id와 동일하고, customer_group의 id(categoryElementsId)는 CUSTOMER GROUP 조회하기 API를 통해 획득하실 수 있습니다.

allowOtherAgentsView

boolean

editor/viewer 목록에 없는 에이전트도 조회가 가능하도록 설정합니다.

allowOtherUsersView

boolean

viewer 목록에 없는 유저도 조회가 가능하도록 설정합니다.

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

Name
Type
Description

API-KEY*

string

할당된 API 키입니다. 대시보드의 일반 > 설정 메뉴에서 찾을 수 있습니다.

AGENT-EMAIL

string

해당 API 콜을 실행하는 에이전트를 지정하고 싶은 경우 에이전트 이메일을 입력합니다. 에이전트 이메일은 대시보드의 프로젝트 설정 > 담당자 메뉴에서 확인할 수 있습니다.

Request Body

Name
Type
Description

footerTitle

string

업로드하는 파일에서 검색 결과가 추출될 때 소스 부분에 들어갈 텍스트를 footer 형태로 입력할 수 있습니다. 해당 텍스트는 검색 결과 아래 '- From' 텍스트 다음에 출력됩니다.

footerUrl

string

footerTitle 에 연결될 링크를 지정할 수 있습니다.

hashtags

array

업로드된 파일에 붙일 해시태그입니다.

path*

string

업로드할 파일의 S3 경로입니다. 파일 이름으로 끝나야 하며 버킷 이름은 포함하지 않아야 합니다.

secretKey

string

S3 Secret Key 입니다.

accessKey

string

S3 Access Key 입니다.

bucket

string

파일이 포함된 S3 버킷 이름입니다.

folder

string

업로드 시 파일이 속하게 될 폴더를 지정할 수 있습니다.

followFolderPermission

boolean

업로드 시 속한 폴더가 있을 경우, 해당 폴더의 권한을 그대로 승계하거나 승계하지 않습니다.(기본값: 참) 승계하지 않을 경우, 아래에서 따로 지정하는 권한을 사용합니다. 별도로 지정하지 않을 경우, 모든 에이전트 및 유저가 권한을 갖게 됩니다.

agentsEditor

array

해당 파일을 편집 가능한 권한을 가진 에이전트를 등록합니다.

agentsViewer

array

해당 파일을 조회 가능한 권한을 가진 에이전트를 등록합니다.

userViewer

string

해당 파일을 조회 가능한 권한을 가진 유저를 등록합니다. customer_id, customer_group을 이용해 등록할 수 있습니다. customer_id는 own-user-id와 동일하고, customer_group의 id(categoryElementsId)는 CUSTOMER GROUP 조회하기 API를 통해 획득하실 수 있습니다.

allowOtherAgentsView

boolean

editor/viewer 목록에 없는 에이전트도 조회가 가능하도록 설정합니다.editor/viewer 목록에 없는 에이전트도 조회가 가능하도록 설정합니다.

allowOtherUsersView

boolean

viewer 목록에 없는 유저도 조회가 가능하도록 설정합니다.

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

Name
Type
Description

API-KEY*

string

할당된 API 키입니다. 대시보드의 일반 > 설정 메뉴에서 찾을 수 있습니다.

Request Body

Name
Type
Description

id*

string

확인할 문서의 ID 입니다.

{"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

Name
Type
Description

API-KEY*

string

할당된 API 키입니다. 대시보드의 일반 > 설정 메뉴에서 찾을 수 있습니다.

Request Body

Name
Type
Description

ids*

array

삭제할 문서 ID 의 어레이 형식 목록입니다.

{
    "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

Name
Type
Description

hashtagsSearchOperator

string

AND 혹은 OR 입니다. 복수의 해시태그로 필터링할 때의 로직을 결정합니다. 기본값은 OR 입니다.

status

boolean

On/off 상태에 따라 목록을 필터링할 수 있습니다.

searchTerm

string

검색어를 입력해 목록을 필터링할 수 있습니다. Operator 를 이용해 고급 검색이 가능합니다. "TERM1 TERM2" 로 AND 검색, "TERM1 OR TERM2" 로 OR 검색, "\"TERM\"" 로 정확하게 일치하는 경우만 검색이 가능합니다.

hashtags

array

해시태그에 따라 목록을 필터링할 수 있습니다.

order

string

목록의 정렬 방식을 결정합니다. 사용 가능한 값은 아래 Request Example을 참고하세요.

offset

integer

페이지에 출력될 첫번째 항목의 위치를 결정합니다.

limit

integer

한 페이지에 몇개의 항목을 출력할 결정합니다. 최대값은 100입니다.

Headers

Name
Type
Description

API-KEY*

string

할당된 API 키입니다. 대시보드의 일반 > 설정 메뉴에서 찾을 수 있습니다.

{
  "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 패러미터에는 아래 값들을 사용할 수 있습니다.

Value

설명

FILE_NAME_ASC

파일명에 따라 오름차순 정렬

FILE_NAME_DESC

파일명에 따라 내림차순 정렬

TYPE_ASC

파일 형식에 따라 오름차순 정렬

TYPE_DESC

파일 형식에 따라 내림차순 정렬

STATUS_ASC

파일의 on/off 상태에 따라 오름차순 정렬

STATUS_DESC

파일의 on/off 상태에 따라 내림차순 정렬

CREATED_AT_ASC

업로드 날짜 및 시간에 따라 오름차순 정렬

CREATED_AT_DESC

업로드 날짜 및 시간에 따라 내림차순 정렬

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

Name
Type
Description

API-KEY*

string

할당된 API 키입니다. 대시보드의 일반 > 설정 메뉴에서 찾을 수 있습니다.

Request Body

Name
Type
Description

filename*

string

지정된 문서의 새 이름입니다.

id*

string

이름을 바꿀 문서의 ID 입니다.

{
    "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

Name
Type
Description

API-KEY*

string

할당된 API 키입니다. 대시보드의 일반 > 설정 메뉴에서 찾을 수 있습니다.

Request Body

Name
Type
Description

footerTitle

string

업로드하는 파일에서 검색 결과가 추출될 때 소스 부분에 들어갈 텍스트를 footer 형태로 입력할 수 있습니다. 해당 텍스트는 검색 결과 아래 '- From' 텍스트 다음에 출력됩니다.

footerUrl

string

footerTitle 에 연결될 링크를 지정할 수 있습니다.

hashtags

array

문서에 등록할 해시태그 문자열 목록입니다.

folder*

string

업데이 시 파일이 속하게 될 폴더를 지정할 수 있습니다.

followFolderPermission

boolean

업로드 시 속한 폴더가 있을 경우, 해당 폴더의 권한을 그대로 승계하거나 승계하지 않습니다.(기본값: 참) 승계하지 않을 경우, 아래에서 따로 지정하는 권한을 사용합니다. 별도로 지정하지 않을 경우, 모든 에이전트 및 유저가 권한을 갖게 됩니다.

agentsEditor

array

해당 파일을 편집 가능한 권한을 가진 에이전트를 등록합니다.

agentsViewer

array

해당 파일을 조회 가능한 권한을 가진 에이전트를 등록합니다.

userViewer

object

해당 파일을 조회 가능한 권한을 가진 유저를 등록합니다. customer_id, customer_group을 이용해 등록할 수 있습니다. customer_id는 own-user-id와 동일하고, customer_group의 id(categoryElementsId)는 CUSTOMER GROUP 조회하기 API를 통해 획득하실 수 있습니다.

allowOtherAgentsView

boolean

editor/viewer 목록에 없는 에이전트도 조회가 가능하도록 설정합니다.

allowOtherUsersView

boolean

viewer 목록에 없는 유저도 조회가 가능하도록 설정합니다.

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

Name
Type
Description

status

boolean

리스트를 필터링 하기 위한 문서의 온/오프 상태입니다.

searchTerm

string

쿼리를 검색하여 리스트를 필터링합니다.

hashtags

array

리스트를 필터링 하기 위한 해시태그 정보입니다.

order

string

리스트 표시 타입입니다. 가능한 표시타입은 아래 Request Example을 참고해 주세요.

offset

integer

offset을 사용하면 페이지의 첫 번째 아이템의 랭킹 번호를 지정할 수 있습니다.

limit

integer

limit을 사용하면 1페이지에 반한되는 오브젝트 수를 설정할 수 있습니다. 최대값은 100건 입니다.

hashtagsSearchOperator

string

AND와 OR은 여러 해시태그를 매칭하기 위해 사용하는 논리 연산자입니다. 디폴트는 OR입니다.

sortkey

string

Secondary Sorting(보조 정렬)키로 사용되는 문서의 Custom Property Key입니다. Primary sort는 파라미터에 따라 이루어 집다.

sortDirection

string

Secondary Sorting 순서 입니다. 해당 값은 ‘asc’ 또는 ‘desc’입니다.

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

Name
Type
Description

API-KEY*

string

할당된 API 키입니다. 대시보드의 일반 > 설정 메뉴에서 찾을 수 있습니다.

Request Body

Name
Type
Description

use*

boolean

변경할 문서의 상태입니다. True(켜짐) 혹은 False(꺼짐) 중 하나를 입력합니다.

ids*

array

상태를 변경할 문서의 ID 목록입니다.

{
  "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

Name
Type
Description

API-KEY*

string

할당된 API 키입니다. 대시보드의 일반 > 설정 메뉴에서 찾을 수 있습니다.

Request Body

Name
Type
Description

ids*

array

자동 해시태그 정보를 불러올 문서의 ID 입니다.

{
    "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

Name
Type
Description

API-KEY*

string

할당된 API 키입니다. 대시보드의 일반 > 설정 메뉴에서 찾을 수 있습니다.

Request Body

Name
Type
Description

autoHashtagFeedbacks*

array

해시태그 ID 와 상태 쌍으로 이루어진 JSON 객체 리스트입니다. 'state' 는 'accepted', 'declined', 'suggested' 중 하나입니다.

{
    "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

Name
Type
Description

API-KEY*

string

할당된 API 키입니다. 대시보드의 일반 > 설정 메뉴에서 찾을 수 있습니다.

Request Body

Name
Type
Description

hashId*

string

Q&A 검색 결과의 고유 ID 입니다. Q&A 에서 검색하기 항목을 참고하세요.

id*

string

고객이 선택한 것으로 처리할 Q&A 의 ID 입니다.

{"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

Name
Type
Description

API-KEY*

string

할당된 API 키입니다. 대시보드의 일반 > 설정 메뉴에서 찾을 수 있습니다.

Request Body

Name
Type
Description

locale

string

생성할 에이전트의 언어 설정입니다. 두글자의 ISO-639-1 코드를 사용합니다.

password

string

에이전트를 생성할 때 비밀번호를 지정합니다. 유효한 비밀번호 (알파벳 소문자, 알파벳 대문자, 숫자, 특수문자 중 3종류 이상 포함) 여야 합니다. deleteFlag 가 false 인 경우 필수 입력 항목입니다.eFlag 가 false 인 경ㅜ 필

deleteFlag*

boolean

에이전트를 삭제하려는 경우 true, 생성하려는 경우 false 로 입력합니다.

email*

string

생성할 에이전트의 이메일 주소입니다.

{
    "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

Name
Type
Description

API-KEY*

string

할당된 API 키입니다. 대시보드의 일반 > 설정 메뉴에서 찾을 수 있습니다.

{
  "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

Name
Type
Description

limit

integer

한 페이지에 보여 줄 검색 기록의 수를 지정합니다.

offset

integer

몇 번째 검색 기록부터 확인할지 지정합니다.

endDate

string

확인할 마지막 검색 기록의 날짜를 지정합니다. YYYY-MM-DD 형식으로 입력합니다.

startDate

string

확인할 최초 검색 기록의 날짜를 지정합니다. YYYY-MM-DD 형식으로 입력합니다.

order

string

DESC 로 입력하면 최근 기록부터, ASC 로 입력하면 예전 기록부터 확인합니다.

searchTerm

string

해당 키워드를 사용해 범위 내의 검색 기록에서 키워드 검색한 결과만 열람합니다.

Headers

Name
Type
Description

API-KEY*

string

할당된 API 키입니다. 대시보드의 일반 > 설정 메뉴에서 찾을 수 있습니다.

AGENT-EMAIL

string

특정 에이전트의 검색 기록 조회하고 싶은 경우 에이전트의 이메일을 입력합니다. 에이전트 이메일은 대시보드의 프로젝트 설정 > 담당자 메뉴에서 확인할 수 있습니다.

OWN-USER-ID

string

특정 유저의 검색 기록 조회하고 싶은 경우 유저의 아이디를 입력합니다. 유저 ID 는 대시보드의 고객 메뉴에서 확인할 수 있습니다.

{
    "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

Name
Type
Description

searchTerm

string

해당 키워드를 사용해 범위 내의 검색 기록에서 키워드 검색한 결과만 열람합니다.

order

string

DESC 로 입력하면 최근 기록부터, ASC 로 입력하면 예전 기록부터 확인합니다.

endDate

string

확인할 마지막 검색 기록의 날짜를 지정합니다. YYYY-MM-DD 형식으로 입력합니다.

startDate

string

확인할 최초 검색 기록의 날짜를 지정합니다. YYYY-MM-DD 형식으로 입력합니다.

limit

integer

한 페이지에 보여 줄 검색 기록의 수를 지정합니다.

offset

integer

몇 번째 검색 기록부터 확인할지 지정합니다.

Headers

Name
Type
Description

API-KEY*

string

할당된 API 키입니다. 대시보드의 일반 > 설정 메뉴에서 찾을 수 있습니다.

AGENT-EMAIL

string

특정 에이전트의 검색 기록 조회하고 싶은 경우 에이전트의 이메일을 입력합니다. 에이전트 이메일은 대시보드의 프로젝트 설정 > 담당자 메뉴에서 확인할 수 있습니다.

OWN-USER-ID

string

특정 유저의 검색 기록 조회하고 싶은 경우 유저의 아이디를 입력합니다. 유저 ID 는 대시보드의 고객 메뉴에서 확인할 수 있습니다.

{
    "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

Name
Type
Description

customer_group

string

사용자 조회 시 필터링할 CUSTOMER GROUP의 이름입니다. CUSTOMER GROUP 조회하기 API를 사용해서 획득(displayValue)하실 수 있습니다.

offset

integer

페이지에 출력될 첫번째 항목의 위치를 결정합니다. 기본값은 0입니다.

limit

integer

한 페이지에 몇개의 항목을 출력할 결정합니다. 기본값은 10이며 최대값은 1000입니다.

Headers

Name
Type
Description

API-KEY*

string

할당된 API 키입니다. 대시보드의 일반 > 설정 메뉴에서 찾을 수 있습니다.

{
  "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

Name
Type
Description

OWN-USER-ID*

string

사용자의 ID입니다. 유저 정보 조회하기 API를 사용해서 전체 유저의 ID를 획득하실 수 있습니다.

Headers

Name
Type
Description

API-KEY*

string

할당된 API 키입니다. 대시보드의 일반 > 설정 메뉴에서 찾을 수 있습니다.

{
  "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

Name
Type
Description

OWN-USER-ID*

string

사용자의 ID입니다. 유저 정보 조회하기 API를 사용해서 전체 유저의 ID를 획득하실 수 있습니다.

variableName*

string

업데이트하고자하는 항목입니다. "CUSTOMER_GROUP" 혹은 "CUSTOMER_ID"만 입력하실 수 있습니다.

Headers

Name
Type
Description

API-KEY*

string

할당된 API 키입니다. 대시보드의 일반 > 설정 메뉴에서 찾을 수 있습니다.

Request Body

Name
Type
Description

id*

string

변경하려고 하는 CUSTOMER_GROUP 혹은 CUSTOMER_ID의 id 입니다.

{
  "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

Name
Type
Description

API-KEY*

string

할당된 API 키입니다. 대시보드의 일반 > 설정 메뉴에서 찾을 수 있습니다.

{
  "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

Name
Type
Description

API-KEY*

string

할당된 API 키입니다. 대시보드의 일반 > 설정 메뉴에서 찾을 수 있습니다.

Request Body

Name
Type
Description

value*

string

추가할 CUSTOMER GROUP의 이름입니다.

{
  "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

Name
Type
Description

categoryElementId*

string

업데이트하고자 하는 CUSTOMER GROUP의 ID입니다. CUSTOMER GROUP 조회하기 API를 사용해서 획득하실 수 있습니다.

Headers

Name
Type
Description

API-KEY*

string

할당된 API 키입니다. 대시보드의 일반 > 설정 메뉴에서 찾을 수 있습니다.

Request Body

Name
Type
Description

value*

string

변경할 CUSTOMER GROUP의 이름입니다.

{
  "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

Name
Type
Description

categoryElementId*

string

삭제하고자 하는 CUSTOMER GROUP의 ID입니다. CUSTOMER GROUP 조회하기 API를 사용해서 획득하실 수 있습니다.

Headers

Name
Type
Description

API-KEY*

string

할당된 API 키입니다. 대시보드의 일반 > 설정 메뉴에서 찾을 수 있습니다.

{}

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