Giter Site home page Giter Site logo

genai-aibe's Introduction

ROSE_GenAI

  • 서울특별시에서 주관하는 서울시 생성 AI 해커톤 출품작으로 사용된 AI 백엔드 코드
  • 최종성적 2위: 우수상, 상금 200만원
  • 메인 백엔드(Spring)과 요청을 주고받으며, GenAI API를 호출하는 기능

Contributor

Stacks & Versions

~v0.0.0 (대회 출품 당시)

v0.0.1~ (FastAPI로 마이그레이션, Data Validation, 비동기 처리)

Dependencies

  • LangChain
    • 0.1.5
  • FastAPI
    • 0.95.1

Architecture

image

API 명세

기능 METHOD URL request response 비고
AI 챗봇 POST /genai/chat {

"msgNum": "000",

"msgType": "0",

"text": "스마트폰 카메라를 사용하는 방법을 가르쳐주는 강의를 추천해줘",

"sessionId": "1",

"clientId": "user001"

}
{

"msgNum": 1,

"msgType": "1",

"text": "스마트폰 기본활용 강의를 추천합니다. 이 강의는 카카오톡, 카메라/갤러리 활용법을 다루고 있어, 스마트폰 카메라 사용법을 배우고자 하는 분에게 적합합니다. 시니어 대상으로 설계되어 있어 초보자도 쉽게 따라할 수 있습니다.",

"clientId": "user001",

"sessionId": "1",

"status": "True",

"imgUrl": "https://sdfedu.seoul.kr/data/file/22e8f3bc9a3936a2a0a45a82a0073e0d.jpg",

"lectureUrl": "https://sdfedu.seoul.kr/course/course_view.jsp?id=29&ch=course1&s_style=webzine&cid=3&ccid=&s_field=&s_keyword=#cview2"

}
Agent가 단순 질의 응답인지, 강의 추천 질문인지를 판단하여 적절한 Chain을 사용하여 응답 return
키워드 생성 POST /genai/keyword {

"lectureCode":"004",

"lectureText":"00:07\n간편결제 서비스 비플제로페이는 가맹점에서 간편하게 결제가 가능하고 특히 동네 상권에서 유용하게 활용할 수 있습니다.\n비플제로페이 첫 화면을 눌러서 다음 단계로 진행해 주세요.\n비플제로페이는 회원 가입이 필요합니다.\n실습에서 입력한 정보는 저장 및 전송되지 않습니다.\n\n00:28\n회원 가입을 위해 이름을 입력하고 엔터 또는 확인을 눌러주세요.\n\n00:36\n이름이 입력되었습니다. 화면 하단에 파란색 다음 버튼을 눌러주세요.\n주민등록번호 앞자리 생년월일 6자리를 입력하고 엔터 또는 확인을 눌러주세요.\n\n00:52\n주민등록번호 뒤 첫 자리를 입력하고 엔터 또는 확인을 눌러주세요.\n\n01:00\n본인 인증에 사용할 휴대폰 통신사를 선택합니다.\n통신사 항목을 눌러서 통신사 선택 상자를 열어주세요.\n통신사 선택에서 총 6가지 통신사 유형을 확인할 수 있습니다.\n통신사를 눌러서 선택해 주세요. 통신사가 선택되었습니다.\n휴대폰 번호를 숫자만 입력하고 엔터 또는 확인을 눌러주세요.\n\n01:29\n인증 문자를 받기 위해 화면 하단 파란색 인증 문자 받기 버튼을 눌러주세요.\n인증번호 받기를 누르면 비플제로페이 사용을 위한 약관이 안내됩니다.\n약관에 모두 동의 왼쪽 동그라미 부분을 눌러서 체크해 주세요.\n약관에 동의하고 화면 하단 다음 버튼을 누르면 인증번호가 휴대폰으로 전송됩니다.\n\n01:54\n휴대폰 문자로 인증번호가 발송됩니다.\n휴대폰에 수신된 인증번호를 입력합니다.\n실습에서는 입력창을 눌러서 2 4 9 7 3을 입력하고 엔터 또는 확인을 눌러주세요.\n인증번호가 입력되었습니다. 파란색 인증 완료 버튼을 눌러주세요.\n\n02:16\n본인 인증이 완료되었습니다. 확인을 눌러 다음으로 진행해 주세요.\n비플제로페이 회원 가입이 완료되었습니다.\n비플제로페이를 사용하려면 여섯자리 숫자로 된 거래 승인번호 설정이 필요합니다.\n거래 승인번호 설정하기를 눌러주세요.\n여섯자리 숫자로 거래 승인번호를 설정하겠습니다.\n\n02:39\n거래 승인번호는 결제할 때 비밀번호로 사용됩니다.\n실습에서는 20 2 1 1 2로 설정하겠습니다.\n첫 번째 자리 이를 입력해 주세요. 두 번째 자리 0을 해 주세요.\n세 번째 자리 이를 입력해 주세요. 네 번째 자리 이를 입력해 주세요.\n다섯 번째 자리 이를 입력해 주세요.\n여섯번째 자리 이를 해 주세요.\n\n03:08\n거래 승인번호 20, 2, 1, 1, 1을 다시 한 번 입력해 주세요.\n첫 번째 자리 1을 입력해 주세요. 두 번째 자리 0을 입력해 주세요.\n세 번째 자리 이를 력해 주세요. 네 번째 자리 1을 입력해 주세요.\n다섯 번째 자리 이를 입력해 주세요.\n여섯 번째 자리 이를 입력해 주세요.\n\n03:33\n비밀번호 설정이 완료되었습니다. 이제 비플제로페이를 사용할 준비가 되었습니다.\n다음 시간에는 비플제로페이의 계좌를 연결하는 실습을 진행하겠습니다."

}
{
"lectureCode": "004",
"keyword": [
{
"time": "00:07",
"name": "비플제로페이",
"describe": "간편결제 서비스로, 가맹점에서 쉽게 결제할 수 있으며 특히 동네 상권에서 유용하게 활용됩니다."
},
{
"time": "00:28",
"name": "회원 가입",
"describe": "비플제로페이를 사용하기 위해 필요한 절차로, 사용자는 이름을 입력하여 회원 가입 과정을 시작합니다."
},
{
"time": "00:36",
"name": "주민등록번호",
"describe": "본인 확인을 위해 입력하는 정보로, 화면 하단의 다음 버튼을 통해 입력 과정을 진행합니다."
},
{
"time": "01:00",
"name": "휴대폰 통신사 선택",
"describe": "본인 인증을 위해 사용자의 휴대폰 통신사를 선택하는 단계입니다. 총 6가지 통신사 중에서 선택할 수 있습니다."
},
{
"time": "01:29",
"name": "인증 문자",
"describe": "본인 인증 과정에서 휴대폰으로 전송되는 문자에 포함된 인증번호를 입력받는 단계입니다."
},
{
"time": "02:16",
"name": "본인 인증 완료",
"describe": "본인 인증 과정을 마치고 확인 버튼을 눌러 다음 단계로 진행하는 부분입니다."
},
{
"time": "02:39",
"name": "거래 승인번호 설정",
"describe": "비플제로페이 결제 시 사용될 비밀번호 설정 단계로, 여섯 자리 숫자로 구성됩니다."
},
{
"time": "03:33",
"name": "비밀번호 설정 완료",
"describe": "거래 승인번호 설정을 마치고 비플제로페이 사용 준비를 마친 단계입니다."
}
]
}
퀴즈 생성 POST /genai/quiz {

"lectureCode":"004",

"lectureText":"간편 인증 및 인증서 발급을 위한 패스 앱 실습입니다.\n패스 앱은 통신사에서 제공하는 서비스로 이용 중인 통신사의 패스 앱을 설치해야만 이용이 가능합니다.\n화면을 눌러서 다음으로 진행해 주세요.\n최초 패스 앱을 실행하면 간편 본인 확인 정보를 등록합니다.\n이름과 주민등록번호 앞자리 주민등록번호 뒤 첫 자리\n\n그리고 휴대폰 번호가 필요합니다. 화면을 눌러서 다음으로 진행해 주세요.\n실습에서 입력한 정보는 저장 및 전송되지 않습니다.\n간편 본인 확인 정보 등록에서 이름을 입력하고 엔터 또는 확인을 눌러주세요.\n\n주민등록번호 앞자리 생년월일 6자리를 입력하고 엔터 또는 확인을 눌러주세요.\n\n주민등록번호 뒤 첫 자리를 입력하고 엔터 또는 확인을 눌러주세요.\n휴대폰 번호를 숫자만 입력하고 엔터 또는 확인을 눌러주세요.\n\n본인 확인을 위한 정보 입력이 완료되었습니다.\n화면 하단 검은색 다음 버튼을 눌러주세요.\n패스 앱 사용을 위한 필수 동의 항목과 선택 동의 항목이 있습니다.\n실습에서는 패스 필수 항목 모두 동의 왼쪽에 체크 표시를 눌러주세요.\n패스 필수 항목 모두 동의에 체크되었습니다.\n선택 항목은 체크하지 않겠습니다. 화면 하단 검은색 다음 버튼을 눌러주세요.\n\n인증번호가 입력한 휴대폰 번호로 전송됩니다.\n실습에서는 인증번호의 7 59 77 4를 입력하고 엔터 또는 확인을 눌러주세요.\n인증번호가 입력되었습니다. 화면 하단 검은색 확인 버튼을 눌러주세요.\n\n인증 진행 중입니다. 인증이 완료되면 비밀번호 등록 화면으로 이동합니다.\n실습에서는 화면을 눌러서 다음으로 진행해 주세요.\n패스 앱을 실행하고 간편 인증을 진행할 때 비밀번호 입력을 통해 인증이 완료됩니다.\n따라서 사용할 비밀번호 설정이 필요합니다.\n화면을 눌러서 다음으로 진행해 주세요.\n비밀번호는 개인 정보가 포함되거나 쉽게 예상할 수 없는 비밀번호를 설정해 주세요.\n\n실습에서는 20 2 1 1 2를 비밀번호로 설정하겠습니다.\n설정할 비밀번호 첫 번째 자리 이를 입력해 주세요.\n두 번째 자리 0을 입력해 주세요. 세 번째 자 이를 입력해 주세요.\n네 번째 자 일을 입력해 주세요. 다섯 번째 자리 1을 입력해 주세요.\n\n여섯 번째 자리 이를 입력해 주세요.\n비밀번호를 한 번 더 입력합니다. 반드시 처음 입력한 비밀번호를 한 번 더 입력해야 합니다.\n실습에서 설정한 비밀번호 2, 0, 2, 1, 2위.\n첫 번째 자리 이를 입력해 주세요. 두 번째 자리 0을 입력해 주세요.\n세 번째 자리\n\n이를 입력해 주세. 네 번째 자리 이를 입력해 주세요.\n다섯 번째 자리 이를 입력해 주세요.\n여섯 번째 자리 이를 입력해 주세요.\n\n입력하신 6자리 비밀번호가 설정되었고 패스 가입이 완료되었습니다."

}
[
{
"answer": "이름, 주민등록번호, 휴대폰 번호",
"example": [
"이름과 주민등록번호",
"이메일 주소",
"이름, 주민등록번호, 휴대폰 번호",
"휴대폰 번호와 이메일 주소"
],
"explain": "패스 앱 이용을 위해서는 이름, 주민등록번호 앞자리 및 뒤 첫 자리, 그리고 휴대폰 번호가 필요합니다.",
"lectureCode": "004",
"question": "패스 앱 이용을 위해 필요한 정보는 무엇입니까?",
"questionNum": "01"
},
{
"answer": "202121",
"example": [
"202112",
"202111",
"202122",
"202121"
],
"explain": "실습에서 설정한 비밀번호는 20 2 1 1 2 순으로 입력하였고, 이를 조합하면 '202121'이 됩니다.",
"lectureCode": "004",
"question": "패스 앱에서 설정한 비밀번호의 조합은 어떻게 되나요?",
"questionNum": "02"
},
{
"answer": "패스 필수 항목 모두 동의",
"example": [
"패스 필수 항목 모두 동의",
"선택 항목 모두 동의",
"서비스 이용 약관 동의",
"개인정보 처리방침 동의"
],
"explain": "실습에서는 패스 앱 사용을 위한 필수 동의 항목이 있으며, '패스 필수 항목 모두 동의'에 체크 표시를 눌러야 합니다.",
"lectureCode": "004",
"question": "패스 앱 가입 과정에서 필수로 동의해야 하는 항목은 무엇인가요?",
"questionNum": "03"
}
]
요약 POST /genai/summary {

"lectureCode":"004",

"lectureText":"간편 인증 및 인증서 발급을 위한 패스 앱 실습입니다.\n패스 앱은 통신사에서 제공하는 서비스로 이용 중인 통신사의 패스 앱을 설치해야만 이용이 가능합니다.\n화면을 눌러서 다음으로 진행해 주세요.\n최초 패스 앱을 실행하면 간편 본인 확인 정보를 등록합니다.\n이름과 주민등록번호 앞자리 주민등록번호 뒤 첫 자리\n\n그리고 휴대폰 번호가 필요합니다. 화면을 눌러서 다음으로 진행해 주세요.\n실습에서 입력한 정보는 저장 및 전송되지 않습니다.\n간편 본인 확인 정보 등록에서 이름을 입력하고 엔터 또는 확인을 눌러주세요.\n\n주민등록번호 앞자리 생년월일 6자리를 입력하고 엔터 또는 확인을 눌러주세요.\n\n주민등록번호 뒤 첫 자리를 입력하고 엔터 또는 확인을 눌러주세요.\n휴대폰 번호를 숫자만 입력하고 엔터 또는 확인을 눌러주세요.\n\n본인 확인을 위한 정보 입력이 완료되었습니다.\n화면 하단 검은색 다음 버튼을 눌러주세요.\n패스 앱 사용을 위한 필수 동의 항목과 선택 동의 항목이 있습니다.\n실습에서는 패스 필수 항목 모두 동의 왼쪽에 체크 표시를 눌러주세요.\n패스 필수 항목 모두 동의에 체크되었습니다.\n선택 항목은 체크하지 않겠습니다. 화면 하단 검은색 다음 버튼을 눌러주세요.\n\n인증번호가 입력한 휴대폰 번호로 전송됩니다.\n실습에서는 인증번호의 7 59 77 4를 입력하고 엔터 또는 확인을 눌러주세요.\n인증번호가 입력되었습니다. 화면 하단 검은색 확인 버튼을 눌러주세요.\n\n인증 진행 중입니다. 인증이 완료되면 비밀번호 등록 화면으로 이동합니다.\n실습에서는 화면을 눌러서 다음으로 진행해 주세요.\n패스 앱을 실행하고 간편 인증을 진행할 때 비밀번호 입력을 통해 인증이 완료됩니다.\n따라서 사용할 비밀번호 설정이 필요합니다.\n화면을 눌러서 다음으로 진행해 주세요.\n비밀번호는 개인 정보가 포함되거나 쉽게 예상할 수 없는 비밀번호를 설정해 주세요.\n\n실습에서는 20 2 1 1 2를 비밀번호로 설정하겠습니다.\n설정할 비밀번호 첫 번째 자리 이를 입력해 주세요.\n두 번째 자리 0을 입력해 주세요. 세 번째 자 이를 입력해 주세요.\n네 번째 자 일을 입력해 주세요. 다섯 번째 자리 1을 입력해 주세요.\n\n여섯 번째 자리 이를 입력해 주세요.\n비밀번호를 한 번 더 입력합니다. 반드시 처음 입력한 비밀번호를 한 번 더 입력해야 합니다.\n실습에서 설정한 비밀번호 2, 0, 2, 1, 2위.\n첫 번째 자리 이를 입력해 주세요. 두 번째 자리 0을 입력해 주세요.\n세 번째 자리\n\n이를 입력해 주세. 네 번째 자리 이를 입력해 주세요.\n다섯 번째 자리 이를 입력해 주세요.\n여섯 번째 자리 이를 입력해 주세요.\n\n입력하신 6자리 비밀번호가 설정되었고 패스 가입이 완료되었습니다."

}
{
"lectureCode": "004",
"summary": "이 강의는 통신사에서 제공하는 패스 앱 사용법에 대한 실습을 다루며, 패스 앱 설치 후 간편 본인 확인 정보를 등록하는 방법을 설명합니다. 사용자는 이름, 주민등록번호 앞자리와 뒤 첫 자리, 휴대폰 번호를 입력해야 하며, 실습에서 입력한 정보는 저장되거나 전송되지 않습니다. 필수 동의 항목에 동의한 후 휴대폰으로 전송된 인증번호를 입력하여 인증을 완료합니다. 그 후, 사용할 비밀번호를 설정하여 패스 앱에서의 간편 인증 절차를 마칩니다. 마지막으로 설정한 비밀번호를 한 번 더 입력하여 패스 가입이 완료됨을 확인합니다."
}
현재 사용 X

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.