관련 추가 문서는 https://doc.alli.ai/ 에서 찾을 수 있습니다.
Start Conversation
POST
https://backend.alli.ai/webapi/start_conversation
스킬을 사용해 대화를 시작합니다. 현재 메시지 보내기 노드, Q&A에서 답변 노드, 문서에서 답변 노드가 호환됩니다.
할당된 API 키입니다. 대시보드의 설정 메뉴 > 일반 탭에서 찾을 수 있습니다.
Request Body
해당 placement 정보를 가진 스킬에서 대화를 시작합니다.
200 결과는 아래와 같은 JSON 형식으로 리턴됩니다.
id: 시작하는 대화의 고유 ID 입니다.
nluLanguage: Alli 프로젝트 언어 설정입니다.
edges: 대화 내 각 요소들로 이루어진 JSON 어레이입니다.
message: 대화에서 보여지는 메시지입니다. Draftjs 형식입니다.
createdAt: 해당 메시지가 전송된 타임스탬프입니다.
chatOptionsInfos: 유저가 보게 되는 선택 가능한 버튼 옵션들로 이루어진 JSON 어레이입니다.
shortenOption, longOption: 버튼 옵션에 보여지는 텍스트입니다. 옵션 길이 제한이 적용되는 경우 shortenOption 텍스트가 보여집니다.
style: 버튼에 적용된 스타일 정보입니다.
Copy {
"result": {
"conversation": {
"id": "CONVERSATION_ID",
"project": {
"nluLanguage": "LANGUAGE"
},
"chats": {
"edges": [
{
"node": {
"id": "CHAT_ID",
"message": "MESSAGE",
"createdAt": NUMBER,
"chatOptionInfos": [
{
"shortenOption": "BUTTON_TEXT",
"longOption": "BUTTON_TEXT",
"style": {
"bgColor": "COLOR_HEX",
"bold": BOOLEAN,
"fontColor": "COLOR_HEX",
"italic": BOOLEAN,
"lineColor": "COLOR_HEX",
"underline": BOOLEAN
},
"meta": ""
},
{
"shortenOption": "BUTTON_TEXT",
"longOption": "BUTTON_TEXT",
"style": {
"bgColor": "COLOR_HEX",
"bold": BOOLEAN,
"fontColor": "COLOR_HEX",
"italic": BOOLEAN,
"lineColor": "COLOR_HEX",
"underline": BOOLEAN
},
"meta": ""
}
],
"isDeleted": BOOLEAN
}
}
]
}
}
},
"errors": null
}
Request Example
YOUR API KEY 를 프로젝트의 API 키로 바꾸어야 합니다. API 키 얻기 항목을 참고하세요.
Copy curl -L -X POST 'https://backend.alli.ai/webapi/start_conversation' \
-H 'api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
--data-raw '{"placement": "skill_A"}'
Response Example
Copy {
"result": {
"conversation": {
"id": "Q29udmVyc2F0aW9uOjYwMDZiNTM3MmRhPHAwMjZlOTFjMjllZQ==",
"project": {
"nluLanguage": "EN"
},
"chats": {
"edges": [
{
"node": {
"id": "Q2hhdDo2MDQ2YjUzNzJkYWQwMDI2ZTkxYzI5ZDE=",
"message": "{\"blocks\": [{\"key\": \"egkjj\", \"text\": \"옵션을 선택해 주세\", \"type\": \"unstyled\", \"depth\": 0, \"inlineStyleRanges\": [], \"entityRanges\": [], \"data\": {}}], \"entityMap\": {}}",
"createdAt": 1615246647609.666,
"chatOptionInfos": [
{
"shortenOption": "FAQ",
"longOption": "FAQ",
"style": {
"bgColor": "#FFFFFF",
"bold": false,
"fontColor": "#2074ff",
"italic": false,
"lineColor": "#2074ff",
"underline": false
},
"meta": ""
},
{
"shortenOption": "Document",
"longOption": "Document",
"style": {
"bgColor": "#FFFFFF",
"bold": false,
"fontColor": "#2074ff",
"italic": false,
"lineColor": "#2074ff",
"underline": false
},
"meta": ""
}
],
"isDeleted": false
}
}
]
}
}
},
"errors": null
}
Send Chat
POST
https://backend.alli.ai/webapi/send_chat
이 API 를 사용해 유저로서 현재 대화에 메시지를 전송합니다. 현재 메시지 보내기 노드, Q&A에서 답변 노드, 문서에서 답변 노드가 호환됩니다.
할당된 API 키입니다. 대시보드의 설정 메뉴 > 일반 탭에서 찾을 수 있습니다.
Request Body
전송할 메시지입니다. null 혹은 빈 문자열은 사용할 수 없습니다.
200 결과는 아래와 같은 JSON 형식으로 리턴됩니다.
결과는 아래와 같은 JSON 형식으로 리턴됩니다.
responses
: 메시지와 관련 요소들로 이루어진 JSON 어레이입니다. 첫번째 메시지는 Request 에서 전송한 메시지입니다.
message
: Alli 가 출력하는 텍스트입니다. 스킬에서 전송된 메시지는 Draftjs 형식입니다.
createdAt
: 해당 메시지가 전송된 타임스탬프입니다.
chatOptionInfos
: 유저가 보게 되는 선택 가능한 버튼 옵션들로 이루어진 JSON 어레이입니다.
shortenOption
, longOption
: 버튼 옵션에 보여지는 텍스트입니다. 옵션 길이 제한이 적용되는 경우 shortenOption 텍스트가 보여집니다.
style
: 버튼에 적용된 스타일 정보입니다.
knowledgeBasePreview
: 해당 메시지가 문서 검색 결과인 경우 여기에 프리뷰 url 정보가 표시됩니다.
chatMrcInfos
: 해당 메시지가 문서 검색 결과이고 캐로셀 UI 를 사용중인 경우 여기에 knowledgeBasePreview
패러미터들이 표시됩니다.
Copy {
"result": {
"responses": [
{
"id": "CHAT_ID",
"message": "MESSAGE",
"createdAt": NUMBER,
"isDeleted": BOOLEAN
},
{
"id": "CHAT_ID",
"message": "MESSAGE",
"createdAt": NUMBER,
"chatOptionInfos": [
{
"shortenOption": "BUTTON_TEXT",
"longOption": "BUTTON_TEXT",
"style": {
"bgColor": "COLOR_HEX",
"bold": BOOLEAN,
"fontColor": "COLOR_HEX",
"italic": BOOLEAN,
"lineColor": "COLOR_HEX",
"underline": BOOLEAN
},
"meta": ""
}
],
"isDeleted": BOOLEAN
}
],
"state": "WAIT_USER_ANSWER_2"
},
"errors": null
}
Request Example
YOUR API KEY 를 프로젝트의 API 키로 바꾸어야 합니다. API 키 얻기 항목을 참고하세요.
Copy curl -L -X POST 'https://backend.alli.ai/webapi/send_chat' \
-H 'api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
--data-raw '{"conversationId": "Q29udmVyc2F0aW9uOjYwNDZiNWNkZTZkZGQ5MGE3ZWJlMGYxZQ==", "message": "도움이 필요합니다."}'
Response Example
Copy {
"result": {
"responses": [
{
"id": "Q2hhdDo2MDQ2YjVlY2U2ZGRkOTBhN2ViZTBmNTU=",
"message": "도움이 필요합니다.",
"createdAt": 1615246828077.0,
"isDeleted": false
},
{
"id": "Q2hhdDo2MDQ2YjVlY2U2ZGRkOTBhN2ViZTBmNTc=",
"message": "{\"blocks\": [{\"key\": \"6so0p\", \"text\": \"질문을 입력해 주세\", \"type\": \"unstyled\", \"depth\": 0, \"inlineStyleRanges\": [], \"entityRanges\": [], \"data\": {}}], \"entityMap\": {}}",
"createdAt": 1615246828110.0,
"chatOptionInfos": [],
"isDeleted": false,
"knowledgeBasePreview": {
"previewUrl": "https://www.alli.ai/projects/UHJvamVjdDo1ZDUyYjY3N2NkMGI4MjU5Y2Q1MmY5N2E=/knowledgeBases/S25vd2xlZGdlQmFzZTo2MjA5MWY4M2VhM2U5NjM2NTJmZjc2YzU=/preview?page=9&highlight_indexes=null&highlights=%7B%22indexes%22%3Anull%2C%22pageIndexes%22%3A%5B%7B%22page%22%3A9%2C%22indexes%22%3A%5B7%2C8%2C9%2C10%2C12%2C13%2C14%2C15%2C16%2C17%2C18%2C19%2C20%2C21%2C23%2C24%2C25%2C26%2C27%2C28%2C29%2C30%2C32%2C33%2C35%2C36%2C7%2C8%2C9%2C10%2C12%2C13%2C14%2C15%2C16%2C17%2C18%2C19%2C20%2C21%2C23%2C24%2C25%2C26%2C27%2C28%2C29%2C30%2C32%2C33%2C35%2C36%5D%7D%5D%7D"
}
}
],
"state": "WAIT_USER_ANSWER_2"
},
"errors": null
}
Summary Analytics
GET
https://backend.alli.ai/webapi/summary_analytics
프로젝트와 관련된 다양한 통계의 요약을 제공합니다.
할당된 API 키입니다. 대시보드의 설정 메뉴 > 일반 탭에서 찾을 수 있습니다.
Request Body
조회 기간의 시작일을 YYYY-MM-DD 형식으로 입력합니다.
조회 기간의 종료일을 YYYY-MM-DD 형식으로 입력합니다.
200 조회 결과는 아래와 같은 JSON 형식으로 리턴됩니다.
conversations: 조회 기간 내에 진행된 대화 수입니다.
conversationsUpDown: 조회 기간 중 진행된 대화 수가 직전 같은 기간 대비 증감한 비율입니다.
participants: 조회 기간 중 Alli 와 대화한 일별 고객 수의 합계입니다.
participantsUpDown: 조회 기간 중의 고객 수 합계가 직전 같은 기간 대비 증감한 비율입니다.
uniqueParticipants: 조회 기간동안 Alli 와 대화한 유니크 (중복 제외) 고객 수입니다.
uniqueParticipantsUpDown: 조회 기간 중 Alli 와 대화한 유니크 고객 수가 직전 같은 기간 대비 증감한 비율입니다.
queries: FAQ 혹은 MRC 문서 데이터베이스에 대한 질문 수입니다. 'FAQ 답변' 및 '문서에서 답변' 노드와 Alli 대시보드에서 이루어진 질문 모두를 포함합니다.
queriesUpDown: 조회 기간 동안의 'quries' 수치가 직전 같은 기간 대비 증감한 비율입니다.
queriedUsers: 조회 기간 중 FAQ 혹은 MRC 문서에 질문을 검색한 일별 고객 수의 합계입니다.
queriedUsersUpDown: 조회 기간 중의 'queriedUsers' 수치가 직전 같은 기간 대비 증감한 비율입니다.
uniqueQueriedUsers: 조회 기간 중 FAQ 혹은 MRC 문서에 한번 이상 질문을 검색한 유니크 (중복 제외) 고객 수입니다.
uniqueQueriedUsersUpDown: 조회 기간 중의 'uniqueQueriedUsers' 수치가 직전 같은 기간 대비 증감한 비율입니다.
instantResolution: 고객이 FAQ 답변 노드에서 질문을 검색하고 제시된 답변 중 하나를 선택한 수입니다.
instantResolutionUpDown: 조회 기간 중의 'instantResolution' 수치가 직전 같은 기간 대비 증감한 비율입니다.
aiResponseRate: 고객이 FAQ 답변 노드에서 질문한 총 수 대비 'instantResolution' 수치의 비율입니다.
aiResponseRateUpDown: 조회 기간 중의 'aiResponseRate' 수치가 직전 같은 기간 대비 증감한 비율입니다.
uniqueVisitors: Alli SDK 가 설치된 웹페이지의 유니크 (중복 제외) 방문자 수입니다. Alli 사용 금액 계산 시 해당 수치가 '고객 수' 로 사용됩니다.
uniqueVisitorsUpDown: 조회 기간 중의 'uniqueVisitors' 수치가 직전 같은 기간 대비 증감한 비율입니다.
totalFaqs: 조회 기간 중 추가된 FAQ 수입니다.
totalFaqsUpDown: 조회 기간 중 추가된 FAQ 수가 직전 같은 기간 대비 증감한 비율입니다.
totalDocuments: 조회 기간 중 업로드 문서 수입니다.
totalDocumentsUpDown: 조회 기간 중 업로드된 문서 수가 직전 같은 기간 대비 증감한 비율입니다.
Copy {
"result": {
"conversations": CONVERSATIONS,
"conversationsUpDown": CONVERSTAIONS_UPDOWN,
"participants": PARTICIPANTS,
"participantsUpDown": PARTICIPANTS_UPDOWN,
"uniqueParticipants": UNIQUE_PARTICIPANTS,
"uniqueParticipantsUpDown": UNIQUE_PARTICIPANTS_UPDOWN,
"queries": QUERIES,
"queriesUpDown": QUERIES_UPDOWN,
"queriedUsers": QUERIED_USERS,
"queriedUsersUpDown": QUERIED_USERS_UPDOWN,
"uniqueQueriedUsers": UNIQUE_QUERIED_USERS,
"uniqueQueriedUsersUpDown": UNIQUE_QUERIED_USERS_UPDOWN,
"instantResolution": INSTANT_RESOLUTION,
"instantResolutionUpDown": INSTANT_RESOLUTION_UPDOWN,
"aiResponseRate": AI_RESPONSE_RATE,
"aiResponseRateUpDown": AI_RESPONSE_RATE_UPDOWN,
"uniqueVisitors": UNIQUE_VISITORS,
"uniqueVisitorsUpDown": UNIQUE_VISITORS_UPDOWN,
"totalFaqs": TOTAL_FAQS,
"totalFaqsUpDown": TOTAL_FAQS_UPDOWN,
"totalDocuments": TOTAL_DOCUMENTS,
"totalDocumentsUpDown": TOTAL_DOCUMENTS_UPDOWN,
"feedbacksUpDown": FEEDBACKS_UPDOWN
},
"errors": null
}
Request Example
YOUR API KEY 를 프로젝트의 API 키로 바꾸어야 합니다. API 키 얻기 항목을 참고하세요.
Copy curl -X GET -d '{ "startDate": "2020-11-14",
"endDate": "2020-12-14"}' \
-H 'API-KEY: YOUR_API_KEY' \
https://backend.alli.ai/webapi/summary_analytics
Response Example
Copy {
"result": {
"conversations": 45,
"conversationsUpDown": -45.78,
"participants": 44,
"participantsUpDown": -32.31,
"uniqueParticipants": 43,
"uniqueParticipantsUpDown": -31.75,
"queries": 39,
"queriesUpDown": -56.18,
"queriedUsers": 35,
"queriedUsersUpDown": -46.97,
"uniqueQueriedUsers": 35,
"uniqueQueriedUsersUpDown": -44.44,
"instantResolution": 1,
"instantResolutionUpDown": 0.0,
"aiResponseRate": 100.0,
"aiResponseRateUpDown": 0.0,
"uniqueVisitors": 2077,
"uniqueVisitorsUpDown": -1.05,
"totalFaqs": 0,
"totalFaqsUpDown": 0.0,
"totalDocuments": 0,
"totalDocumentsUpDown": 0.0,
"feedbacksUpDown": 0.0
},
"errors": null
}
Daily Conversation Count
GET
https://backend.alli.ai/webapi/conversation_daily_count
조회 기간 내 일별 총 대화 수입니다.
할당된 API 키입니다. 대시보드의 설정 메뉴 > 일반 탭에서 찾을 수 있습니다.
Request Body
조회 기간의 시작일을 YYYY-MM-DD 형식으로 입력합니다.
조회 기간의 종료일을 YYYY-MM-DD 형식으로 입력합니다.
200 조회 결과는 아래와 같은 JSON 형식으로 리턴됩니다.
dailyTotalCount: date 와 activeCount 쌍입니다. activeCount 는 date에 이루어진 대화 수입니다.
Copy {
"result": {
"dailyTotalCount": [
{
"date": "DATE",
"activeCount": ACTIVE_COUNT
}
],
"state": "NORMAL",
"campaignCount": 1
},
"errors": null
}
Request Example
YOUR API KEY 를 프로젝트의 API 키로 바꾸어야 합니다. API 키 얻기 항목을 참고하세요.
Copy curl -X GET -d '{ "startDate": "2020-11-19",
"endDate": "2020-11-24"}' \
-H 'API-KEY: YOUR_API_KEY' \
https://backend.alli.ai/webapi/conversation_daily_count
Response Example
Copy {
"result": {
"dailyTotalCount": [
{
"date": "2020-11-19",
"activeCount": 30
},
{
"date": "2020-11-20",
"activeCount": 49
},
{
"date": "2020-11-21",
"activeCount": 32
},
{
"date": "2020-11-22",
"activeCount": 2
},
{
"date": "2020-11-23",
"activeCount": 31
},
{
"date": "2020-11-24",
"activeCount": 16
}
],
"state": "NORMAL",
"campaignCount": 1
},
"errors": null
}
Daily FAQ Count
GET
https://backend.alli.ai/webapi/faq_daily_count
조회 기간 내 FAQ 에서 검색된 Q&A 수의 일별 트렌드입니다.
할당된 API 키입니다. 대시보드의 설정 메뉴 > 일반 탭에서 찾을 수 있습니다.
Request Body
조회 기간의 시작일을 YYYY-MM-DD 형식으로 입력합니다.
조회 기간의 종료일을 YYYY-MM-DD 형식으로 입력합니다.
200 조회 결과는 아래와 같은 JSON 형식으로 리턴됩니다.
dailyTotalCount: date 와 activeCount 쌍입니다. activeCount 는 date에 검색된 Q&A 수입니다.
Copy {
"result": {
"dailyTotalCount": [
{
"date": "DATE",
"activeCount": ACTIVE_COUNT
}
],
"state": "NORMAL",
"campaignCount": 1
},
"errors": null
}
Request Example
YOUR API KEY 를 프로젝트의 API 키로 바꾸어야 합니다. API 키 얻기 항목을 참고하세요.
Copy curl -X GET -d '{ "startDate": "2020-11-19",
"endDate": "2020-11-24"}' \
-H 'API-KEY: YOUR_API_KEY' \
https://backend.alli.ai/webapi/faq_daily_count
Response Example
Copy {
"result": {
"dailyTotalCount": [
{
"date": "2020-11-19",
"count": 24
},
{
"date": "2020-11-20",
"count": 70
},
{
"date": "2020-11-21",
"count": 23
},
{
"date": "2020-11-22",
"count": 45
},
{
"date": "2020-11-23",
"count": 34
},
{
"date": "2020-11-24",
"count": 30
}
]
},
"errors": null
}
Daily FAQ Analytics
GET
https://backend.alli.ai/webapi/faq_daily_analytics
가장 자주 질문된 Q&A 에 대한 통계입니다.
할당된 API 키입니다. 대시보드의 설정 메뉴 > 일반 탭에서 찾을 수 있습니다.
Request Body
자주 질문된 상위 N 개의 Q&A 에 대해 통계를 출력합니다. N의 최대값은 20이며, 1, 5, 10, 20 중 하나의 값을 사용해야 합니다.
조회 기간의 시작일을 YYYY-MM-DD 형식으로 입력합니다.
조회 기간의 종료일을 YYYY-MM-DD 형식으로 입력합니다.
200 조회 결과는 아래와 같은 JSON 형식으로 리턴됩니다.
faqDailyAnalytics: 각 FAQ 에 대한 통계 정보가 포함된 JSON 객체의 리스트입니다.
totalCount: FAQ 가 고객에게 선택된 총 횟수입니다.
totalShownCount: FAQ 가 고객에게 제시된 총 횟수입니다.
selectedRatio: FAQ 가 고객에게 제시된 횟수 대비 선택된 횟수의 비율입니다.
stats: date 와 selectedCount 쌍입니다. selectedCount 는 date에 FAQ 가 고객에게 선택된 횟수입니다.
Copy {
"result": {
"faqDailyAnalytics": [
{
"totalCount": NUMBER,
"totalShownCount": NUMBER,
"selectedRatio": NUMBER,
"faq": {
"id": "ID_1",
"question": "QUESTION_1"
},
"stats": [
{
"date": "DATE",
"selectedCount": NUMBER
}
]
}
]
},
"errors": null
}
Request Example
YOUR API KEY 를 프로젝트의 API 키로 바꾸어야 합니다. API 키 얻기 항목을 참고하세요.
Copy curl -X GET -d '{ "startDate": "2020-12-02",
"endDate": "2020-12-05", "topN": 5}' \
-H 'API-KEY: YOUR_API_KEY' \
https://backend.alli.ai/webapi/faq_daily_analytics
Response Example
Copy {
"result": {
"faqDailyAnalytics": [
{
"totalCount": 1,
"totalShownCount": 1,
"selectedRatio": 100.0,
"faq": {
"id": "RkFROjVkZDQ4ZWFhN2E4ZGM2M2Y4OGNhZmUzOQ==",
"question": "What is Alli?"
},
"stats": [
{
"date": "2020-12-02",
"selectedCount": 0
},
{
"date": "2020-12-03",
"selectedCount": 0
},
{
"date": "2020-12-04",
"selectedCount": 1
},
{
"date": "2020-12-05",
"selectedCount": 0
}
]
}
]
},
"errors": null
}
Executing a Skill
POST
https://backend.alli.ai/webapi/skill
스킬을 실행하고 최종 답변을 json 형식으로 반환하는 API 입니다. variables 패러미터 관련 자세한 내용은 아래 'Learn More about Variables' 항목의 링크를 참고하세요. 스킬이 NER (Named Entity Recognition, 고유 표현 추출) 을 위해 디자인된 경우 본 API 를 NER 을 위 사용할 수 있습니다.
할당된 API 키입니다. 대시보드의 설정 메뉴 > 일반 탭에서 찾을 수 있습니다.
Request Body
해당 스킬의 ID 입니다. Alli 대시보드에서 스킬을 선택하면 스킬 URL이 https://app.alli.ai/projects/PROJECT_ID/campaigns/SKILL_ID. 형식으로 나타납니다. SKILL_ID 위치의 실제 ID 를 여기 입력하면 됩니다.
스킬에서 사용할 변수들의 변수값을 설정하기 위한 JSON 객체입니다.
200 조회 결과는 아래와 같은 JSON 형식으로 리턴됩니다. 최종 답변이 텍스트 형태로 리턴됩니다. 에러 발생 시 errors 항목에 에러 메시지가 출력됩니다.
Copy {"result": "TEXT RESULT FROM SKILL", "errors": []}
Learn More about Variables
본 API 는 variables (변수) 패러미터를 사용합니다. Alli 에서 사용되는 변수에 대해 더 알고 싶으시다면 해당 유저 가이드 를 참고하세요.
Request Example
YOUR API KEY 를 프로젝트의 API 키로 바꾸어야 합니다. API 키 얻기 항목을 참고하세요.
Copy curl -d '{"id": "YOUR SKILL ID",
"text": "issue date",
"variables": {"YOUR_VARIABLE": "YOUR_VARIABLE_VALUE"}}' \
-H 'API-KEY: YOUR_API_KEY' \
-H 'Content-Type: application/json' https://backend.alli.ai/webapi/skill
Response Example
Copy {"result": "TEXT RESULT FROM SKILL", "errors": []}