1.라우팅봇 시나리오 API라우팅봇 API( AI Gateway -> Node-red)

Edit

1.1개요

1.1.1설명

그림 1-1시나리오 편집기 내재화 시스템구성도

1.1.2지원 목록

1.1.3선결 과제

1.1.4변수 정의

1.2API

1.2.1시나리오 가져오기 (AI Gateway -> node-red)

1.2.1.1시나리오

POST /{시나리오코드}
[Header]
Authorization: Bearer 토큰
[Parameter]

타입

필수

설명

CallId

text(255)

Y

고객과 연결된 전화의 고유 Key

ChatBotKey

text(50)

Y

Bot 고유 key

Customer

text(35)

Y

고객 전화번호

Agent

int(5)

Y

상담원 내선번호

ChatMsg

text

N

최초 대화는 메시지가 없음.

DTMF

text

N

DTMF 입력값

Answer

text

N

고객이 응답으로 네/아니오 등의 응답시 사용

(서비스 코드가 S0003 일 경우 사용 필수 사용)

LLM

text

Y

LLM 정보의 경우는 Gloval $ 변수로 제공됩니다.

ScenarioCode

text

N

ScenarioCode : "무응답"

ScenarioCode : "무응답종료"


이전에 전달 받은 ScenarioCode

Dtmf 입력등 처리하기 위한 시나리오 코드를 사용됨

Dtmf 가 있을 경우 시나리오 코드는 필수

Keyword

text

N

ScenarioCode 로 변경

[SAMPLE]
curl -H "Authorization: Bearer eyAiYWxnIjogIkhT...d8b2Thw" \
-X POST -H "Content-type: application/json" \
-d \
'{"CallId":"DS0000000001","ChatBotKey":"bot00001","Customer":"01012345678", "Agent":1000,"IsFirstChat":"Y","ChatMsg":"담당자확인전달요청",}' \
http://127.0.0.1:1880/SCENARIO01
* 응답
[Response]

타입

필수

설명

CallId

text(255)

Y

고객과 연결된 전화의 고유 Key

ChatBotKey

text(50)

Y

Bot 고유 key





ServiceCode

text

Y

서비스유형 (아래 항목 참조)

TransCode

text

Y

전송 결과 코드(아래 항목 참조)

ScenarioCode

text

N

세션 처음에는 빈값

세션 유지시에는 시나리오에서 받은값

Description

text

Y

응답 메세지

DtmfLength

int

N

DTMF입력글자수

서비스 코드가 S1000(DTMF 입력) 일 경우는 필수

DtmfEndChar

text

N

DTMF입력종료문자

서비스 코드가 S1000(DTMF 입력) 일 경우 옵션

TransfterNumber

int

N

호전환 전화번호

서비스 코드가 S2000(호전환) 일 경우는 필수

Timeout

int

N

DTMF를 입력받거나, 고객의 음성을 수집할때 대기시간(단위 초)

* 응답
{ 
    "CallId":"DS0000000001",
    "ChatBotKey":"bot00001",
    "Result": "Y",
    "ServiceCode": "S2000", 
    "TransCode": "200", 
    "TransfterNumber" : "40001",
    "Description": "상담원을 연결해 드리겠습니다. 잠시만 기다려 주세요."
}

1.2.2대화분류(Node-red -> LLM)

1.2.2.1대화 분류

POST /{시나리오코드}/chat-gpt
[Header]
Authorization: Bearer 토큰
[Parameter]

타입

필수

설명

question

text

Y

문의 내용

[SAMPLE]
curl -k -X POST -H 'Content-Type: application/x-www-form-urlencoded'\
-d "question=상담원:안녕하세요 넥서스 상담원 서민지입니다  무엇을 도와드 릴까요?\n고객:제가 봉투 모의고사 패키지를 신청했는데 언제쯤 배송될까요?\n상담원:시험일 기준 익일에 문제지, 해설지, 답 안지가 일괄 발송됩니다.고객:근데 아직 안 왔어요.\n상담원:혹시 지난 모의고사 신청하셨나요?\n고객:네 맞아요  지난번 꺼 신청했어요\n상담원:그러시면 매주 화요일 금요일에 일괄 발송되니까 조금만 더  기다려주세요\n고객:네 알겠습니다.\n상담원:네 감사합니다" \
https://10.10.40.30/star-wars/chat-gpt/
* 응답
[Response]

타입

필수

설명

category1

text

N

최초는 없음(대분류)

category2

text

N

최초는 없음(중분류)

category3

text

N

최초는 없음(소분류)

answer

text

N

응답내용

create_time

text

Y

일자

* 응답
{
  "catagory1": "기타",
  "category2": "기타",
  "category3": "담당자확인전달요청",
  "answer": " 고객이 봉투 모의고사 패키지 배송 일정에 대해 문의하였고, 상담원은 배송일이 시험일 기준으로 익일에 발송될 것이라고 안내하였습니다. 고객은 추가적인 질문을 하였고, 상담원은 기다려달라고 하였습니다.\n\n",
  "create_time": "2024-04-19T13:28:28.180710"
}

1.3코드 정의

1.3.1서비스 유형 코드

code

message

설명

S0000

음성 플레이

음성플레이후 대기

S0001

음성 플레이 후 호 종료

시나리오 완료 시 등에 사용

S0002

음성 플레이 후 시나리오 요청

월켐 메시지 등의 맨트 후에 다시 시나리오 요청에 사용

S1000

DTMF 입력

주민번호, 생년월일 등의 입력이 필요한 항목에 사용

S2000

음성 플레이 후 전환

상담사 또는 IVR 로 호 전환시 사용

1.3.2결과 코드

code

message

설명

200


정상코드

400

ForbiddenException

권한 없음

401

UnauthorizedException

인증 실패

404

[Error]Not found!

찾기 실패




411

[Error] tiimeout

리턴시간 초과

412

[Error] parameter error

필수파라미터 값 없음

413

[Error] Not found (server).

데이터 오류

501

[Error] Server DB (server)

서버 DB 오류

502

[Error] Server DB (editor)

서버 DB 오류




600

FailedToSendMessageException

메시지 전송 실패

601

InternalSystemErrorException

내부 시스템 에러