<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ko">
		<id>https://capstone.uos.ac.kr/cdc/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Com2312</id>
		<title>cdc wiki - 사용자 기여 [ko]</title>
		<link rel="self" type="application/atom+xml" href="https://capstone.uos.ac.kr/cdc/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Com2312"/>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php/%ED%8A%B9%EC%88%98:%EA%B8%B0%EC%97%AC/Com2312"/>
		<updated>2026-04-10T21:21:21Z</updated>
		<subtitle>사용자 기여</subtitle>
		<generator>MediaWiki 1.28.2</generator>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%EC%97%90%ED%94%BC%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4&amp;diff=9666</id>
		<title>에피메테우스</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%EC%97%90%ED%94%BC%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4&amp;diff=9666"/>
				<updated>2023-12-26T10:44:45Z</updated>
		
		<summary type="html">&lt;p&gt;Com2312: /* 서론 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : ''' 에피메테우스(LLM을 활용한 웹 기반의 업무 자동화 플랫폼)&lt;br /&gt;
&lt;br /&gt;
''' 영문 : ''' Epimetheus (Web based task automation platform)&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
에피메테우스&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
정형구 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2023년 9월 ~ 2023년 12월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 오*영(팀장)&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 김*원&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 이*주&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 장*호&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 황*우&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
Gighub Repository: https://github.com/UOS-CSDESIGN/Epimetheus&lt;br /&gt;
&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
'''◇ LLM을 활용한 웹 기반의 업무 자동화 플랫폼 구축'''&lt;br /&gt;
*사용자가 제공한 업무를 실제로 실행할 수 있는 자동화 AI 플랫폼 구현이 주된 목표이다. &lt;br /&gt;
*기존 AutoGPT와 유사한 기능을 제공하도록 대형 언어 모델(LLM)을 이용해 사용자의 업무를 이루기 위한 일련의 과정을 LLM(Llama)이 생성 후 제공한다. &lt;br /&gt;
*기존 서비스와의 차이점은 AI 모델의 단점인 블랙박스 특성을 없애기 위해 업무를 수행하기 위한 각 단계에 적절한 코드를 DB에서 불러오고, 해당 코드를 실행한다는 점이다. &lt;br /&gt;
*특정 단계에 해당하는 기능이 없을 때 원하는 기능을 사용자가 직접 추가하여 실행할 수 있다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
*현재 ChatGPT의 성공에 힘입어 LLM을 이용하여 업무를 자동화하는 시도가 존재한다.&lt;br /&gt;
*LLM을 이용하여 모든 업무를 자동화하는 것은 현재 수준으로는 부족하다는 보고가 있다.&lt;br /&gt;
*이러한 배경에 힘입어 기존 서비스의 한계점을 극복하기 위해 코드 단위로 업무를 실행하는 웹 기반의 업무 자동화 플랫폼을 구현하고자 한다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
◇ Frontend&lt;br /&gt;
*접근성을 고려한 UI 개발&lt;br /&gt;
*사용자가 작성한 코드를 웹 환경에서 실행시키는 기능 개발&lt;br /&gt;
&lt;br /&gt;
◇ Backend&lt;br /&gt;
*문장의 의미를 나타내는 벡터로 유사한 이름을 가진 TASK를 찾는 기능 개발&lt;br /&gt;
&lt;br /&gt;
◇ AI&lt;br /&gt;
*LLM(Large Language Model)을 이용하여 사용자 목표 달성을 위한 업무를 자동으로 분할하는 기능 개발&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
* 다양한 Benchmark에 대하여 여러 거대 언어 모델들의 성능을 비교&lt;br /&gt;
[[파일:Benchmark.jpg|700px]]&lt;br /&gt;
* 하지만 해당 Benchmark에는 구현하고자 하는 기능을 담고 있지 않음&lt;br /&gt;
* 해당 Benchmark에서 Llama-2(13B)을 사용&lt;br /&gt;
*특허조사 및 특허 전략 분석&lt;br /&gt;
&lt;br /&gt;
====기술 로드맵====&lt;br /&gt;
* Frontend&lt;br /&gt;
**Figma&lt;br /&gt;
**React&lt;br /&gt;
**web worker&lt;br /&gt;
*Backend&lt;br /&gt;
**Spring Boot&lt;br /&gt;
**AWS EC2&lt;br /&gt;
**AWS VPC&lt;br /&gt;
**AWS Lambda&lt;br /&gt;
**Jenkins&lt;br /&gt;
**Github Webhook&lt;br /&gt;
**MongoDB&lt;br /&gt;
**Docker&lt;br /&gt;
**AWS Route53&lt;br /&gt;
*AI&lt;br /&gt;
**Llama-13B&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
*경쟁제품 조사 비교&lt;br /&gt;
{| cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot; &amp;quot;text-align&amp;quot;=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 서비스&lt;br /&gt;
| 사용자가 요구사항을 수행하기 위해 Sub task로 분할&lt;br /&gt;
| Subtask를 실행&lt;br /&gt;
| 새로운 요구사항을 구현&lt;br /&gt;
|-&lt;br /&gt;
| ChatGPT&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| WebShop&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| ALFWorld&lt;br /&gt;
| YES &lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| AgentGPT&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| BabyAGI&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Jarvis&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Epimetheus&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
*마케팅 전략 제시&lt;br /&gt;
**코드를 작성 할 수 있는 개발자들에게 LLM을 기반으로 자동화 할 수 있는 점을 강조&lt;br /&gt;
**본 서비스에 필요로 하는 기능을 직접 추가할 수 있음을 강조&lt;br /&gt;
**AI 혹은 다른 사람이 작성해 놓은 비슷한 TASK를 기반으로 기능을 추가할 수 있음을 강조&lt;br /&gt;
&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
'''◇ (AI)오*영(팀장)'''&lt;br /&gt;
* Llama 서버 구현&lt;br /&gt;
* 인프라 설계&lt;br /&gt;
'''◇ (Back-end)김*원'''&lt;br /&gt;
&lt;br /&gt;
'''◇ (Front-end)이*주'''&lt;br /&gt;
*UI/UX&lt;br /&gt;
*플랫폼 페이지 구현&lt;br /&gt;
*Back-end와의 SSE통신코드 작성&lt;br /&gt;
'''◇ (Front-end)장*호'''&lt;br /&gt;
*컴포넌트 설계&lt;br /&gt;
*각 subtask별 실행코드 환경 구성&lt;br /&gt;
*실행코드의 실행 테스트 구현&lt;br /&gt;
'''◇ (Back-end)황*우'''&lt;br /&gt;
*SubTask생성 및 parsing, 실행코드 실행 테스트 API 구현&lt;br /&gt;
*API단위 테스트 구현&lt;br /&gt;
*DB 설치 및 메소드 구현&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
[[파일:에피메테우스_제품요구사항.png]]&lt;br /&gt;
====설계 사양====&lt;br /&gt;
* &amp;lt;strong&amp;gt;사용자가 요구한 업무에 대한 출력 제공&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 사용자는 원하는 업무를 text box에 입력할 수 있다.&lt;br /&gt;
** 입력을 제출(submit)하면 서버에서 1개 이상의 Step을 출력해준다.&lt;br /&gt;
** 각 Step은 요약(Title), 상세내용(Description), 코드(Code), 작성언어(Language)를 포함하고 있다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;코드 실행 가능&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 이전 Step의 출력이 다음 Step의 입력으로 제공되어야 한다.&lt;br /&gt;
** Step에 입력된 코드를 실행하여 Task에 대해서 수행한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;사용자가 직접 특정 단계의 코드 수정 가능&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 특정 Step의 Code를 수정할 수 있는 에디터를 제공한다.&lt;br /&gt;
** 새로 입력한 Code의 입출력 양식이 같은지 검사한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;이전 요청 저장&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 기존의 사용자가 입력한 Task에 대해서 기록한다.&lt;br /&gt;
** 이전 업무와 연결되는 이후의 업무를 우선적으로 제공한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;음성 인식을 통한 업무 입력 기능 제공&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 음성인식을 통해 사용자가 업무를 입력하면, 텍스트로 변환하여 text box에 자동으로 입력한다.&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
[[파일:에피메테우스_인프라도.jpg]]&lt;br /&gt;
* &amp;lt;strong&amp;gt;User 요청의 접근 과정&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Route53을 통해 S3 Bucket에 존재하는 정적 리소스에 접근한다.&lt;br /&gt;
** S3 Bucket에서 Server로 API 요청을 보낸다.&lt;br /&gt;
** Public Subnet 내의 Nginx EC2를 통해 Spring Boot EC2로 리버스 프록시가 진행된다.&lt;br /&gt;
** DB에 접근이 필요하다면 Private Subnet 내의 MongoDB EC2에서 DB 데이터를 받아온다.&lt;br /&gt;
** Llama에서 처리해야 하는 로직이 존재한다면 School Server로 요청을 보낸다.&lt;br /&gt;
** School Server에 존재하는 Llama FastAPI 서버에서 응답을 보낸다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;Developer의 배포 과정(Frontend)&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Source Code를 Main에 Merge한다.&lt;br /&gt;
** Github Webhook을 통해 API Gateway에 연결된 API를 호출한다.&lt;br /&gt;
** Lambda를 Trigger하여 Private Subnet 내의 Jenkins EC2로 Github Webhook의 Body를 전송한다.&lt;br /&gt;
** Frontend 수정 여부를 판별한다.&lt;br /&gt;
** Frontend의 배포 시에는 jenkins에서 빌드된 bundle을 S3 React Build Bucket에 보낸다.&lt;br /&gt;
** S3 Build Bucket에서 S3 Deploy Bucket으로 보내고, Client는 이쪽으로 접근할 수 있다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;Developer의 배포 과정(Backend)&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Source Code를 Main에 Merge한다.&lt;br /&gt;
** Github Webhook을 통해 API Gateway에 연결된 API를 호출한다.&lt;br /&gt;
** Lambda를 Trigger하여 Private Subnet 내의 Jenkins EC2로 Github Webhook의 Body를 전송한다.&lt;br /&gt;
** Backend 수정 여부를 판별한다.&lt;br /&gt;
** Jar 파일을 S3 Spring Bucket에 저장한다.&lt;br /&gt;
** CodeDeploy에서 파일을 가져와 Spring EC2에 실행한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;외부 접근 제한&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Build와 관련된 단위들은 외부에서 접근이 불가능하다.&lt;br /&gt;
** NAT Gateway를 통해 내부 단위들은 외부 인터넷에 접근가능하다.&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
* Task1: Turn on the song on Youtube&lt;br /&gt;
** Step 1. Open the web-browser&lt;br /&gt;
** Step 2. Access to YouTube.&lt;br /&gt;
** Step 3. Search for the song you want to play.&lt;br /&gt;
** Step 4. Click on the video you want to play.&lt;br /&gt;
&lt;br /&gt;
* Task2: Write a Personal Statement that fits the certain company's job opening&lt;br /&gt;
** Step 1. Highlight your relevant skills and experience.&lt;br /&gt;
** Step 2. Demonstrate your knowledge of the company and the position.&lt;br /&gt;
** Step 3. Emphasize your enthusiasm for the industry and the company.&lt;br /&gt;
** Step 4. Showcase your ability to work well in a team environment.&lt;br /&gt;
&lt;br /&gt;
* Task3: Buy the most expensive raincoat in Amazon and Coupang&lt;br /&gt;
** Step 1. Open the web-browser.&lt;br /&gt;
** Step 2. Access to Amazon or Coupang.&lt;br /&gt;
** Step 3. Search for the most expensive raincoat.&lt;br /&gt;
** Step 4. Select the raincoat and add to cart.&lt;br /&gt;
** Step 5. Proceed to checkout.&lt;br /&gt;
** Step 6. Enter shipping and billing information.&lt;br /&gt;
** Step 7. Review order summary and place order.&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
◇ System Flow Chart&lt;br /&gt;
&lt;br /&gt;
[[파일:System Flow Chart.jpg]]&lt;br /&gt;
#Write a Task : 사용자가 Task를 작성한다.&lt;br /&gt;
#Split Task into SubTasks : 사용자가 작성한 Task를 Llama가 SubTask로 나누고 이를 서버가 파싱하여 사용자에게 SubTask로 제공한다.&lt;br /&gt;
#See the SubTasks of Task : 사용자는 서버가 분리한 SubTask들을 볼 수 있다.&lt;br /&gt;
#Click the Exec Button : 사용자가 코드 실행 버튼을 누른다.&lt;br /&gt;
#Search the Codes of each SubTasks : 서버는 각 SubTask들의 코드를 데이터베이스에서 탐색한다.&lt;br /&gt;
#Execute the Javascript Code : 서버가 탐색한 Javascript Code를 실행시킨다.&lt;br /&gt;
#Check the result of the Task : 사용자는 Task와 코드의 결과값이 일치하는지 확인한다.&lt;br /&gt;
&lt;br /&gt;
◇ 클래스도&lt;br /&gt;
&lt;br /&gt;
*Frontend 전체&lt;br /&gt;
[[파일:전체Frontend.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Frontend 1번 파트&lt;br /&gt;
[[파일:Frontend1.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Frontend 2번 파트&lt;br /&gt;
[[파일:Frontend2.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Frontend 3번 파트&lt;br /&gt;
[[파일:Frontend3.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Backend 전체&lt;br /&gt;
[[파일:Backend.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Backend 빨강 파트&lt;br /&gt;
[[파일:Backend빨강.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Backend 파랑 파트&lt;br /&gt;
[[파일:Backend파랑.jpg]]&lt;br /&gt;
&lt;br /&gt;
◇ 순차도&lt;br /&gt;
*1번 - 사용자의 Task에 대한 SubTask 제공&lt;br /&gt;
[[파일:1번 순차도.jpg]]&lt;br /&gt;
&lt;br /&gt;
*2번 - 사용자가 직접 특정 단계의 코드 수정 가능&lt;br /&gt;
[[파일:2번 순차도1.jpg]]&lt;br /&gt;
[[파일:2번 순차도2.jpg]]&lt;br /&gt;
&lt;br /&gt;
*3번 - 코드 실행&lt;br /&gt;
[[파일:3번 순차도.jpg]]&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
평가 방법&lt;br /&gt;
* 시스템 사용성 평가&lt;br /&gt;
**‘SUS 설문지’의 응답을 점수화&lt;br /&gt;
**5명 대상으로 설문조사 후 100점으로 환산했을 때 평균 점수 사용&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*UI 접근성 평가&lt;br /&gt;
**UI 접근성 평가는 웹 접근성 지침을 활용해 접근성을 점수화&lt;br /&gt;
**웹 접근성 지침을 휴리스틱 아이템으로 1~5점 사이로 평가&lt;br /&gt;
***https://docs.google.com/spreadsheets/d/1dmpauvOY60bqKC-nZWKYzTls1nSvsn_-Vi7nFAolCPM/edit?usp=sharing&lt;br /&gt;
**4명이 평가해 평균 점수&lt;br /&gt;
**평균 점수를 100점 만점으로 환산&lt;br /&gt;
&lt;br /&gt;
*작업 처리시간 비교&lt;br /&gt;
**WireShrak tool을 사용하여 서비스의 응답 시간를 측정&lt;br /&gt;
**4가지 측정된 응답 시간의 평균을 점수로 활용&lt;br /&gt;
&lt;br /&gt;
평가 결과&lt;br /&gt;
*사용성 평가&lt;br /&gt;
{| cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;15%&amp;quot; &amp;quot;text-align&amp;quot;=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| P1&lt;br /&gt;
| 55&lt;br /&gt;
|-&lt;br /&gt;
| P2&lt;br /&gt;
| 77.5&lt;br /&gt;
|-&lt;br /&gt;
| P3&lt;br /&gt;
| 55&lt;br /&gt;
|-&lt;br /&gt;
| P4&lt;br /&gt;
| 60&lt;br /&gt;
|-&lt;br /&gt;
| P5&lt;br /&gt;
| 60&lt;br /&gt;
|-&lt;br /&gt;
| 평균&lt;br /&gt;
| 61.5&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
** 100점 만점에 61.5점&lt;br /&gt;
&lt;br /&gt;
*UI 접근성 평가&lt;br /&gt;
**5점 만점에 2.8점&lt;br /&gt;
&lt;br /&gt;
*작업 처리 시간&lt;br /&gt;
**사이트 접속시간: 0.1s&lt;br /&gt;
**Task를 입력하고 Conclusion을 받아오는 시간: 97.4s&lt;br /&gt;
**코드를 저장하고 변경사항을 받아오는 시간: 5.3s&lt;br /&gt;
**코드 실행시의 결과를 받는 시간: 3.3s&lt;br /&gt;
&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
*완료작품 소개: https://github.com/UOS-CSDESIGN/Epimetheus&lt;br /&gt;
*완료작품 사용법: https://drive.google.com/file/d/18phd0OKS8zUmmRtGEu8fYZe8j0N8zS8J/view?usp=sharing&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
Demo: https://drive.google.com/file/d/1TWiVRTYQyhmW7HHHsCoS5_kOn-DJxh4N/view?usp=sharing&lt;/div&gt;</summary>
		<author><name>Com2312</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%EC%97%90%ED%94%BC%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4&amp;diff=9665</id>
		<title>에피메테우스</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%EC%97%90%ED%94%BC%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4&amp;diff=9665"/>
				<updated>2023-12-26T10:43:27Z</updated>
		
		<summary type="html">&lt;p&gt;Com2312: /* 결과 및 평가 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : ''' 에피메테우스(LLM을 활용한 웹 기반의 업무 자동화 플랫폼)&lt;br /&gt;
&lt;br /&gt;
''' 영문 : ''' Epimetheus (Web based task automation platform)&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
에피메테우스&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
정형구 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2023년 9월 ~ 2023년 12월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 오*영(팀장)&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 김*원&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 이*주&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 장*호&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 황*우&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
Gighub Repository: https://github.com/UOS-CSDESIGN/Epimetheus&lt;br /&gt;
&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
'''◇ LLM을 활용한 웹 기반의 업무 자동화 플랫폼 구축'''&lt;br /&gt;
*사용자가 제공한 업무를 실제로 실행할 수 있는 자동화 AI 플랫폼 구현이 주된 목표이다. &lt;br /&gt;
*기존 AutoGPT와 유사한 기능을 제공하도록 대형 언어 모델(LLM)을 이용해 사용자의 업무를 이루기 위한 일련의 과정을 LLM(Llama)이 생성 후 제공한다. &lt;br /&gt;
*기존 서비스와의 차이점은 AI 모델의 단점인 블랙박스 특성을 없애기 위해 업무를 수행하기 위한 각 단계에 적절한 코드를 DB에서 불러오고, 해당 코드를 실행한다는 점이다. &lt;br /&gt;
*특정 단계에 해당하는 기능이 없을 때 원하는 기능을 사용자가 직접 추가하여 실행할 수 있다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
*현재 ChatGPT의 성공에 힘입어 LLM을 이용하여 업무를 자동화하는 시도가 존재한다.&lt;br /&gt;
*LLM을 이용하여 모든 업무를 자동화하는 것은 현재 수준으로는 부족하다는 보고가 있다.&lt;br /&gt;
*이러한 배경에 힘입어 기존 서비스의 한계점을 극복하기 위해 코드 단위로 업무를 실행하는 웹 기반의 업무 자동화 플랫폼을 구현하고자 한다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
◇ Frontend&lt;br /&gt;
*접근성을 고려한 UI 개발&lt;br /&gt;
*사용자가 작성한 코드를 웹 환경에서 실행시키는 기능 개발&lt;br /&gt;
&lt;br /&gt;
◇ Backend&lt;br /&gt;
*문장의 의미를 나타내는 벡터로 유사한 이름을 가진 TASK를 찾는 기능 개발&lt;br /&gt;
&lt;br /&gt;
◇ AI&lt;br /&gt;
*LLM(Large Language Model)을 이용하여 사용자 목표 달성을 위한 업무를 자동으로 분할하는 기능 개발&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
* 다양한 Benchmark에 대하여 여러 거대 언어 모델들의 성능을 비교&lt;br /&gt;
[[파일:Benchmark.jpg|700px]]&lt;br /&gt;
* 하지만 해당 Benchmark에는 구현하고자 하는 기능을 담고 있지 않음&lt;br /&gt;
* 해당 Benchmark에서 Llama-2(13B)을 사용&lt;br /&gt;
*특허조사 및 특허 전략 분석&lt;br /&gt;
&lt;br /&gt;
====기술 로드맵====&lt;br /&gt;
* Frontend&lt;br /&gt;
**Figma&lt;br /&gt;
**React&lt;br /&gt;
**web worker&lt;br /&gt;
*Backend&lt;br /&gt;
**Spring Boot&lt;br /&gt;
**AWS EC2&lt;br /&gt;
**AWS VPC&lt;br /&gt;
**AWS Lambda&lt;br /&gt;
**Jenkins&lt;br /&gt;
**Github Webhook&lt;br /&gt;
**MongoDB&lt;br /&gt;
**Docker&lt;br /&gt;
**AWS Route53&lt;br /&gt;
*AI&lt;br /&gt;
**Llama-13B&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
*경쟁제품 조사 비교&lt;br /&gt;
{| cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot; &amp;quot;text-align&amp;quot;=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 서비스&lt;br /&gt;
| 사용자가 요구사항을 수행하기 위해 Sub task로 분할&lt;br /&gt;
| Subtask를 실행&lt;br /&gt;
| 새로운 요구사항을 구현&lt;br /&gt;
|-&lt;br /&gt;
| ChatGPT&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| WebShop&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| ALFWorld&lt;br /&gt;
| YES &lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| AgentGPT&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| BabyAGI&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Jarvis&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Epimetheus&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
*마케팅 전략 제시&lt;br /&gt;
**코드를 작성 할 수 있는 개발자들에게 LLM을 기반으로 자동화 할 수 있는 점을 강조&lt;br /&gt;
**본 서비스에 필요로 하는 기능을 직접 추가할 수 있음을 강조&lt;br /&gt;
**AI 혹은 다른 사람이 작성해 놓은 비슷한 TASK를 기반으로 기능을 추가할 수 있음을 강조&lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
내용&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
내용&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
'''◇ (AI)오*영(팀장)'''&lt;br /&gt;
* Llama 서버 구현&lt;br /&gt;
* 인프라 설계&lt;br /&gt;
'''◇ (Back-end)김*원'''&lt;br /&gt;
&lt;br /&gt;
'''◇ (Front-end)이*주'''&lt;br /&gt;
*UI/UX&lt;br /&gt;
*플랫폼 페이지 구현&lt;br /&gt;
*Back-end와의 SSE통신코드 작성&lt;br /&gt;
'''◇ (Front-end)장*호'''&lt;br /&gt;
*컴포넌트 설계&lt;br /&gt;
*각 subtask별 실행코드 환경 구성&lt;br /&gt;
*실행코드의 실행 테스트 구현&lt;br /&gt;
'''◇ (Back-end)황*우'''&lt;br /&gt;
*SubTask생성 및 parsing, 실행코드 실행 테스트 API 구현&lt;br /&gt;
*API단위 테스트 구현&lt;br /&gt;
*DB 설치 및 메소드 구현&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
[[파일:에피메테우스_제품요구사항.png]]&lt;br /&gt;
====설계 사양====&lt;br /&gt;
* &amp;lt;strong&amp;gt;사용자가 요구한 업무에 대한 출력 제공&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 사용자는 원하는 업무를 text box에 입력할 수 있다.&lt;br /&gt;
** 입력을 제출(submit)하면 서버에서 1개 이상의 Step을 출력해준다.&lt;br /&gt;
** 각 Step은 요약(Title), 상세내용(Description), 코드(Code), 작성언어(Language)를 포함하고 있다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;코드 실행 가능&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 이전 Step의 출력이 다음 Step의 입력으로 제공되어야 한다.&lt;br /&gt;
** Step에 입력된 코드를 실행하여 Task에 대해서 수행한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;사용자가 직접 특정 단계의 코드 수정 가능&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 특정 Step의 Code를 수정할 수 있는 에디터를 제공한다.&lt;br /&gt;
** 새로 입력한 Code의 입출력 양식이 같은지 검사한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;이전 요청 저장&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 기존의 사용자가 입력한 Task에 대해서 기록한다.&lt;br /&gt;
** 이전 업무와 연결되는 이후의 업무를 우선적으로 제공한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;음성 인식을 통한 업무 입력 기능 제공&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 음성인식을 통해 사용자가 업무를 입력하면, 텍스트로 변환하여 text box에 자동으로 입력한다.&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
[[파일:에피메테우스_인프라도.jpg]]&lt;br /&gt;
* &amp;lt;strong&amp;gt;User 요청의 접근 과정&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Route53을 통해 S3 Bucket에 존재하는 정적 리소스에 접근한다.&lt;br /&gt;
** S3 Bucket에서 Server로 API 요청을 보낸다.&lt;br /&gt;
** Public Subnet 내의 Nginx EC2를 통해 Spring Boot EC2로 리버스 프록시가 진행된다.&lt;br /&gt;
** DB에 접근이 필요하다면 Private Subnet 내의 MongoDB EC2에서 DB 데이터를 받아온다.&lt;br /&gt;
** Llama에서 처리해야 하는 로직이 존재한다면 School Server로 요청을 보낸다.&lt;br /&gt;
** School Server에 존재하는 Llama FastAPI 서버에서 응답을 보낸다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;Developer의 배포 과정(Frontend)&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Source Code를 Main에 Merge한다.&lt;br /&gt;
** Github Webhook을 통해 API Gateway에 연결된 API를 호출한다.&lt;br /&gt;
** Lambda를 Trigger하여 Private Subnet 내의 Jenkins EC2로 Github Webhook의 Body를 전송한다.&lt;br /&gt;
** Frontend 수정 여부를 판별한다.&lt;br /&gt;
** Frontend의 배포 시에는 jenkins에서 빌드된 bundle을 S3 React Build Bucket에 보낸다.&lt;br /&gt;
** S3 Build Bucket에서 S3 Deploy Bucket으로 보내고, Client는 이쪽으로 접근할 수 있다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;Developer의 배포 과정(Backend)&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Source Code를 Main에 Merge한다.&lt;br /&gt;
** Github Webhook을 통해 API Gateway에 연결된 API를 호출한다.&lt;br /&gt;
** Lambda를 Trigger하여 Private Subnet 내의 Jenkins EC2로 Github Webhook의 Body를 전송한다.&lt;br /&gt;
** Backend 수정 여부를 판별한다.&lt;br /&gt;
** Jar 파일을 S3 Spring Bucket에 저장한다.&lt;br /&gt;
** CodeDeploy에서 파일을 가져와 Spring EC2에 실행한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;외부 접근 제한&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Build와 관련된 단위들은 외부에서 접근이 불가능하다.&lt;br /&gt;
** NAT Gateway를 통해 내부 단위들은 외부 인터넷에 접근가능하다.&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
* Task1: Turn on the song on Youtube&lt;br /&gt;
** Step 1. Open the web-browser&lt;br /&gt;
** Step 2. Access to YouTube.&lt;br /&gt;
** Step 3. Search for the song you want to play.&lt;br /&gt;
** Step 4. Click on the video you want to play.&lt;br /&gt;
&lt;br /&gt;
* Task2: Write a Personal Statement that fits the certain company's job opening&lt;br /&gt;
** Step 1. Highlight your relevant skills and experience.&lt;br /&gt;
** Step 2. Demonstrate your knowledge of the company and the position.&lt;br /&gt;
** Step 3. Emphasize your enthusiasm for the industry and the company.&lt;br /&gt;
** Step 4. Showcase your ability to work well in a team environment.&lt;br /&gt;
&lt;br /&gt;
* Task3: Buy the most expensive raincoat in Amazon and Coupang&lt;br /&gt;
** Step 1. Open the web-browser.&lt;br /&gt;
** Step 2. Access to Amazon or Coupang.&lt;br /&gt;
** Step 3. Search for the most expensive raincoat.&lt;br /&gt;
** Step 4. Select the raincoat and add to cart.&lt;br /&gt;
** Step 5. Proceed to checkout.&lt;br /&gt;
** Step 6. Enter shipping and billing information.&lt;br /&gt;
** Step 7. Review order summary and place order.&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
◇ System Flow Chart&lt;br /&gt;
&lt;br /&gt;
[[파일:System Flow Chart.jpg]]&lt;br /&gt;
#Write a Task : 사용자가 Task를 작성한다.&lt;br /&gt;
#Split Task into SubTasks : 사용자가 작성한 Task를 Llama가 SubTask로 나누고 이를 서버가 파싱하여 사용자에게 SubTask로 제공한다.&lt;br /&gt;
#See the SubTasks of Task : 사용자는 서버가 분리한 SubTask들을 볼 수 있다.&lt;br /&gt;
#Click the Exec Button : 사용자가 코드 실행 버튼을 누른다.&lt;br /&gt;
#Search the Codes of each SubTasks : 서버는 각 SubTask들의 코드를 데이터베이스에서 탐색한다.&lt;br /&gt;
#Execute the Javascript Code : 서버가 탐색한 Javascript Code를 실행시킨다.&lt;br /&gt;
#Check the result of the Task : 사용자는 Task와 코드의 결과값이 일치하는지 확인한다.&lt;br /&gt;
&lt;br /&gt;
◇ 클래스도&lt;br /&gt;
&lt;br /&gt;
*Frontend 전체&lt;br /&gt;
[[파일:전체Frontend.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Frontend 1번 파트&lt;br /&gt;
[[파일:Frontend1.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Frontend 2번 파트&lt;br /&gt;
[[파일:Frontend2.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Frontend 3번 파트&lt;br /&gt;
[[파일:Frontend3.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Backend 전체&lt;br /&gt;
[[파일:Backend.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Backend 빨강 파트&lt;br /&gt;
[[파일:Backend빨강.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Backend 파랑 파트&lt;br /&gt;
[[파일:Backend파랑.jpg]]&lt;br /&gt;
&lt;br /&gt;
◇ 순차도&lt;br /&gt;
*1번 - 사용자의 Task에 대한 SubTask 제공&lt;br /&gt;
[[파일:1번 순차도.jpg]]&lt;br /&gt;
&lt;br /&gt;
*2번 - 사용자가 직접 특정 단계의 코드 수정 가능&lt;br /&gt;
[[파일:2번 순차도1.jpg]]&lt;br /&gt;
[[파일:2번 순차도2.jpg]]&lt;br /&gt;
&lt;br /&gt;
*3번 - 코드 실행&lt;br /&gt;
[[파일:3번 순차도.jpg]]&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
평가 방법&lt;br /&gt;
* 시스템 사용성 평가&lt;br /&gt;
**‘SUS 설문지’의 응답을 점수화&lt;br /&gt;
**5명 대상으로 설문조사 후 100점으로 환산했을 때 평균 점수 사용&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*UI 접근성 평가&lt;br /&gt;
**UI 접근성 평가는 웹 접근성 지침을 활용해 접근성을 점수화&lt;br /&gt;
**웹 접근성 지침을 휴리스틱 아이템으로 1~5점 사이로 평가&lt;br /&gt;
***https://docs.google.com/spreadsheets/d/1dmpauvOY60bqKC-nZWKYzTls1nSvsn_-Vi7nFAolCPM/edit?usp=sharing&lt;br /&gt;
**4명이 평가해 평균 점수&lt;br /&gt;
**평균 점수를 100점 만점으로 환산&lt;br /&gt;
&lt;br /&gt;
*작업 처리시간 비교&lt;br /&gt;
**WireShrak tool을 사용하여 서비스의 응답 시간를 측정&lt;br /&gt;
**4가지 측정된 응답 시간의 평균을 점수로 활용&lt;br /&gt;
&lt;br /&gt;
평가 결과&lt;br /&gt;
*사용성 평가&lt;br /&gt;
{| cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;15%&amp;quot; &amp;quot;text-align&amp;quot;=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| P1&lt;br /&gt;
| 55&lt;br /&gt;
|-&lt;br /&gt;
| P2&lt;br /&gt;
| 77.5&lt;br /&gt;
|-&lt;br /&gt;
| P3&lt;br /&gt;
| 55&lt;br /&gt;
|-&lt;br /&gt;
| P4&lt;br /&gt;
| 60&lt;br /&gt;
|-&lt;br /&gt;
| P5&lt;br /&gt;
| 60&lt;br /&gt;
|-&lt;br /&gt;
| 평균&lt;br /&gt;
| 61.5&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
** 100점 만점에 61.5점&lt;br /&gt;
&lt;br /&gt;
*UI 접근성 평가&lt;br /&gt;
**5점 만점에 2.8점&lt;br /&gt;
&lt;br /&gt;
*작업 처리 시간&lt;br /&gt;
**사이트 접속시간: 0.1s&lt;br /&gt;
**Task를 입력하고 Conclusion을 받아오는 시간: 97.4s&lt;br /&gt;
**코드를 저장하고 변경사항을 받아오는 시간: 5.3s&lt;br /&gt;
**코드 실행시의 결과를 받는 시간: 3.3s&lt;br /&gt;
&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
*완료작품 소개: https://github.com/UOS-CSDESIGN/Epimetheus&lt;br /&gt;
*완료작품 사용법: https://drive.google.com/file/d/18phd0OKS8zUmmRtGEu8fYZe8j0N8zS8J/view?usp=sharing&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
Demo: https://drive.google.com/file/d/1TWiVRTYQyhmW7HHHsCoS5_kOn-DJxh4N/view?usp=sharing&lt;/div&gt;</summary>
		<author><name>Com2312</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%EC%97%90%ED%94%BC%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4&amp;diff=9664</id>
		<title>에피메테우스</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%EC%97%90%ED%94%BC%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4&amp;diff=9664"/>
				<updated>2023-12-26T10:26:02Z</updated>
		
		<summary type="html">&lt;p&gt;Com2312: /* 개발 과제의 개요 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : ''' 에피메테우스(LLM을 활용한 웹 기반의 업무 자동화 플랫폼)&lt;br /&gt;
&lt;br /&gt;
''' 영문 : ''' Epimetheus (Web based task automation platform)&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
에피메테우스&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
정형구 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2023년 9월 ~ 2023년 12월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 오*영(팀장)&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 김*원&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 이*주&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 장*호&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 황*우&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
Gighub Repository: https://github.com/UOS-CSDESIGN/Epimetheus&lt;br /&gt;
&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
'''◇ LLM을 활용한 웹 기반의 업무 자동화 플랫폼 구축'''&lt;br /&gt;
*사용자가 제공한 업무를 실제로 실행할 수 있는 자동화 AI 플랫폼 구현이 주된 목표이다. &lt;br /&gt;
*기존 AutoGPT와 유사한 기능을 제공하도록 대형 언어 모델(LLM)을 이용해 사용자의 업무를 이루기 위한 일련의 과정을 LLM(Llama)이 생성 후 제공한다. &lt;br /&gt;
*기존 서비스와의 차이점은 AI 모델의 단점인 블랙박스 특성을 없애기 위해 업무를 수행하기 위한 각 단계에 적절한 코드를 DB에서 불러오고, 해당 코드를 실행한다는 점이다. &lt;br /&gt;
*특정 단계에 해당하는 기능이 없을 때 원하는 기능을 사용자가 직접 추가하여 실행할 수 있다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
*현재 ChatGPT의 성공에 힘입어 LLM을 이용하여 업무를 자동화하는 시도가 존재한다.&lt;br /&gt;
*LLM을 이용하여 모든 업무를 자동화하는 것은 현재 수준으로는 부족하다는 보고가 있다.&lt;br /&gt;
*이러한 배경에 힘입어 기존 서비스의 한계점을 극복하기 위해 코드 단위로 업무를 실행하는 웹 기반의 업무 자동화 플랫폼을 구현하고자 한다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
◇ Frontend&lt;br /&gt;
*접근성을 고려한 UI 개발&lt;br /&gt;
*사용자가 작성한 코드를 웹 환경에서 실행시키는 기능 개발&lt;br /&gt;
&lt;br /&gt;
◇ Backend&lt;br /&gt;
*문장의 의미를 나타내는 벡터로 유사한 이름을 가진 TASK를 찾는 기능 개발&lt;br /&gt;
&lt;br /&gt;
◇ AI&lt;br /&gt;
*LLM(Large Language Model)을 이용하여 사용자 목표 달성을 위한 업무를 자동으로 분할하는 기능 개발&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
* 다양한 Benchmark에 대하여 여러 거대 언어 모델들의 성능을 비교&lt;br /&gt;
[[파일:Benchmark.jpg|700px]]&lt;br /&gt;
* 하지만 해당 Benchmark에는 구현하고자 하는 기능을 담고 있지 않음&lt;br /&gt;
* 해당 Benchmark에서 Llama-2(13B)을 사용&lt;br /&gt;
*특허조사 및 특허 전략 분석&lt;br /&gt;
&lt;br /&gt;
====기술 로드맵====&lt;br /&gt;
* Frontend&lt;br /&gt;
**Figma&lt;br /&gt;
**React&lt;br /&gt;
**web worker&lt;br /&gt;
*Backend&lt;br /&gt;
**Spring Boot&lt;br /&gt;
**AWS EC2&lt;br /&gt;
**AWS VPC&lt;br /&gt;
**AWS Lambda&lt;br /&gt;
**Jenkins&lt;br /&gt;
**Github Webhook&lt;br /&gt;
**MongoDB&lt;br /&gt;
**Docker&lt;br /&gt;
**AWS Route53&lt;br /&gt;
*AI&lt;br /&gt;
**Llama-13B&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
*경쟁제품 조사 비교&lt;br /&gt;
{| cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot; &amp;quot;text-align&amp;quot;=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 서비스&lt;br /&gt;
| 사용자가 요구사항을 수행하기 위해 Sub task로 분할&lt;br /&gt;
| Subtask를 실행&lt;br /&gt;
| 새로운 요구사항을 구현&lt;br /&gt;
|-&lt;br /&gt;
| ChatGPT&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| WebShop&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| ALFWorld&lt;br /&gt;
| YES &lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| AgentGPT&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| BabyAGI&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Jarvis&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Epimetheus&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
*마케팅 전략 제시&lt;br /&gt;
**코드를 작성 할 수 있는 개발자들에게 LLM을 기반으로 자동화 할 수 있는 점을 강조&lt;br /&gt;
**본 서비스에 필요로 하는 기능을 직접 추가할 수 있음을 강조&lt;br /&gt;
**AI 혹은 다른 사람이 작성해 놓은 비슷한 TASK를 기반으로 기능을 추가할 수 있음을 강조&lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
내용&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
내용&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
'''◇ (AI)오*영(팀장)'''&lt;br /&gt;
* Llama 서버 구현&lt;br /&gt;
* 인프라 설계&lt;br /&gt;
'''◇ (Back-end)김*원'''&lt;br /&gt;
&lt;br /&gt;
'''◇ (Front-end)이*주'''&lt;br /&gt;
*UI/UX&lt;br /&gt;
*플랫폼 페이지 구현&lt;br /&gt;
*Back-end와의 SSE통신코드 작성&lt;br /&gt;
'''◇ (Front-end)장*호'''&lt;br /&gt;
*컴포넌트 설계&lt;br /&gt;
*각 subtask별 실행코드 환경 구성&lt;br /&gt;
*실행코드의 실행 테스트 구현&lt;br /&gt;
'''◇ (Back-end)황*우'''&lt;br /&gt;
*SubTask생성 및 parsing, 실행코드 실행 테스트 API 구현&lt;br /&gt;
*API단위 테스트 구현&lt;br /&gt;
*DB 설치 및 메소드 구현&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
[[파일:에피메테우스_제품요구사항.png]]&lt;br /&gt;
====설계 사양====&lt;br /&gt;
* &amp;lt;strong&amp;gt;사용자가 요구한 업무에 대한 출력 제공&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 사용자는 원하는 업무를 text box에 입력할 수 있다.&lt;br /&gt;
** 입력을 제출(submit)하면 서버에서 1개 이상의 Step을 출력해준다.&lt;br /&gt;
** 각 Step은 요약(Title), 상세내용(Description), 코드(Code), 작성언어(Language)를 포함하고 있다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;코드 실행 가능&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 이전 Step의 출력이 다음 Step의 입력으로 제공되어야 한다.&lt;br /&gt;
** Step에 입력된 코드를 실행하여 Task에 대해서 수행한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;사용자가 직접 특정 단계의 코드 수정 가능&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 특정 Step의 Code를 수정할 수 있는 에디터를 제공한다.&lt;br /&gt;
** 새로 입력한 Code의 입출력 양식이 같은지 검사한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;이전 요청 저장&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 기존의 사용자가 입력한 Task에 대해서 기록한다.&lt;br /&gt;
** 이전 업무와 연결되는 이후의 업무를 우선적으로 제공한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;음성 인식을 통한 업무 입력 기능 제공&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 음성인식을 통해 사용자가 업무를 입력하면, 텍스트로 변환하여 text box에 자동으로 입력한다.&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
[[파일:에피메테우스_인프라도.jpg]]&lt;br /&gt;
* &amp;lt;strong&amp;gt;User 요청의 접근 과정&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Route53을 통해 S3 Bucket에 존재하는 정적 리소스에 접근한다.&lt;br /&gt;
** S3 Bucket에서 Server로 API 요청을 보낸다.&lt;br /&gt;
** Public Subnet 내의 Nginx EC2를 통해 Spring Boot EC2로 리버스 프록시가 진행된다.&lt;br /&gt;
** DB에 접근이 필요하다면 Private Subnet 내의 MongoDB EC2에서 DB 데이터를 받아온다.&lt;br /&gt;
** Llama에서 처리해야 하는 로직이 존재한다면 School Server로 요청을 보낸다.&lt;br /&gt;
** School Server에 존재하는 Llama FastAPI 서버에서 응답을 보낸다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;Developer의 배포 과정(Frontend)&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Source Code를 Main에 Merge한다.&lt;br /&gt;
** Github Webhook을 통해 API Gateway에 연결된 API를 호출한다.&lt;br /&gt;
** Lambda를 Trigger하여 Private Subnet 내의 Jenkins EC2로 Github Webhook의 Body를 전송한다.&lt;br /&gt;
** Frontend 수정 여부를 판별한다.&lt;br /&gt;
** Frontend의 배포 시에는 jenkins에서 빌드된 bundle을 S3 React Build Bucket에 보낸다.&lt;br /&gt;
** S3 Build Bucket에서 S3 Deploy Bucket으로 보내고, Client는 이쪽으로 접근할 수 있다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;Developer의 배포 과정(Backend)&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Source Code를 Main에 Merge한다.&lt;br /&gt;
** Github Webhook을 통해 API Gateway에 연결된 API를 호출한다.&lt;br /&gt;
** Lambda를 Trigger하여 Private Subnet 내의 Jenkins EC2로 Github Webhook의 Body를 전송한다.&lt;br /&gt;
** Backend 수정 여부를 판별한다.&lt;br /&gt;
** Jar 파일을 S3 Spring Bucket에 저장한다.&lt;br /&gt;
** CodeDeploy에서 파일을 가져와 Spring EC2에 실행한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;외부 접근 제한&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Build와 관련된 단위들은 외부에서 접근이 불가능하다.&lt;br /&gt;
** NAT Gateway를 통해 내부 단위들은 외부 인터넷에 접근가능하다.&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
* Task1: Turn on the song on Youtube&lt;br /&gt;
** Step 1. Open the web-browser&lt;br /&gt;
** Step 2. Access to YouTube.&lt;br /&gt;
** Step 3. Search for the song you want to play.&lt;br /&gt;
** Step 4. Click on the video you want to play.&lt;br /&gt;
&lt;br /&gt;
* Task2: Write a Personal Statement that fits the certain company's job opening&lt;br /&gt;
** Step 1. Highlight your relevant skills and experience.&lt;br /&gt;
** Step 2. Demonstrate your knowledge of the company and the position.&lt;br /&gt;
** Step 3. Emphasize your enthusiasm for the industry and the company.&lt;br /&gt;
** Step 4. Showcase your ability to work well in a team environment.&lt;br /&gt;
&lt;br /&gt;
* Task3: Buy the most expensive raincoat in Amazon and Coupang&lt;br /&gt;
** Step 1. Open the web-browser.&lt;br /&gt;
** Step 2. Access to Amazon or Coupang.&lt;br /&gt;
** Step 3. Search for the most expensive raincoat.&lt;br /&gt;
** Step 4. Select the raincoat and add to cart.&lt;br /&gt;
** Step 5. Proceed to checkout.&lt;br /&gt;
** Step 6. Enter shipping and billing information.&lt;br /&gt;
** Step 7. Review order summary and place order.&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
◇ System Flow Chart&lt;br /&gt;
&lt;br /&gt;
[[파일:System Flow Chart.jpg]]&lt;br /&gt;
#Write a Task : 사용자가 Task를 작성한다.&lt;br /&gt;
#Split Task into SubTasks : 사용자가 작성한 Task를 Llama가 SubTask로 나누고 이를 서버가 파싱하여 사용자에게 SubTask로 제공한다.&lt;br /&gt;
#See the SubTasks of Task : 사용자는 서버가 분리한 SubTask들을 볼 수 있다.&lt;br /&gt;
#Click the Exec Button : 사용자가 코드 실행 버튼을 누른다.&lt;br /&gt;
#Search the Codes of each SubTasks : 서버는 각 SubTask들의 코드를 데이터베이스에서 탐색한다.&lt;br /&gt;
#Execute the Javascript Code : 서버가 탐색한 Javascript Code를 실행시킨다.&lt;br /&gt;
#Check the result of the Task : 사용자는 Task와 코드의 결과값이 일치하는지 확인한다.&lt;br /&gt;
&lt;br /&gt;
◇ 클래스도&lt;br /&gt;
&lt;br /&gt;
*Frontend 전체&lt;br /&gt;
[[파일:전체Frontend.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Frontend 1번 파트&lt;br /&gt;
[[파일:Frontend1.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Frontend 2번 파트&lt;br /&gt;
[[파일:Frontend2.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Frontend 3번 파트&lt;br /&gt;
[[파일:Frontend3.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Backend 전체&lt;br /&gt;
[[파일:Backend.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Backend 빨강 파트&lt;br /&gt;
[[파일:Backend빨강.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Backend 파랑 파트&lt;br /&gt;
[[파일:Backend파랑.jpg]]&lt;br /&gt;
&lt;br /&gt;
◇ 순차도&lt;br /&gt;
*1번 - 사용자의 Task에 대한 SubTask 제공&lt;br /&gt;
[[파일:1번 순차도.jpg]]&lt;br /&gt;
&lt;br /&gt;
*2번 - 사용자가 직접 특정 단계의 코드 수정 가능&lt;br /&gt;
[[파일:2번 순차도1.jpg]]&lt;br /&gt;
[[파일:2번 순차도2.jpg]]&lt;br /&gt;
&lt;br /&gt;
*3번 - 코드 실행&lt;br /&gt;
[[파일:3번 순차도.jpg]]&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
내용&lt;br /&gt;
====포스터====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===관련사업비 내역서===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
내용&lt;/div&gt;</summary>
		<author><name>Com2312</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%EC%97%90%ED%94%BC%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4&amp;diff=9663</id>
		<title>에피메테우스</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%EC%97%90%ED%94%BC%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4&amp;diff=9663"/>
				<updated>2023-12-26T10:25:11Z</updated>
		
		<summary type="html">&lt;p&gt;Com2312: /* 기술개발 과제 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : ''' 에피메테우스(LLM을 활용한 웹 기반의 업무 자동화 플랫폼)&lt;br /&gt;
&lt;br /&gt;
''' 영문 : ''' Epimetheus (Web based task automation platform)&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
에피메테우스&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
정형구 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2023년 9월 ~ 2023년 12월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 오*영(팀장)&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 김*원&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 이*주&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 장*호&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 황*우&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
'''◇ LLM을 활용한 웹 기반의 업무 자동화 플랫폼 구축'''&lt;br /&gt;
*사용자가 제공한 업무를 실제로 실행할 수 있는 자동화 AI 플랫폼 구현이 주된 목표이다. &lt;br /&gt;
*기존 AutoGPT와 유사한 기능을 제공하도록 대형 언어 모델(LLM)을 이용해 사용자의 업무를 이루기 위한 일련의 과정을 LLM(Llama)이 생성 후 제공한다. &lt;br /&gt;
*기존 서비스와의 차이점은 AI 모델의 단점인 블랙박스 특성을 없애기 위해 업무를 수행하기 위한 각 단계에 적절한 코드를 DB에서 불러오고, 해당 코드를 실행한다는 점이다. &lt;br /&gt;
*특정 단계에 해당하는 기능이 없을 때 원하는 기능을 사용자가 직접 추가하여 실행할 수 있다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
*현재 ChatGPT의 성공에 힘입어 LLM을 이용하여 업무를 자동화하는 시도가 존재한다.&lt;br /&gt;
*LLM을 이용하여 모든 업무를 자동화하는 것은 현재 수준으로는 부족하다는 보고가 있다.&lt;br /&gt;
*이러한 배경에 힘입어 기존 서비스의 한계점을 극복하기 위해 코드 단위로 업무를 실행하는 웹 기반의 업무 자동화 플랫폼을 구현하고자 한다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
◇ Frontend&lt;br /&gt;
*접근성을 고려한 UI 개발&lt;br /&gt;
*사용자가 작성한 코드를 웹 환경에서 실행시키는 기능 개발&lt;br /&gt;
&lt;br /&gt;
◇ Backend&lt;br /&gt;
*문장의 의미를 나타내는 벡터로 유사한 이름을 가진 TASK를 찾는 기능 개발&lt;br /&gt;
&lt;br /&gt;
◇ AI&lt;br /&gt;
*LLM(Large Language Model)을 이용하여 사용자 목표 달성을 위한 업무를 자동으로 분할하는 기능 개발&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
* 다양한 Benchmark에 대하여 여러 거대 언어 모델들의 성능을 비교&lt;br /&gt;
[[파일:Benchmark.jpg|700px]]&lt;br /&gt;
* 하지만 해당 Benchmark에는 구현하고자 하는 기능을 담고 있지 않음&lt;br /&gt;
* 해당 Benchmark에서 Llama-2(13B)을 사용&lt;br /&gt;
*특허조사 및 특허 전략 분석&lt;br /&gt;
&lt;br /&gt;
====기술 로드맵====&lt;br /&gt;
* Frontend&lt;br /&gt;
**Figma&lt;br /&gt;
**React&lt;br /&gt;
**web worker&lt;br /&gt;
*Backend&lt;br /&gt;
**Spring Boot&lt;br /&gt;
**AWS EC2&lt;br /&gt;
**AWS VPC&lt;br /&gt;
**AWS Lambda&lt;br /&gt;
**Jenkins&lt;br /&gt;
**Github Webhook&lt;br /&gt;
**MongoDB&lt;br /&gt;
**Docker&lt;br /&gt;
**AWS Route53&lt;br /&gt;
*AI&lt;br /&gt;
**Llama-13B&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
*경쟁제품 조사 비교&lt;br /&gt;
{| cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot; &amp;quot;text-align&amp;quot;=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 서비스&lt;br /&gt;
| 사용자가 요구사항을 수행하기 위해 Sub task로 분할&lt;br /&gt;
| Subtask를 실행&lt;br /&gt;
| 새로운 요구사항을 구현&lt;br /&gt;
|-&lt;br /&gt;
| ChatGPT&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| WebShop&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| ALFWorld&lt;br /&gt;
| YES &lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| AgentGPT&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| BabyAGI&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Jarvis&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Epimetheus&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
*마케팅 전략 제시&lt;br /&gt;
**코드를 작성 할 수 있는 개발자들에게 LLM을 기반으로 자동화 할 수 있는 점을 강조&lt;br /&gt;
**본 서비스에 필요로 하는 기능을 직접 추가할 수 있음을 강조&lt;br /&gt;
**AI 혹은 다른 사람이 작성해 놓은 비슷한 TASK를 기반으로 기능을 추가할 수 있음을 강조&lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
내용&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
내용&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
'''◇ (AI)오*영(팀장)'''&lt;br /&gt;
* Llama 서버 구현&lt;br /&gt;
* 인프라 설계&lt;br /&gt;
'''◇ (Back-end)김*원'''&lt;br /&gt;
&lt;br /&gt;
'''◇ (Front-end)이*주'''&lt;br /&gt;
*UI/UX&lt;br /&gt;
*플랫폼 페이지 구현&lt;br /&gt;
*Back-end와의 SSE통신코드 작성&lt;br /&gt;
'''◇ (Front-end)장*호'''&lt;br /&gt;
*컴포넌트 설계&lt;br /&gt;
*각 subtask별 실행코드 환경 구성&lt;br /&gt;
*실행코드의 실행 테스트 구현&lt;br /&gt;
'''◇ (Back-end)황*우'''&lt;br /&gt;
*SubTask생성 및 parsing, 실행코드 실행 테스트 API 구현&lt;br /&gt;
*API단위 테스트 구현&lt;br /&gt;
*DB 설치 및 메소드 구현&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
[[파일:에피메테우스_제품요구사항.png]]&lt;br /&gt;
====설계 사양====&lt;br /&gt;
* &amp;lt;strong&amp;gt;사용자가 요구한 업무에 대한 출력 제공&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 사용자는 원하는 업무를 text box에 입력할 수 있다.&lt;br /&gt;
** 입력을 제출(submit)하면 서버에서 1개 이상의 Step을 출력해준다.&lt;br /&gt;
** 각 Step은 요약(Title), 상세내용(Description), 코드(Code), 작성언어(Language)를 포함하고 있다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;코드 실행 가능&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 이전 Step의 출력이 다음 Step의 입력으로 제공되어야 한다.&lt;br /&gt;
** Step에 입력된 코드를 실행하여 Task에 대해서 수행한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;사용자가 직접 특정 단계의 코드 수정 가능&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 특정 Step의 Code를 수정할 수 있는 에디터를 제공한다.&lt;br /&gt;
** 새로 입력한 Code의 입출력 양식이 같은지 검사한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;이전 요청 저장&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 기존의 사용자가 입력한 Task에 대해서 기록한다.&lt;br /&gt;
** 이전 업무와 연결되는 이후의 업무를 우선적으로 제공한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;음성 인식을 통한 업무 입력 기능 제공&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 음성인식을 통해 사용자가 업무를 입력하면, 텍스트로 변환하여 text box에 자동으로 입력한다.&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
[[파일:에피메테우스_인프라도.jpg]]&lt;br /&gt;
* &amp;lt;strong&amp;gt;User 요청의 접근 과정&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Route53을 통해 S3 Bucket에 존재하는 정적 리소스에 접근한다.&lt;br /&gt;
** S3 Bucket에서 Server로 API 요청을 보낸다.&lt;br /&gt;
** Public Subnet 내의 Nginx EC2를 통해 Spring Boot EC2로 리버스 프록시가 진행된다.&lt;br /&gt;
** DB에 접근이 필요하다면 Private Subnet 내의 MongoDB EC2에서 DB 데이터를 받아온다.&lt;br /&gt;
** Llama에서 처리해야 하는 로직이 존재한다면 School Server로 요청을 보낸다.&lt;br /&gt;
** School Server에 존재하는 Llama FastAPI 서버에서 응답을 보낸다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;Developer의 배포 과정(Frontend)&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Source Code를 Main에 Merge한다.&lt;br /&gt;
** Github Webhook을 통해 API Gateway에 연결된 API를 호출한다.&lt;br /&gt;
** Lambda를 Trigger하여 Private Subnet 내의 Jenkins EC2로 Github Webhook의 Body를 전송한다.&lt;br /&gt;
** Frontend 수정 여부를 판별한다.&lt;br /&gt;
** Frontend의 배포 시에는 jenkins에서 빌드된 bundle을 S3 React Build Bucket에 보낸다.&lt;br /&gt;
** S3 Build Bucket에서 S3 Deploy Bucket으로 보내고, Client는 이쪽으로 접근할 수 있다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;Developer의 배포 과정(Backend)&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Source Code를 Main에 Merge한다.&lt;br /&gt;
** Github Webhook을 통해 API Gateway에 연결된 API를 호출한다.&lt;br /&gt;
** Lambda를 Trigger하여 Private Subnet 내의 Jenkins EC2로 Github Webhook의 Body를 전송한다.&lt;br /&gt;
** Backend 수정 여부를 판별한다.&lt;br /&gt;
** Jar 파일을 S3 Spring Bucket에 저장한다.&lt;br /&gt;
** CodeDeploy에서 파일을 가져와 Spring EC2에 실행한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;외부 접근 제한&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Build와 관련된 단위들은 외부에서 접근이 불가능하다.&lt;br /&gt;
** NAT Gateway를 통해 내부 단위들은 외부 인터넷에 접근가능하다.&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
* Task1: Turn on the song on Youtube&lt;br /&gt;
** Step 1. Open the web-browser&lt;br /&gt;
** Step 2. Access to YouTube.&lt;br /&gt;
** Step 3. Search for the song you want to play.&lt;br /&gt;
** Step 4. Click on the video you want to play.&lt;br /&gt;
&lt;br /&gt;
* Task2: Write a Personal Statement that fits the certain company's job opening&lt;br /&gt;
** Step 1. Highlight your relevant skills and experience.&lt;br /&gt;
** Step 2. Demonstrate your knowledge of the company and the position.&lt;br /&gt;
** Step 3. Emphasize your enthusiasm for the industry and the company.&lt;br /&gt;
** Step 4. Showcase your ability to work well in a team environment.&lt;br /&gt;
&lt;br /&gt;
* Task3: Buy the most expensive raincoat in Amazon and Coupang&lt;br /&gt;
** Step 1. Open the web-browser.&lt;br /&gt;
** Step 2. Access to Amazon or Coupang.&lt;br /&gt;
** Step 3. Search for the most expensive raincoat.&lt;br /&gt;
** Step 4. Select the raincoat and add to cart.&lt;br /&gt;
** Step 5. Proceed to checkout.&lt;br /&gt;
** Step 6. Enter shipping and billing information.&lt;br /&gt;
** Step 7. Review order summary and place order.&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
◇ System Flow Chart&lt;br /&gt;
&lt;br /&gt;
[[파일:System Flow Chart.jpg]]&lt;br /&gt;
#Write a Task : 사용자가 Task를 작성한다.&lt;br /&gt;
#Split Task into SubTasks : 사용자가 작성한 Task를 Llama가 SubTask로 나누고 이를 서버가 파싱하여 사용자에게 SubTask로 제공한다.&lt;br /&gt;
#See the SubTasks of Task : 사용자는 서버가 분리한 SubTask들을 볼 수 있다.&lt;br /&gt;
#Click the Exec Button : 사용자가 코드 실행 버튼을 누른다.&lt;br /&gt;
#Search the Codes of each SubTasks : 서버는 각 SubTask들의 코드를 데이터베이스에서 탐색한다.&lt;br /&gt;
#Execute the Javascript Code : 서버가 탐색한 Javascript Code를 실행시킨다.&lt;br /&gt;
#Check the result of the Task : 사용자는 Task와 코드의 결과값이 일치하는지 확인한다.&lt;br /&gt;
&lt;br /&gt;
◇ 클래스도&lt;br /&gt;
&lt;br /&gt;
*Frontend 전체&lt;br /&gt;
[[파일:전체Frontend.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Frontend 1번 파트&lt;br /&gt;
[[파일:Frontend1.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Frontend 2번 파트&lt;br /&gt;
[[파일:Frontend2.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Frontend 3번 파트&lt;br /&gt;
[[파일:Frontend3.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Backend 전체&lt;br /&gt;
[[파일:Backend.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Backend 빨강 파트&lt;br /&gt;
[[파일:Backend빨강.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Backend 파랑 파트&lt;br /&gt;
[[파일:Backend파랑.jpg]]&lt;br /&gt;
&lt;br /&gt;
◇ 순차도&lt;br /&gt;
*1번 - 사용자의 Task에 대한 SubTask 제공&lt;br /&gt;
[[파일:1번 순차도.jpg]]&lt;br /&gt;
&lt;br /&gt;
*2번 - 사용자가 직접 특정 단계의 코드 수정 가능&lt;br /&gt;
[[파일:2번 순차도1.jpg]]&lt;br /&gt;
[[파일:2번 순차도2.jpg]]&lt;br /&gt;
&lt;br /&gt;
*3번 - 코드 실행&lt;br /&gt;
[[파일:3번 순차도.jpg]]&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
내용&lt;br /&gt;
====포스터====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===관련사업비 내역서===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
내용&lt;/div&gt;</summary>
		<author><name>Com2312</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%EC%97%90%ED%94%BC%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4&amp;diff=9662</id>
		<title>에피메테우스</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%EC%97%90%ED%94%BC%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4&amp;diff=9662"/>
				<updated>2023-12-26T10:23:59Z</updated>
		
		<summary type="html">&lt;p&gt;Com2312: /* 구성원 및 추진체계 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : ''' 에피메테우스(LLM을 활용한 웹 기반의 업무 자동화 플랫폼)&lt;br /&gt;
&lt;br /&gt;
''' 영문 : ''' 00000000..&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
에피메테우스&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
정형구 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2023년 9월 ~ 2023년 12월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 오*영(팀장)&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 김*원&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 이*주&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 장*호&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 황*우&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
'''◇ LLM을 활용한 웹 기반의 업무 자동화 플랫폼 구축'''&lt;br /&gt;
*사용자가 제공한 업무를 실제로 실행할 수 있는 자동화 AI 플랫폼 구현이 주된 목표이다. &lt;br /&gt;
*기존 AutoGPT와 유사한 기능을 제공하도록 대형 언어 모델(LLM)을 이용해 사용자의 업무를 이루기 위한 일련의 과정을 LLM(Llama)이 생성 후 제공한다. &lt;br /&gt;
*기존 서비스와의 차이점은 AI 모델의 단점인 블랙박스 특성을 없애기 위해 업무를 수행하기 위한 각 단계에 적절한 코드를 DB에서 불러오고, 해당 코드를 실행한다는 점이다. &lt;br /&gt;
*특정 단계에 해당하는 기능이 없을 때 원하는 기능을 사용자가 직접 추가하여 실행할 수 있다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
*현재 ChatGPT의 성공에 힘입어 LLM을 이용하여 업무를 자동화하는 시도가 존재한다.&lt;br /&gt;
*LLM을 이용하여 모든 업무를 자동화하는 것은 현재 수준으로는 부족하다는 보고가 있다.&lt;br /&gt;
*이러한 배경에 힘입어 기존 서비스의 한계점을 극복하기 위해 코드 단위로 업무를 실행하는 웹 기반의 업무 자동화 플랫폼을 구현하고자 한다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
◇ Frontend&lt;br /&gt;
*접근성을 고려한 UI 개발&lt;br /&gt;
*사용자가 작성한 코드를 웹 환경에서 실행시키는 기능 개발&lt;br /&gt;
&lt;br /&gt;
◇ Backend&lt;br /&gt;
*문장의 의미를 나타내는 벡터로 유사한 이름을 가진 TASK를 찾는 기능 개발&lt;br /&gt;
&lt;br /&gt;
◇ AI&lt;br /&gt;
*LLM(Large Language Model)을 이용하여 사용자 목표 달성을 위한 업무를 자동으로 분할하는 기능 개발&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
* 다양한 Benchmark에 대하여 여러 거대 언어 모델들의 성능을 비교&lt;br /&gt;
[[파일:Benchmark.jpg|700px]]&lt;br /&gt;
* 하지만 해당 Benchmark에는 구현하고자 하는 기능을 담고 있지 않음&lt;br /&gt;
* 해당 Benchmark에서 Llama-2(13B)을 사용&lt;br /&gt;
*특허조사 및 특허 전략 분석&lt;br /&gt;
&lt;br /&gt;
====기술 로드맵====&lt;br /&gt;
* Frontend&lt;br /&gt;
**Figma&lt;br /&gt;
**React&lt;br /&gt;
**web worker&lt;br /&gt;
*Backend&lt;br /&gt;
**Spring Boot&lt;br /&gt;
**AWS EC2&lt;br /&gt;
**AWS VPC&lt;br /&gt;
**AWS Lambda&lt;br /&gt;
**Jenkins&lt;br /&gt;
**Github Webhook&lt;br /&gt;
**MongoDB&lt;br /&gt;
**Docker&lt;br /&gt;
**AWS Route53&lt;br /&gt;
*AI&lt;br /&gt;
**Llama-13B&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
*경쟁제품 조사 비교&lt;br /&gt;
{| cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot; &amp;quot;text-align&amp;quot;=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 서비스&lt;br /&gt;
| 사용자가 요구사항을 수행하기 위해 Sub task로 분할&lt;br /&gt;
| Subtask를 실행&lt;br /&gt;
| 새로운 요구사항을 구현&lt;br /&gt;
|-&lt;br /&gt;
| ChatGPT&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| WebShop&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| ALFWorld&lt;br /&gt;
| YES &lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| AgentGPT&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| BabyAGI&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Jarvis&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Epimetheus&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
*마케팅 전략 제시&lt;br /&gt;
**코드를 작성 할 수 있는 개발자들에게 LLM을 기반으로 자동화 할 수 있는 점을 강조&lt;br /&gt;
**본 서비스에 필요로 하는 기능을 직접 추가할 수 있음을 강조&lt;br /&gt;
**AI 혹은 다른 사람이 작성해 놓은 비슷한 TASK를 기반으로 기능을 추가할 수 있음을 강조&lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
내용&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
내용&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
'''◇ (AI)오*영(팀장)'''&lt;br /&gt;
* Llama 서버 구현&lt;br /&gt;
* 인프라 설계&lt;br /&gt;
'''◇ (Back-end)김*원'''&lt;br /&gt;
&lt;br /&gt;
'''◇ (Front-end)이*주'''&lt;br /&gt;
*UI/UX&lt;br /&gt;
*플랫폼 페이지 구현&lt;br /&gt;
*Back-end와의 SSE통신코드 작성&lt;br /&gt;
'''◇ (Front-end)장*호'''&lt;br /&gt;
*컴포넌트 설계&lt;br /&gt;
*각 subtask별 실행코드 환경 구성&lt;br /&gt;
*실행코드의 실행 테스트 구현&lt;br /&gt;
'''◇ (Back-end)황*우'''&lt;br /&gt;
*SubTask생성 및 parsing, 실행코드 실행 테스트 API 구현&lt;br /&gt;
*API단위 테스트 구현&lt;br /&gt;
*DB 설치 및 메소드 구현&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
[[파일:에피메테우스_제품요구사항.png]]&lt;br /&gt;
====설계 사양====&lt;br /&gt;
* &amp;lt;strong&amp;gt;사용자가 요구한 업무에 대한 출력 제공&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 사용자는 원하는 업무를 text box에 입력할 수 있다.&lt;br /&gt;
** 입력을 제출(submit)하면 서버에서 1개 이상의 Step을 출력해준다.&lt;br /&gt;
** 각 Step은 요약(Title), 상세내용(Description), 코드(Code), 작성언어(Language)를 포함하고 있다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;코드 실행 가능&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 이전 Step의 출력이 다음 Step의 입력으로 제공되어야 한다.&lt;br /&gt;
** Step에 입력된 코드를 실행하여 Task에 대해서 수행한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;사용자가 직접 특정 단계의 코드 수정 가능&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 특정 Step의 Code를 수정할 수 있는 에디터를 제공한다.&lt;br /&gt;
** 새로 입력한 Code의 입출력 양식이 같은지 검사한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;이전 요청 저장&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 기존의 사용자가 입력한 Task에 대해서 기록한다.&lt;br /&gt;
** 이전 업무와 연결되는 이후의 업무를 우선적으로 제공한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;음성 인식을 통한 업무 입력 기능 제공&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 음성인식을 통해 사용자가 업무를 입력하면, 텍스트로 변환하여 text box에 자동으로 입력한다.&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
[[파일:에피메테우스_인프라도.jpg]]&lt;br /&gt;
* &amp;lt;strong&amp;gt;User 요청의 접근 과정&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Route53을 통해 S3 Bucket에 존재하는 정적 리소스에 접근한다.&lt;br /&gt;
** S3 Bucket에서 Server로 API 요청을 보낸다.&lt;br /&gt;
** Public Subnet 내의 Nginx EC2를 통해 Spring Boot EC2로 리버스 프록시가 진행된다.&lt;br /&gt;
** DB에 접근이 필요하다면 Private Subnet 내의 MongoDB EC2에서 DB 데이터를 받아온다.&lt;br /&gt;
** Llama에서 처리해야 하는 로직이 존재한다면 School Server로 요청을 보낸다.&lt;br /&gt;
** School Server에 존재하는 Llama FastAPI 서버에서 응답을 보낸다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;Developer의 배포 과정(Frontend)&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Source Code를 Main에 Merge한다.&lt;br /&gt;
** Github Webhook을 통해 API Gateway에 연결된 API를 호출한다.&lt;br /&gt;
** Lambda를 Trigger하여 Private Subnet 내의 Jenkins EC2로 Github Webhook의 Body를 전송한다.&lt;br /&gt;
** Frontend 수정 여부를 판별한다.&lt;br /&gt;
** Frontend의 배포 시에는 jenkins에서 빌드된 bundle을 S3 React Build Bucket에 보낸다.&lt;br /&gt;
** S3 Build Bucket에서 S3 Deploy Bucket으로 보내고, Client는 이쪽으로 접근할 수 있다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;Developer의 배포 과정(Backend)&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Source Code를 Main에 Merge한다.&lt;br /&gt;
** Github Webhook을 통해 API Gateway에 연결된 API를 호출한다.&lt;br /&gt;
** Lambda를 Trigger하여 Private Subnet 내의 Jenkins EC2로 Github Webhook의 Body를 전송한다.&lt;br /&gt;
** Backend 수정 여부를 판별한다.&lt;br /&gt;
** Jar 파일을 S3 Spring Bucket에 저장한다.&lt;br /&gt;
** CodeDeploy에서 파일을 가져와 Spring EC2에 실행한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;외부 접근 제한&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Build와 관련된 단위들은 외부에서 접근이 불가능하다.&lt;br /&gt;
** NAT Gateway를 통해 내부 단위들은 외부 인터넷에 접근가능하다.&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
* Task1: Turn on the song on Youtube&lt;br /&gt;
** Step 1. Open the web-browser&lt;br /&gt;
** Step 2. Access to YouTube.&lt;br /&gt;
** Step 3. Search for the song you want to play.&lt;br /&gt;
** Step 4. Click on the video you want to play.&lt;br /&gt;
&lt;br /&gt;
* Task2: Write a Personal Statement that fits the certain company's job opening&lt;br /&gt;
** Step 1. Highlight your relevant skills and experience.&lt;br /&gt;
** Step 2. Demonstrate your knowledge of the company and the position.&lt;br /&gt;
** Step 3. Emphasize your enthusiasm for the industry and the company.&lt;br /&gt;
** Step 4. Showcase your ability to work well in a team environment.&lt;br /&gt;
&lt;br /&gt;
* Task3: Buy the most expensive raincoat in Amazon and Coupang&lt;br /&gt;
** Step 1. Open the web-browser.&lt;br /&gt;
** Step 2. Access to Amazon or Coupang.&lt;br /&gt;
** Step 3. Search for the most expensive raincoat.&lt;br /&gt;
** Step 4. Select the raincoat and add to cart.&lt;br /&gt;
** Step 5. Proceed to checkout.&lt;br /&gt;
** Step 6. Enter shipping and billing information.&lt;br /&gt;
** Step 7. Review order summary and place order.&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
◇ System Flow Chart&lt;br /&gt;
&lt;br /&gt;
[[파일:System Flow Chart.jpg]]&lt;br /&gt;
#Write a Task : 사용자가 Task를 작성한다.&lt;br /&gt;
#Split Task into SubTasks : 사용자가 작성한 Task를 Llama가 SubTask로 나누고 이를 서버가 파싱하여 사용자에게 SubTask로 제공한다.&lt;br /&gt;
#See the SubTasks of Task : 사용자는 서버가 분리한 SubTask들을 볼 수 있다.&lt;br /&gt;
#Click the Exec Button : 사용자가 코드 실행 버튼을 누른다.&lt;br /&gt;
#Search the Codes of each SubTasks : 서버는 각 SubTask들의 코드를 데이터베이스에서 탐색한다.&lt;br /&gt;
#Execute the Javascript Code : 서버가 탐색한 Javascript Code를 실행시킨다.&lt;br /&gt;
#Check the result of the Task : 사용자는 Task와 코드의 결과값이 일치하는지 확인한다.&lt;br /&gt;
&lt;br /&gt;
◇ 클래스도&lt;br /&gt;
&lt;br /&gt;
*Frontend 전체&lt;br /&gt;
[[파일:전체Frontend.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Frontend 1번 파트&lt;br /&gt;
[[파일:Frontend1.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Frontend 2번 파트&lt;br /&gt;
[[파일:Frontend2.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Frontend 3번 파트&lt;br /&gt;
[[파일:Frontend3.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Backend 전체&lt;br /&gt;
[[파일:Backend.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Backend 빨강 파트&lt;br /&gt;
[[파일:Backend빨강.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Backend 파랑 파트&lt;br /&gt;
[[파일:Backend파랑.jpg]]&lt;br /&gt;
&lt;br /&gt;
◇ 순차도&lt;br /&gt;
*1번 - 사용자의 Task에 대한 SubTask 제공&lt;br /&gt;
[[파일:1번 순차도.jpg]]&lt;br /&gt;
&lt;br /&gt;
*2번 - 사용자가 직접 특정 단계의 코드 수정 가능&lt;br /&gt;
[[파일:2번 순차도1.jpg]]&lt;br /&gt;
[[파일:2번 순차도2.jpg]]&lt;br /&gt;
&lt;br /&gt;
*3번 - 코드 실행&lt;br /&gt;
[[파일:3번 순차도.jpg]]&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
내용&lt;br /&gt;
====포스터====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===관련사업비 내역서===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
내용&lt;/div&gt;</summary>
		<author><name>Com2312</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:3%EB%B2%88_%EC%88%9C%EC%B0%A8%EB%8F%84.jpg&amp;diff=9661</id>
		<title>파일:3번 순차도.jpg</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:3%EB%B2%88_%EC%88%9C%EC%B0%A8%EB%8F%84.jpg&amp;diff=9661"/>
				<updated>2023-12-26T04:19:29Z</updated>
		
		<summary type="html">&lt;p&gt;Com2312: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Com2312</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:2%EB%B2%88_%EC%88%9C%EC%B0%A8%EB%8F%842.jpg&amp;diff=9660</id>
		<title>파일:2번 순차도2.jpg</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:2%EB%B2%88_%EC%88%9C%EC%B0%A8%EB%8F%842.jpg&amp;diff=9660"/>
				<updated>2023-12-26T04:19:21Z</updated>
		
		<summary type="html">&lt;p&gt;Com2312: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Com2312</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:2%EB%B2%88_%EC%88%9C%EC%B0%A8%EB%8F%841.jpg&amp;diff=9659</id>
		<title>파일:2번 순차도1.jpg</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:2%EB%B2%88_%EC%88%9C%EC%B0%A8%EB%8F%841.jpg&amp;diff=9659"/>
				<updated>2023-12-26T04:19:09Z</updated>
		
		<summary type="html">&lt;p&gt;Com2312: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Com2312</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:1%EB%B2%88_%EC%88%9C%EC%B0%A8%EB%8F%84.jpg&amp;diff=9658</id>
		<title>파일:1번 순차도.jpg</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:1%EB%B2%88_%EC%88%9C%EC%B0%A8%EB%8F%84.jpg&amp;diff=9658"/>
				<updated>2023-12-26T04:18:56Z</updated>
		
		<summary type="html">&lt;p&gt;Com2312: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Com2312</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%EC%97%90%ED%94%BC%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4&amp;diff=9657</id>
		<title>에피메테우스</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%EC%97%90%ED%94%BC%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4&amp;diff=9657"/>
				<updated>2023-12-26T04:18:31Z</updated>
		
		<summary type="html">&lt;p&gt;Com2312: /* 상세설계 내용 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : ''' 에피메테우스(LLM을 활용한 웹 기반의 업무 자동화 플랫폼)&lt;br /&gt;
&lt;br /&gt;
''' 영문 : ''' 00000000..&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
에피메테우스&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
정형구 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2023년 9월 ~ 2023년 12월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 오*영(팀장)&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 김*원&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 이*주&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 장*호&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 황*우&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
'''◇ LLM을 활용한 웹 기반의 업무 자동화 플랫폼 구축'''&lt;br /&gt;
*사용자가 제공한 업무를 실제로 실행할 수 있는 자동화 AI 플랫폼 구현이 주된 목표이다. &lt;br /&gt;
*기존 AutoGPT와 유사한 기능을 제공하도록 대형 언어 모델(LLM)을 이용해 사용자의 업무를 이루기 위한 일련의 과정을 LLM(Llama)이 생성 후 제공한다. &lt;br /&gt;
*기존 서비스와의 차이점은 AI 모델의 단점인 블랙박스 특성을 없애기 위해 업무를 수행하기 위한 각 단계에 적절한 코드를 DB에서 불러오고, 해당 코드를 실행한다는 점이다. &lt;br /&gt;
*특정 단계에 해당하는 기능이 없을 때 원하는 기능을 사용자가 직접 추가하여 실행할 수 있다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
*현재 ChatGPT의 성공에 힘입어 LLM을 이용하여 업무를 자동화하는 시도가 존재한다.&lt;br /&gt;
*LLM을 이용하여 모든 업무를 자동화하는 것은 현재 수준으로는 부족하다는 보고가 있다.&lt;br /&gt;
*이러한 배경에 힘입어 기존 서비스의 한계점을 극복하기 위해 코드 단위로 업무를 실행하는 웹 기반의 업무 자동화 플랫폼을 구현하고자 한다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
◇ Frontend&lt;br /&gt;
*접근성을 고려한 UI 개발&lt;br /&gt;
*사용자가 작성한 코드를 웹 환경에서 실행시키는 기능 개발&lt;br /&gt;
&lt;br /&gt;
◇ Backend&lt;br /&gt;
*문장의 의미를 나타내는 벡터로 유사한 이름을 가진 TASK를 찾는 기능 개발&lt;br /&gt;
&lt;br /&gt;
◇ AI&lt;br /&gt;
*LLM(Large Language Model)을 이용하여 사용자 목표 달성을 위한 업무를 자동으로 분할하는 기능 개발&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
* 다양한 Benchmark에 대하여 여러 거대 언어 모델들의 성능을 비교&lt;br /&gt;
[[파일:Benchmark.jpg|700px]]&lt;br /&gt;
* 하지만 해당 Benchmark에는 구현하고자 하는 기능을 담고 있지 않음&lt;br /&gt;
* 해당 Benchmark에서 Llama-2(13B)을 사용&lt;br /&gt;
*특허조사 및 특허 전략 분석&lt;br /&gt;
&lt;br /&gt;
====기술 로드맵====&lt;br /&gt;
* Frontend&lt;br /&gt;
**Figma&lt;br /&gt;
**React&lt;br /&gt;
**web worker&lt;br /&gt;
*Backend&lt;br /&gt;
**Spring Boot&lt;br /&gt;
**AWS EC2&lt;br /&gt;
**AWS VPC&lt;br /&gt;
**AWS Lambda&lt;br /&gt;
**Jenkins&lt;br /&gt;
**Github Webhook&lt;br /&gt;
**MongoDB&lt;br /&gt;
**Docker&lt;br /&gt;
**AWS Route53&lt;br /&gt;
*AI&lt;br /&gt;
**Llama-13B&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
*경쟁제품 조사 비교&lt;br /&gt;
{| cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot; &amp;quot;text-align&amp;quot;=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 서비스&lt;br /&gt;
| 사용자가 요구사항을 수행하기 위해 Sub task로 분할&lt;br /&gt;
| Subtask를 실행&lt;br /&gt;
| 새로운 요구사항을 구현&lt;br /&gt;
|-&lt;br /&gt;
| ChatGPT&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| WebShop&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| ALFWorld&lt;br /&gt;
| YES &lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| AgentGPT&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| BabyAGI&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Jarvis&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Epimetheus&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
*마케팅 전략 제시&lt;br /&gt;
**코드를 작성 할 수 있는 개발자들에게 LLM을 기반으로 자동화 할 수 있는 점을 강조&lt;br /&gt;
**본 서비스에 필요로 하는 기능을 직접 추가할 수 있음을 강조&lt;br /&gt;
**AI 혹은 다른 사람이 작성해 놓은 비슷한 TASK를 기반으로 기능을 추가할 수 있음을 강조&lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
내용&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
내용&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
'''◇ (AI)오*영(팀장)'''&lt;br /&gt;
  &lt;br /&gt;
'''◇ (Back-end)김*원'''&lt;br /&gt;
&lt;br /&gt;
'''◇ (Front-end)이*주'''&lt;br /&gt;
*UI/UX&lt;br /&gt;
*플랫폼 페이지 구현&lt;br /&gt;
*Back-end와의 SSE통신코드 작성&lt;br /&gt;
'''◇ (Front-end)장*호'''&lt;br /&gt;
*컴포넌트 설계&lt;br /&gt;
*각 subtask별 실행코드 환경 구성&lt;br /&gt;
*실행코드의 실행 테스트 구현&lt;br /&gt;
'''◇ (Back-end)황*우'''&lt;br /&gt;
*SubTask생성 및 parsing, 실행코드 실행 테스트 API 구현&lt;br /&gt;
*API단위 테스트 구현&lt;br /&gt;
*DB 설치 및 메소드 구현&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
[[파일:에피메테우스_제품요구사항.png]]&lt;br /&gt;
====설계 사양====&lt;br /&gt;
* &amp;lt;strong&amp;gt;사용자가 요구한 업무에 대한 출력 제공&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 사용자는 원하는 업무를 text box에 입력할 수 있다.&lt;br /&gt;
** 입력을 제출(submit)하면 서버에서 1개 이상의 Step을 출력해준다.&lt;br /&gt;
** 각 Step은 요약(Title), 상세내용(Description), 코드(Code), 작성언어(Language)를 포함하고 있다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;코드 실행 가능&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 이전 Step의 출력이 다음 Step의 입력으로 제공되어야 한다.&lt;br /&gt;
** Step에 입력된 코드를 실행하여 Task에 대해서 수행한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;사용자가 직접 특정 단계의 코드 수정 가능&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 특정 Step의 Code를 수정할 수 있는 에디터를 제공한다.&lt;br /&gt;
** 새로 입력한 Code의 입출력 양식이 같은지 검사한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;이전 요청 저장&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 기존의 사용자가 입력한 Task에 대해서 기록한다.&lt;br /&gt;
** 이전 업무와 연결되는 이후의 업무를 우선적으로 제공한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;음성 인식을 통한 업무 입력 기능 제공&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 음성인식을 통해 사용자가 업무를 입력하면, 텍스트로 변환하여 text box에 자동으로 입력한다.&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
[[파일:에피메테우스_인프라도.jpg]]&lt;br /&gt;
* &amp;lt;strong&amp;gt;User 요청의 접근 과정&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Route53을 통해 S3 Bucket에 존재하는 정적 리소스에 접근한다.&lt;br /&gt;
** S3 Bucket에서 Server로 API 요청을 보낸다.&lt;br /&gt;
** Public Subnet 내의 Nginx EC2를 통해 Spring Boot EC2로 리버스 프록시가 진행된다.&lt;br /&gt;
** DB에 접근이 필요하다면 Private Subnet 내의 MongoDB EC2에서 DB 데이터를 받아온다.&lt;br /&gt;
** Llama에서 처리해야 하는 로직이 존재한다면 School Server로 요청을 보낸다.&lt;br /&gt;
** School Server에 존재하는 Llama FastAPI 서버에서 응답을 보낸다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;Developer의 배포 과정(Frontend)&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Source Code를 Main에 Merge한다.&lt;br /&gt;
** Github Webhook을 통해 API Gateway에 연결된 API를 호출한다.&lt;br /&gt;
** Lambda를 Trigger하여 Private Subnet 내의 Jenkins EC2로 Github Webhook의 Body를 전송한다.&lt;br /&gt;
** Frontend 수정 여부를 판별한다.&lt;br /&gt;
** Frontend의 배포 시에는 jenkins에서 빌드된 bundle을 S3 React Build Bucket에 보낸다.&lt;br /&gt;
** S3 Build Bucket에서 S3 Deploy Bucket으로 보내고, Client는 이쪽으로 접근할 수 있다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;Developer의 배포 과정(Backend)&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Source Code를 Main에 Merge한다.&lt;br /&gt;
** Github Webhook을 통해 API Gateway에 연결된 API를 호출한다.&lt;br /&gt;
** Lambda를 Trigger하여 Private Subnet 내의 Jenkins EC2로 Github Webhook의 Body를 전송한다.&lt;br /&gt;
** Backend 수정 여부를 판별한다.&lt;br /&gt;
** Jar 파일을 S3 Spring Bucket에 저장한다.&lt;br /&gt;
** CodeDeploy에서 파일을 가져와 Spring EC2에 실행한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;외부 접근 제한&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Build와 관련된 단위들은 외부에서 접근이 불가능하다.&lt;br /&gt;
** NAT Gateway를 통해 내부 단위들은 외부 인터넷에 접근가능하다.&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
* Task1: Turn on the song on Youtube&lt;br /&gt;
** Step 1. Open the web-browser&lt;br /&gt;
** Step 2. Access to YouTube.&lt;br /&gt;
** Step 3. Search for the song you want to play.&lt;br /&gt;
** Step 4. Click on the video you want to play.&lt;br /&gt;
&lt;br /&gt;
* Task2: Write a Personal Statement that fits the certain company's job opening&lt;br /&gt;
** Step 1. Highlight your relevant skills and experience.&lt;br /&gt;
** Step 2. Demonstrate your knowledge of the company and the position.&lt;br /&gt;
** Step 3. Emphasize your enthusiasm for the industry and the company.&lt;br /&gt;
** Step 4. Showcase your ability to work well in a team environment.&lt;br /&gt;
&lt;br /&gt;
* Task3: Buy the most expensive raincoat in Amazon and Coupang&lt;br /&gt;
** Step 1. Open the web-browser.&lt;br /&gt;
** Step 2. Access to Amazon or Coupang.&lt;br /&gt;
** Step 3. Search for the most expensive raincoat.&lt;br /&gt;
** Step 4. Select the raincoat and add to cart.&lt;br /&gt;
** Step 5. Proceed to checkout.&lt;br /&gt;
** Step 6. Enter shipping and billing information.&lt;br /&gt;
** Step 7. Review order summary and place order.&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
◇ System Flow Chart&lt;br /&gt;
&lt;br /&gt;
[[파일:System Flow Chart.jpg]]&lt;br /&gt;
#Write a Task : 사용자가 Task를 작성한다.&lt;br /&gt;
#Split Task into SubTasks : 사용자가 작성한 Task를 Llama가 SubTask로 나누고 이를 서버가 파싱하여 사용자에게 SubTask로 제공한다.&lt;br /&gt;
#See the SubTasks of Task : 사용자는 서버가 분리한 SubTask들을 볼 수 있다.&lt;br /&gt;
#Click the Exec Button : 사용자가 코드 실행 버튼을 누른다.&lt;br /&gt;
#Search the Codes of each SubTasks : 서버는 각 SubTask들의 코드를 데이터베이스에서 탐색한다.&lt;br /&gt;
#Execute the Javascript Code : 서버가 탐색한 Javascript Code를 실행시킨다.&lt;br /&gt;
#Check the result of the Task : 사용자는 Task와 코드의 결과값이 일치하는지 확인한다.&lt;br /&gt;
&lt;br /&gt;
◇ 클래스도&lt;br /&gt;
&lt;br /&gt;
*Frontend 전체&lt;br /&gt;
[[파일:전체Frontend.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Frontend 1번 파트&lt;br /&gt;
[[파일:Frontend1.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Frontend 2번 파트&lt;br /&gt;
[[파일:Frontend2.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Frontend 3번 파트&lt;br /&gt;
[[파일:Frontend3.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Backend 전체&lt;br /&gt;
[[파일:Backend.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Backend 빨강 파트&lt;br /&gt;
[[파일:Backend빨강.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Backend 파랑 파트&lt;br /&gt;
[[파일:Backend파랑.jpg]]&lt;br /&gt;
&lt;br /&gt;
◇ 순차도&lt;br /&gt;
*1번 - 사용자의 Task에 대한 SubTask 제공&lt;br /&gt;
[[파일:1번 순차도.jpg]]&lt;br /&gt;
&lt;br /&gt;
*2번 - 사용자가 직접 특정 단계의 코드 수정 가능&lt;br /&gt;
[[파일:2번 순차도1.jpg]]&lt;br /&gt;
[[파일:2번 순차도2.jpg]]&lt;br /&gt;
&lt;br /&gt;
*3번 - 코드 실행&lt;br /&gt;
[[파일:3번 순차도.jpg]]&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
내용&lt;br /&gt;
====포스터====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===관련사업비 내역서===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
내용&lt;/div&gt;</summary>
		<author><name>Com2312</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%EC%97%90%ED%94%BC%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4&amp;diff=9656</id>
		<title>에피메테우스</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%EC%97%90%ED%94%BC%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4&amp;diff=9656"/>
				<updated>2023-12-26T04:13:49Z</updated>
		
		<summary type="html">&lt;p&gt;Com2312: /* 상세설계 내용 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : ''' 에피메테우스(LLM을 활용한 웹 기반의 업무 자동화 플랫폼)&lt;br /&gt;
&lt;br /&gt;
''' 영문 : ''' 00000000..&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
에피메테우스&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
정형구 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2023년 9월 ~ 2023년 12월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 오*영(팀장)&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 김*원&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 이*주&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 장*호&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 황*우&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
'''◇ LLM을 활용한 웹 기반의 업무 자동화 플랫폼 구축'''&lt;br /&gt;
*사용자가 제공한 업무를 실제로 실행할 수 있는 자동화 AI 플랫폼 구현이 주된 목표이다. &lt;br /&gt;
*기존 AutoGPT와 유사한 기능을 제공하도록 대형 언어 모델(LLM)을 이용해 사용자의 업무를 이루기 위한 일련의 과정을 LLM(Llama)이 생성 후 제공한다. &lt;br /&gt;
*기존 서비스와의 차이점은 AI 모델의 단점인 블랙박스 특성을 없애기 위해 업무를 수행하기 위한 각 단계에 적절한 코드를 DB에서 불러오고, 해당 코드를 실행한다는 점이다. &lt;br /&gt;
*특정 단계에 해당하는 기능이 없을 때 원하는 기능을 사용자가 직접 추가하여 실행할 수 있다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
*현재 ChatGPT의 성공에 힘입어 LLM을 이용하여 업무를 자동화하는 시도가 존재한다.&lt;br /&gt;
*LLM을 이용하여 모든 업무를 자동화하는 것은 현재 수준으로는 부족하다는 보고가 있다.&lt;br /&gt;
*이러한 배경에 힘입어 기존 서비스의 한계점을 극복하기 위해 코드 단위로 업무를 실행하는 웹 기반의 업무 자동화 플랫폼을 구현하고자 한다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
◇ Frontend&lt;br /&gt;
*접근성을 고려한 UI 개발&lt;br /&gt;
*사용자가 작성한 코드를 웹 환경에서 실행시키는 기능 개발&lt;br /&gt;
&lt;br /&gt;
◇ Backend&lt;br /&gt;
*문장의 의미를 나타내는 벡터로 유사한 이름을 가진 TASK를 찾는 기능 개발&lt;br /&gt;
&lt;br /&gt;
◇ AI&lt;br /&gt;
*LLM(Large Language Model)을 이용하여 사용자 목표 달성을 위한 업무를 자동으로 분할하는 기능 개발&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
* 다양한 Benchmark에 대하여 여러 거대 언어 모델들의 성능을 비교&lt;br /&gt;
[[파일:Benchmark.jpg|700px]]&lt;br /&gt;
* 하지만 해당 Benchmark에는 구현하고자 하는 기능을 담고 있지 않음&lt;br /&gt;
* 해당 Benchmark에서 Llama-2(13B)을 사용&lt;br /&gt;
*특허조사 및 특허 전략 분석&lt;br /&gt;
&lt;br /&gt;
====기술 로드맵====&lt;br /&gt;
* Frontend&lt;br /&gt;
**Figma&lt;br /&gt;
**React&lt;br /&gt;
**web worker&lt;br /&gt;
*Backend&lt;br /&gt;
**Spring Boot&lt;br /&gt;
**AWS EC2&lt;br /&gt;
**AWS VPC&lt;br /&gt;
**AWS Lambda&lt;br /&gt;
**Jenkins&lt;br /&gt;
**Github Webhook&lt;br /&gt;
**MongoDB&lt;br /&gt;
**Docker&lt;br /&gt;
**AWS Route53&lt;br /&gt;
*AI&lt;br /&gt;
**Llama-13B&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
*경쟁제품 조사 비교&lt;br /&gt;
{| cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot; &amp;quot;text-align&amp;quot;=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 서비스&lt;br /&gt;
| 사용자가 요구사항을 수행하기 위해 Sub task로 분할&lt;br /&gt;
| Subtask를 실행&lt;br /&gt;
| 새로운 요구사항을 구현&lt;br /&gt;
|-&lt;br /&gt;
| ChatGPT&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| WebShop&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| ALFWorld&lt;br /&gt;
| YES &lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| AgentGPT&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| BabyAGI&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Jarvis&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Epimetheus&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
*마케팅 전략 제시&lt;br /&gt;
**코드를 작성 할 수 있는 개발자들에게 LLM을 기반으로 자동화 할 수 있는 점을 강조&lt;br /&gt;
**본 서비스에 필요로 하는 기능을 직접 추가할 수 있음을 강조&lt;br /&gt;
**AI 혹은 다른 사람이 작성해 놓은 비슷한 TASK를 기반으로 기능을 추가할 수 있음을 강조&lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
내용&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
내용&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
'''◇ (AI)오*영(팀장)'''&lt;br /&gt;
  &lt;br /&gt;
'''◇ (Back-end)김*원'''&lt;br /&gt;
&lt;br /&gt;
'''◇ (Front-end)이*주'''&lt;br /&gt;
*UI/UX&lt;br /&gt;
*플랫폼 페이지 구현&lt;br /&gt;
*Back-end와의 SSE통신코드 작성&lt;br /&gt;
'''◇ (Front-end)장*호'''&lt;br /&gt;
*컴포넌트 설계&lt;br /&gt;
*각 subtask별 실행코드 환경 구성&lt;br /&gt;
*실행코드의 실행 테스트 구현&lt;br /&gt;
'''◇ (Back-end)황*우'''&lt;br /&gt;
*SubTask생성 및 parsing, 실행코드 실행 테스트 API 구현&lt;br /&gt;
*API단위 테스트 구현&lt;br /&gt;
*DB 설치 및 메소드 구현&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
[[파일:에피메테우스_제품요구사항.png]]&lt;br /&gt;
====설계 사양====&lt;br /&gt;
* &amp;lt;strong&amp;gt;사용자가 요구한 업무에 대한 출력 제공&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 사용자는 원하는 업무를 text box에 입력할 수 있다.&lt;br /&gt;
** 입력을 제출(submit)하면 서버에서 1개 이상의 Step을 출력해준다.&lt;br /&gt;
** 각 Step은 요약(Title), 상세내용(Description), 코드(Code), 작성언어(Language)를 포함하고 있다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;코드 실행 가능&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 이전 Step의 출력이 다음 Step의 입력으로 제공되어야 한다.&lt;br /&gt;
** Step에 입력된 코드를 실행하여 Task에 대해서 수행한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;사용자가 직접 특정 단계의 코드 수정 가능&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 특정 Step의 Code를 수정할 수 있는 에디터를 제공한다.&lt;br /&gt;
** 새로 입력한 Code의 입출력 양식이 같은지 검사한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;이전 요청 저장&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 기존의 사용자가 입력한 Task에 대해서 기록한다.&lt;br /&gt;
** 이전 업무와 연결되는 이후의 업무를 우선적으로 제공한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;음성 인식을 통한 업무 입력 기능 제공&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 음성인식을 통해 사용자가 업무를 입력하면, 텍스트로 변환하여 text box에 자동으로 입력한다.&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
[[파일:에피메테우스_인프라도.jpg]]&lt;br /&gt;
* &amp;lt;strong&amp;gt;User 요청의 접근 과정&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Route53을 통해 S3 Bucket에 존재하는 정적 리소스에 접근한다.&lt;br /&gt;
** S3 Bucket에서 Server로 API 요청을 보낸다.&lt;br /&gt;
** Public Subnet 내의 Nginx EC2를 통해 Spring Boot EC2로 리버스 프록시가 진행된다.&lt;br /&gt;
** DB에 접근이 필요하다면 Private Subnet 내의 MongoDB EC2에서 DB 데이터를 받아온다.&lt;br /&gt;
** Llama에서 처리해야 하는 로직이 존재한다면 School Server로 요청을 보낸다.&lt;br /&gt;
** School Server에 존재하는 Llama FastAPI 서버에서 응답을 보낸다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;Developer의 배포 과정(Frontend)&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Source Code를 Main에 Merge한다.&lt;br /&gt;
** Github Webhook을 통해 API Gateway에 연결된 API를 호출한다.&lt;br /&gt;
** Lambda를 Trigger하여 Private Subnet 내의 Jenkins EC2로 Github Webhook의 Body를 전송한다.&lt;br /&gt;
** Frontend 수정 여부를 판별한다.&lt;br /&gt;
** Frontend의 배포 시에는 jenkins에서 빌드된 bundle을 S3 React Build Bucket에 보낸다.&lt;br /&gt;
** S3 Build Bucket에서 S3 Deploy Bucket으로 보내고, Client는 이쪽으로 접근할 수 있다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;Developer의 배포 과정(Backend)&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Source Code를 Main에 Merge한다.&lt;br /&gt;
** Github Webhook을 통해 API Gateway에 연결된 API를 호출한다.&lt;br /&gt;
** Lambda를 Trigger하여 Private Subnet 내의 Jenkins EC2로 Github Webhook의 Body를 전송한다.&lt;br /&gt;
** Backend 수정 여부를 판별한다.&lt;br /&gt;
** Jar 파일을 S3 Spring Bucket에 저장한다.&lt;br /&gt;
** CodeDeploy에서 파일을 가져와 Spring EC2에 실행한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;외부 접근 제한&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Build와 관련된 단위들은 외부에서 접근이 불가능하다.&lt;br /&gt;
** NAT Gateway를 통해 내부 단위들은 외부 인터넷에 접근가능하다.&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
* Task1: Turn on the song on Youtube&lt;br /&gt;
** Step 1. Open the web-browser&lt;br /&gt;
** Step 2. Access to YouTube.&lt;br /&gt;
** Step 3. Search for the song you want to play.&lt;br /&gt;
** Step 4. Click on the video you want to play.&lt;br /&gt;
&lt;br /&gt;
* Task2: Write a Personal Statement that fits the certain company's job opening&lt;br /&gt;
** Step 1. Highlight your relevant skills and experience.&lt;br /&gt;
** Step 2. Demonstrate your knowledge of the company and the position.&lt;br /&gt;
** Step 3. Emphasize your enthusiasm for the industry and the company.&lt;br /&gt;
** Step 4. Showcase your ability to work well in a team environment.&lt;br /&gt;
&lt;br /&gt;
* Task3: Buy the most expensive raincoat in Amazon and Coupang&lt;br /&gt;
** Step 1. Open the web-browser.&lt;br /&gt;
** Step 2. Access to Amazon or Coupang.&lt;br /&gt;
** Step 3. Search for the most expensive raincoat.&lt;br /&gt;
** Step 4. Select the raincoat and add to cart.&lt;br /&gt;
** Step 5. Proceed to checkout.&lt;br /&gt;
** Step 6. Enter shipping and billing information.&lt;br /&gt;
** Step 7. Review order summary and place order.&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
◇ System Flow Chart&lt;br /&gt;
&lt;br /&gt;
[[파일:System Flow Chart.jpg]]&lt;br /&gt;
#Write a Task : 사용자가 Task를 작성한다.&lt;br /&gt;
#Split Task into SubTasks : 사용자가 작성한 Task를 Llama가 SubTask로 나누고 이를 서버가 파싱하여 사용자에게 SubTask로 제공한다.&lt;br /&gt;
#See the SubTasks of Task : 사용자는 서버가 분리한 SubTask들을 볼 수 있다.&lt;br /&gt;
#Click the Exec Button : 사용자가 코드 실행 버튼을 누른다.&lt;br /&gt;
#Search the Codes of each SubTasks : 서버는 각 SubTask들의 코드를 데이터베이스에서 탐색한다.&lt;br /&gt;
#Execute the Javascript Code : 서버가 탐색한 Javascript Code를 실행시킨다.&lt;br /&gt;
#Check the result of the Task : 사용자는 Task와 코드의 결과값이 일치하는지 확인한다.&lt;br /&gt;
&lt;br /&gt;
◇ 클래스도&lt;br /&gt;
&lt;br /&gt;
*Frontend 전체&lt;br /&gt;
[[파일:전체Frontend.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Frontend 1번 파트&lt;br /&gt;
[[파일:Frontend1.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Frontend 2번 파트&lt;br /&gt;
[[파일:Frontend2.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Frontend 3번 파트&lt;br /&gt;
[[파일:Frontend3.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Backend 전체&lt;br /&gt;
[[파일:Backend.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Backend 빨강 파트&lt;br /&gt;
[[파일:Backend빨강.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Backend 파랑 파트&lt;br /&gt;
[[파일:Backend파랑.jpg]]&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
내용&lt;br /&gt;
====포스터====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===관련사업비 내역서===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
내용&lt;/div&gt;</summary>
		<author><name>Com2312</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%EC%97%90%ED%94%BC%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4&amp;diff=9655</id>
		<title>에피메테우스</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%EC%97%90%ED%94%BC%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4&amp;diff=9655"/>
				<updated>2023-12-26T04:13:25Z</updated>
		
		<summary type="html">&lt;p&gt;Com2312: /* 상세설계 내용 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : ''' 에피메테우스(LLM을 활용한 웹 기반의 업무 자동화 플랫폼)&lt;br /&gt;
&lt;br /&gt;
''' 영문 : ''' 00000000..&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
에피메테우스&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
정형구 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2023년 9월 ~ 2023년 12월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 오*영(팀장)&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 김*원&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 이*주&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 장*호&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 황*우&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
'''◇ LLM을 활용한 웹 기반의 업무 자동화 플랫폼 구축'''&lt;br /&gt;
*사용자가 제공한 업무를 실제로 실행할 수 있는 자동화 AI 플랫폼 구현이 주된 목표이다. &lt;br /&gt;
*기존 AutoGPT와 유사한 기능을 제공하도록 대형 언어 모델(LLM)을 이용해 사용자의 업무를 이루기 위한 일련의 과정을 LLM(Llama)이 생성 후 제공한다. &lt;br /&gt;
*기존 서비스와의 차이점은 AI 모델의 단점인 블랙박스 특성을 없애기 위해 업무를 수행하기 위한 각 단계에 적절한 코드를 DB에서 불러오고, 해당 코드를 실행한다는 점이다. &lt;br /&gt;
*특정 단계에 해당하는 기능이 없을 때 원하는 기능을 사용자가 직접 추가하여 실행할 수 있다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
*현재 ChatGPT의 성공에 힘입어 LLM을 이용하여 업무를 자동화하는 시도가 존재한다.&lt;br /&gt;
*LLM을 이용하여 모든 업무를 자동화하는 것은 현재 수준으로는 부족하다는 보고가 있다.&lt;br /&gt;
*이러한 배경에 힘입어 기존 서비스의 한계점을 극복하기 위해 코드 단위로 업무를 실행하는 웹 기반의 업무 자동화 플랫폼을 구현하고자 한다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
◇ Frontend&lt;br /&gt;
*접근성을 고려한 UI 개발&lt;br /&gt;
*사용자가 작성한 코드를 웹 환경에서 실행시키는 기능 개발&lt;br /&gt;
&lt;br /&gt;
◇ Backend&lt;br /&gt;
*문장의 의미를 나타내는 벡터로 유사한 이름을 가진 TASK를 찾는 기능 개발&lt;br /&gt;
&lt;br /&gt;
◇ AI&lt;br /&gt;
*LLM(Large Language Model)을 이용하여 사용자 목표 달성을 위한 업무를 자동으로 분할하는 기능 개발&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
* 다양한 Benchmark에 대하여 여러 거대 언어 모델들의 성능을 비교&lt;br /&gt;
[[파일:Benchmark.jpg|700px]]&lt;br /&gt;
* 하지만 해당 Benchmark에는 구현하고자 하는 기능을 담고 있지 않음&lt;br /&gt;
* 해당 Benchmark에서 Llama-2(13B)을 사용&lt;br /&gt;
*특허조사 및 특허 전략 분석&lt;br /&gt;
&lt;br /&gt;
====기술 로드맵====&lt;br /&gt;
* Frontend&lt;br /&gt;
**Figma&lt;br /&gt;
**React&lt;br /&gt;
**web worker&lt;br /&gt;
*Backend&lt;br /&gt;
**Spring Boot&lt;br /&gt;
**AWS EC2&lt;br /&gt;
**AWS VPC&lt;br /&gt;
**AWS Lambda&lt;br /&gt;
**Jenkins&lt;br /&gt;
**Github Webhook&lt;br /&gt;
**MongoDB&lt;br /&gt;
**Docker&lt;br /&gt;
**AWS Route53&lt;br /&gt;
*AI&lt;br /&gt;
**Llama-13B&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
*경쟁제품 조사 비교&lt;br /&gt;
{| cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot; &amp;quot;text-align&amp;quot;=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 서비스&lt;br /&gt;
| 사용자가 요구사항을 수행하기 위해 Sub task로 분할&lt;br /&gt;
| Subtask를 실행&lt;br /&gt;
| 새로운 요구사항을 구현&lt;br /&gt;
|-&lt;br /&gt;
| ChatGPT&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| WebShop&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| ALFWorld&lt;br /&gt;
| YES &lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| AgentGPT&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| BabyAGI&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Jarvis&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Epimetheus&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
*마케팅 전략 제시&lt;br /&gt;
**코드를 작성 할 수 있는 개발자들에게 LLM을 기반으로 자동화 할 수 있는 점을 강조&lt;br /&gt;
**본 서비스에 필요로 하는 기능을 직접 추가할 수 있음을 강조&lt;br /&gt;
**AI 혹은 다른 사람이 작성해 놓은 비슷한 TASK를 기반으로 기능을 추가할 수 있음을 강조&lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
내용&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
내용&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
'''◇ (AI)오*영(팀장)'''&lt;br /&gt;
  &lt;br /&gt;
'''◇ (Back-end)김*원'''&lt;br /&gt;
&lt;br /&gt;
'''◇ (Front-end)이*주'''&lt;br /&gt;
*UI/UX&lt;br /&gt;
*플랫폼 페이지 구현&lt;br /&gt;
*Back-end와의 SSE통신코드 작성&lt;br /&gt;
'''◇ (Front-end)장*호'''&lt;br /&gt;
*컴포넌트 설계&lt;br /&gt;
*각 subtask별 실행코드 환경 구성&lt;br /&gt;
*실행코드의 실행 테스트 구현&lt;br /&gt;
'''◇ (Back-end)황*우'''&lt;br /&gt;
*SubTask생성 및 parsing, 실행코드 실행 테스트 API 구현&lt;br /&gt;
*API단위 테스트 구현&lt;br /&gt;
*DB 설치 및 메소드 구현&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
[[파일:에피메테우스_제품요구사항.png]]&lt;br /&gt;
====설계 사양====&lt;br /&gt;
* &amp;lt;strong&amp;gt;사용자가 요구한 업무에 대한 출력 제공&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 사용자는 원하는 업무를 text box에 입력할 수 있다.&lt;br /&gt;
** 입력을 제출(submit)하면 서버에서 1개 이상의 Step을 출력해준다.&lt;br /&gt;
** 각 Step은 요약(Title), 상세내용(Description), 코드(Code), 작성언어(Language)를 포함하고 있다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;코드 실행 가능&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 이전 Step의 출력이 다음 Step의 입력으로 제공되어야 한다.&lt;br /&gt;
** Step에 입력된 코드를 실행하여 Task에 대해서 수행한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;사용자가 직접 특정 단계의 코드 수정 가능&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 특정 Step의 Code를 수정할 수 있는 에디터를 제공한다.&lt;br /&gt;
** 새로 입력한 Code의 입출력 양식이 같은지 검사한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;이전 요청 저장&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 기존의 사용자가 입력한 Task에 대해서 기록한다.&lt;br /&gt;
** 이전 업무와 연결되는 이후의 업무를 우선적으로 제공한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;음성 인식을 통한 업무 입력 기능 제공&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 음성인식을 통해 사용자가 업무를 입력하면, 텍스트로 변환하여 text box에 자동으로 입력한다.&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
[[파일:에피메테우스_인프라도.jpg]]&lt;br /&gt;
* &amp;lt;strong&amp;gt;User 요청의 접근 과정&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Route53을 통해 S3 Bucket에 존재하는 정적 리소스에 접근한다.&lt;br /&gt;
** S3 Bucket에서 Server로 API 요청을 보낸다.&lt;br /&gt;
** Public Subnet 내의 Nginx EC2를 통해 Spring Boot EC2로 리버스 프록시가 진행된다.&lt;br /&gt;
** DB에 접근이 필요하다면 Private Subnet 내의 MongoDB EC2에서 DB 데이터를 받아온다.&lt;br /&gt;
** Llama에서 처리해야 하는 로직이 존재한다면 School Server로 요청을 보낸다.&lt;br /&gt;
** School Server에 존재하는 Llama FastAPI 서버에서 응답을 보낸다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;Developer의 배포 과정(Frontend)&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Source Code를 Main에 Merge한다.&lt;br /&gt;
** Github Webhook을 통해 API Gateway에 연결된 API를 호출한다.&lt;br /&gt;
** Lambda를 Trigger하여 Private Subnet 내의 Jenkins EC2로 Github Webhook의 Body를 전송한다.&lt;br /&gt;
** Frontend 수정 여부를 판별한다.&lt;br /&gt;
** Frontend의 배포 시에는 jenkins에서 빌드된 bundle을 S3 React Build Bucket에 보낸다.&lt;br /&gt;
** S3 Build Bucket에서 S3 Deploy Bucket으로 보내고, Client는 이쪽으로 접근할 수 있다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;Developer의 배포 과정(Backend)&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Source Code를 Main에 Merge한다.&lt;br /&gt;
** Github Webhook을 통해 API Gateway에 연결된 API를 호출한다.&lt;br /&gt;
** Lambda를 Trigger하여 Private Subnet 내의 Jenkins EC2로 Github Webhook의 Body를 전송한다.&lt;br /&gt;
** Backend 수정 여부를 판별한다.&lt;br /&gt;
** Jar 파일을 S3 Spring Bucket에 저장한다.&lt;br /&gt;
** CodeDeploy에서 파일을 가져와 Spring EC2에 실행한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;외부 접근 제한&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Build와 관련된 단위들은 외부에서 접근이 불가능하다.&lt;br /&gt;
** NAT Gateway를 통해 내부 단위들은 외부 인터넷에 접근가능하다.&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
* Task1: Turn on the song on Youtube&lt;br /&gt;
** Step 1. Open the web-browser&lt;br /&gt;
** Step 2. Access to YouTube.&lt;br /&gt;
** Step 3. Search for the song you want to play.&lt;br /&gt;
** Step 4. Click on the video you want to play.&lt;br /&gt;
&lt;br /&gt;
* Task2: Write a Personal Statement that fits the certain company's job opening&lt;br /&gt;
** Step 1. Highlight your relevant skills and experience.&lt;br /&gt;
** Step 2. Demonstrate your knowledge of the company and the position.&lt;br /&gt;
** Step 3. Emphasize your enthusiasm for the industry and the company.&lt;br /&gt;
** Step 4. Showcase your ability to work well in a team environment.&lt;br /&gt;
&lt;br /&gt;
* Task3: Buy the most expensive raincoat in Amazon and Coupang&lt;br /&gt;
** Step 1. Open the web-browser.&lt;br /&gt;
** Step 2. Access to Amazon or Coupang.&lt;br /&gt;
** Step 3. Search for the most expensive raincoat.&lt;br /&gt;
** Step 4. Select the raincoat and add to cart.&lt;br /&gt;
** Step 5. Proceed to checkout.&lt;br /&gt;
** Step 6. Enter shipping and billing information.&lt;br /&gt;
** Step 7. Review order summary and place order.&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
◇ System Flow Chart&lt;br /&gt;
&lt;br /&gt;
[[파일:System Flow Chart.jpg]]&lt;br /&gt;
#Write a Task : 사용자가 Task를 작성한다.&lt;br /&gt;
#Split Task into SubTasks : 사용자가 작성한 Task를 Llama가 SubTask로 나누고 이를 서버가 파싱하여 사용자에게 SubTask로 제공한다.&lt;br /&gt;
#See the SubTasks of Task : 사용자는 서버가 분리한 SubTask들을 볼 수 있다.&lt;br /&gt;
#Click the Exec Button : 사용자가 코드 실행 버튼을 누른다.&lt;br /&gt;
#Search the Codes of each SubTasks : 서버는 각 SubTask들의 코드를 데이터베이스에서 탐색한다.&lt;br /&gt;
#Execute the Javascript Code : 서버가 탐색한 Javascript Code를 실행시킨다.&lt;br /&gt;
#Check the result of the Task : 사용자는 Task와 코드의 결과값이 일치하는지 확인한다.&lt;br /&gt;
&lt;br /&gt;
◇ 클래스도&lt;br /&gt;
&lt;br /&gt;
*Frontend 전체&lt;br /&gt;
[[파일:전체Frontend.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Frontend 1번 파트&lt;br /&gt;
[[파일:Frontend1.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Frontend 2번 파트&lt;br /&gt;
[[파일:Frontend2.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Frontend 3번 파트&lt;br /&gt;
[[파일:Frontend3.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Backend 전체&lt;br /&gt;
[[미디어:Backend.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Backend 빨강 파트&lt;br /&gt;
[[파일:Backend빨강.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Backend 파랑 파트&lt;br /&gt;
[[파일:Backend파랑.jpg]]&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
내용&lt;br /&gt;
====포스터====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===관련사업비 내역서===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
내용&lt;/div&gt;</summary>
		<author><name>Com2312</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Backend%ED%8C%8C%EB%9E%91.jpg&amp;diff=9654</id>
		<title>파일:Backend파랑.jpg</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Backend%ED%8C%8C%EB%9E%91.jpg&amp;diff=9654"/>
				<updated>2023-12-26T04:12:29Z</updated>
		
		<summary type="html">&lt;p&gt;Com2312: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Com2312</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Backend%EB%B9%A8%EA%B0%95.jpg&amp;diff=9653</id>
		<title>파일:Backend빨강.jpg</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Backend%EB%B9%A8%EA%B0%95.jpg&amp;diff=9653"/>
				<updated>2023-12-26T04:12:16Z</updated>
		
		<summary type="html">&lt;p&gt;Com2312: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Com2312</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Backend.jpg&amp;diff=9652</id>
		<title>파일:Backend.jpg</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Backend.jpg&amp;diff=9652"/>
				<updated>2023-12-26T04:12:00Z</updated>
		
		<summary type="html">&lt;p&gt;Com2312: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Com2312</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:%EC%A0%84%EC%B2%B4Frontend.jpg&amp;diff=9651</id>
		<title>파일:전체Frontend.jpg</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:%EC%A0%84%EC%B2%B4Frontend.jpg&amp;diff=9651"/>
				<updated>2023-12-26T04:10:50Z</updated>
		
		<summary type="html">&lt;p&gt;Com2312: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Com2312</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Frontend.jpg&amp;diff=9650</id>
		<title>파일:Frontend.jpg</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Frontend.jpg&amp;diff=9650"/>
				<updated>2023-12-26T04:10:12Z</updated>
		
		<summary type="html">&lt;p&gt;Com2312: Com2312님이 파일:Frontend.jpg의 새 판을 올렸습니다&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Com2312</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%EC%97%90%ED%94%BC%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4&amp;diff=9649</id>
		<title>에피메테우스</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%EC%97%90%ED%94%BC%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4&amp;diff=9649"/>
				<updated>2023-12-26T04:07:29Z</updated>
		
		<summary type="html">&lt;p&gt;Com2312: /* 상세설계 내용 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : ''' 에피메테우스(LLM을 활용한 웹 기반의 업무 자동화 플랫폼)&lt;br /&gt;
&lt;br /&gt;
''' 영문 : ''' 00000000..&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
에피메테우스&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
정형구 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2023년 9월 ~ 2023년 12월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 오*영(팀장)&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 김*원&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 이*주&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 장*호&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 황*우&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
'''◇ LLM을 활용한 웹 기반의 업무 자동화 플랫폼 구축'''&lt;br /&gt;
*사용자가 제공한 업무를 실제로 실행할 수 있는 자동화 AI 플랫폼 구현이 주된 목표이다. &lt;br /&gt;
*기존 AutoGPT와 유사한 기능을 제공하도록 대형 언어 모델(LLM)을 이용해 사용자의 업무를 이루기 위한 일련의 과정을 LLM(Llama)이 생성 후 제공한다. &lt;br /&gt;
*기존 서비스와의 차이점은 AI 모델의 단점인 블랙박스 특성을 없애기 위해 업무를 수행하기 위한 각 단계에 적절한 코드를 DB에서 불러오고, 해당 코드를 실행한다는 점이다. &lt;br /&gt;
*특정 단계에 해당하는 기능이 없을 때 원하는 기능을 사용자가 직접 추가하여 실행할 수 있다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
*현재 ChatGPT의 성공에 힘입어 LLM을 이용하여 업무를 자동화하는 시도가 존재한다.&lt;br /&gt;
*LLM을 이용하여 모든 업무를 자동화하는 것은 현재 수준으로는 부족하다는 보고가 있다.&lt;br /&gt;
*이러한 배경에 힘입어 기존 서비스의 한계점을 극복하기 위해 코드 단위로 업무를 실행하는 웹 기반의 업무 자동화 플랫폼을 구현하고자 한다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
◇ Frontend&lt;br /&gt;
*접근성을 고려한 UI 개발&lt;br /&gt;
*사용자가 작성한 코드를 웹 환경에서 실행시키는 기능 개발&lt;br /&gt;
&lt;br /&gt;
◇ Backend&lt;br /&gt;
*문장의 의미를 나타내는 벡터로 유사한 이름을 가진 TASK를 찾는 기능 개발&lt;br /&gt;
&lt;br /&gt;
◇ AI&lt;br /&gt;
*LLM(Large Language Model)을 이용하여 사용자 목표 달성을 위한 업무를 자동으로 분할하는 기능 개발&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
* 다양한 Benchmark에 대하여 여러 거대 언어 모델들의 성능을 비교&lt;br /&gt;
[[파일:Benchmark.jpg|700px]]&lt;br /&gt;
* 하지만 해당 Benchmark에는 구현하고자 하는 기능을 담고 있지 않음&lt;br /&gt;
* 해당 Benchmark에서 Llama-2(13B)을 사용&lt;br /&gt;
*특허조사 및 특허 전략 분석&lt;br /&gt;
&lt;br /&gt;
====기술 로드맵====&lt;br /&gt;
* Frontend&lt;br /&gt;
**Figma&lt;br /&gt;
**React&lt;br /&gt;
**web worker&lt;br /&gt;
*Backend&lt;br /&gt;
**Spring Boot&lt;br /&gt;
**AWS EC2&lt;br /&gt;
**AWS VPC&lt;br /&gt;
**AWS Lambda&lt;br /&gt;
**Jenkins&lt;br /&gt;
**Github Webhook&lt;br /&gt;
**MongoDB&lt;br /&gt;
**Docker&lt;br /&gt;
**AWS Route53&lt;br /&gt;
*AI&lt;br /&gt;
**Llama-13B&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
*경쟁제품 조사 비교&lt;br /&gt;
{| cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot; &amp;quot;text-align&amp;quot;=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 서비스&lt;br /&gt;
| 사용자가 요구사항을 수행하기 위해 Sub task로 분할&lt;br /&gt;
| Subtask를 실행&lt;br /&gt;
| 새로운 요구사항을 구현&lt;br /&gt;
|-&lt;br /&gt;
| ChatGPT&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| WebShop&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| ALFWorld&lt;br /&gt;
| YES &lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| AgentGPT&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| BabyAGI&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Jarvis&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Epimetheus&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
*마케팅 전략 제시&lt;br /&gt;
**코드를 작성 할 수 있는 개발자들에게 LLM을 기반으로 자동화 할 수 있는 점을 강조&lt;br /&gt;
**본 서비스에 필요로 하는 기능을 직접 추가할 수 있음을 강조&lt;br /&gt;
**AI 혹은 다른 사람이 작성해 놓은 비슷한 TASK를 기반으로 기능을 추가할 수 있음을 강조&lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
내용&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
내용&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
'''◇ (AI)오*영(팀장)'''&lt;br /&gt;
  &lt;br /&gt;
'''◇ (Back-end)김*원'''&lt;br /&gt;
&lt;br /&gt;
'''◇ (Front-end)이*주'''&lt;br /&gt;
*UI/UX&lt;br /&gt;
*플랫폼 페이지 구현&lt;br /&gt;
*Back-end와의 SSE통신코드 작성&lt;br /&gt;
'''◇ (Front-end)장*호'''&lt;br /&gt;
*컴포넌트 설계&lt;br /&gt;
*각 subtask별 실행코드 환경 구성&lt;br /&gt;
*실행코드의 실행 테스트 구현&lt;br /&gt;
'''◇ (Back-end)황*우'''&lt;br /&gt;
*SubTask생성 및 parsing, 실행코드 실행 테스트 API 구현&lt;br /&gt;
*API단위 테스트 구현&lt;br /&gt;
*DB 설치 및 메소드 구현&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
[[파일:에피메테우스_제품요구사항.png]]&lt;br /&gt;
====설계 사양====&lt;br /&gt;
* &amp;lt;strong&amp;gt;사용자가 요구한 업무에 대한 출력 제공&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 사용자는 원하는 업무를 text box에 입력할 수 있다.&lt;br /&gt;
** 입력을 제출(submit)하면 서버에서 1개 이상의 Step을 출력해준다.&lt;br /&gt;
** 각 Step은 요약(Title), 상세내용(Description), 코드(Code), 작성언어(Language)를 포함하고 있다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;코드 실행 가능&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 이전 Step의 출력이 다음 Step의 입력으로 제공되어야 한다.&lt;br /&gt;
** Step에 입력된 코드를 실행하여 Task에 대해서 수행한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;사용자가 직접 특정 단계의 코드 수정 가능&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 특정 Step의 Code를 수정할 수 있는 에디터를 제공한다.&lt;br /&gt;
** 새로 입력한 Code의 입출력 양식이 같은지 검사한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;이전 요청 저장&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 기존의 사용자가 입력한 Task에 대해서 기록한다.&lt;br /&gt;
** 이전 업무와 연결되는 이후의 업무를 우선적으로 제공한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;음성 인식을 통한 업무 입력 기능 제공&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 음성인식을 통해 사용자가 업무를 입력하면, 텍스트로 변환하여 text box에 자동으로 입력한다.&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
[[파일:에피메테우스_인프라도.jpg]]&lt;br /&gt;
* &amp;lt;strong&amp;gt;User 요청의 접근 과정&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Route53을 통해 S3 Bucket에 존재하는 정적 리소스에 접근한다.&lt;br /&gt;
** S3 Bucket에서 Server로 API 요청을 보낸다.&lt;br /&gt;
** Public Subnet 내의 Nginx EC2를 통해 Spring Boot EC2로 리버스 프록시가 진행된다.&lt;br /&gt;
** DB에 접근이 필요하다면 Private Subnet 내의 MongoDB EC2에서 DB 데이터를 받아온다.&lt;br /&gt;
** Llama에서 처리해야 하는 로직이 존재한다면 School Server로 요청을 보낸다.&lt;br /&gt;
** School Server에 존재하는 Llama FastAPI 서버에서 응답을 보낸다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;Developer의 배포 과정(Frontend)&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Source Code를 Main에 Merge한다.&lt;br /&gt;
** Github Webhook을 통해 API Gateway에 연결된 API를 호출한다.&lt;br /&gt;
** Lambda를 Trigger하여 Private Subnet 내의 Jenkins EC2로 Github Webhook의 Body를 전송한다.&lt;br /&gt;
** Frontend 수정 여부를 판별한다.&lt;br /&gt;
** Frontend의 배포 시에는 jenkins에서 빌드된 bundle을 S3 React Build Bucket에 보낸다.&lt;br /&gt;
** S3 Build Bucket에서 S3 Deploy Bucket으로 보내고, Client는 이쪽으로 접근할 수 있다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;Developer의 배포 과정(Backend)&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Source Code를 Main에 Merge한다.&lt;br /&gt;
** Github Webhook을 통해 API Gateway에 연결된 API를 호출한다.&lt;br /&gt;
** Lambda를 Trigger하여 Private Subnet 내의 Jenkins EC2로 Github Webhook의 Body를 전송한다.&lt;br /&gt;
** Backend 수정 여부를 판별한다.&lt;br /&gt;
** Jar 파일을 S3 Spring Bucket에 저장한다.&lt;br /&gt;
** CodeDeploy에서 파일을 가져와 Spring EC2에 실행한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;외부 접근 제한&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Build와 관련된 단위들은 외부에서 접근이 불가능하다.&lt;br /&gt;
** NAT Gateway를 통해 내부 단위들은 외부 인터넷에 접근가능하다.&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
* Task1: Turn on the song on Youtube&lt;br /&gt;
** Step 1. Open the web-browser&lt;br /&gt;
** Step 2. Access to YouTube.&lt;br /&gt;
** Step 3. Search for the song you want to play.&lt;br /&gt;
** Step 4. Click on the video you want to play.&lt;br /&gt;
&lt;br /&gt;
* Task2: Write a Personal Statement that fits the certain company's job opening&lt;br /&gt;
** Step 1. Highlight your relevant skills and experience.&lt;br /&gt;
** Step 2. Demonstrate your knowledge of the company and the position.&lt;br /&gt;
** Step 3. Emphasize your enthusiasm for the industry and the company.&lt;br /&gt;
** Step 4. Showcase your ability to work well in a team environment.&lt;br /&gt;
&lt;br /&gt;
* Task3: Buy the most expensive raincoat in Amazon and Coupang&lt;br /&gt;
** Step 1. Open the web-browser.&lt;br /&gt;
** Step 2. Access to Amazon or Coupang.&lt;br /&gt;
** Step 3. Search for the most expensive raincoat.&lt;br /&gt;
** Step 4. Select the raincoat and add to cart.&lt;br /&gt;
** Step 5. Proceed to checkout.&lt;br /&gt;
** Step 6. Enter shipping and billing information.&lt;br /&gt;
** Step 7. Review order summary and place order.&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
◇ System Flow Chart&lt;br /&gt;
&lt;br /&gt;
[[파일:System Flow Chart.jpg]]&lt;br /&gt;
#Write a Task : 사용자가 Task를 작성한다.&lt;br /&gt;
#Split Task into SubTasks : 사용자가 작성한 Task를 Llama가 SubTask로 나누고 이를 서버가 파싱하여 사용자에게 SubTask로 제공한다.&lt;br /&gt;
#See the SubTasks of Task : 사용자는 서버가 분리한 SubTask들을 볼 수 있다.&lt;br /&gt;
#Click the Exec Button : 사용자가 코드 실행 버튼을 누른다.&lt;br /&gt;
#Search the Codes of each SubTasks : 서버는 각 SubTask들의 코드를 데이터베이스에서 탐색한다.&lt;br /&gt;
#Execute the Javascript Code : 서버가 탐색한 Javascript Code를 실행시킨다.&lt;br /&gt;
#Check the result of the Task : 사용자는 Task와 코드의 결과값이 일치하는지 확인한다.&lt;br /&gt;
&lt;br /&gt;
◇ 클래스도&lt;br /&gt;
&lt;br /&gt;
*Frontend 전체&lt;br /&gt;
[[파일:전체Frontend.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Frontend 1번 파트&lt;br /&gt;
[[파일:Frontend1.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Frontend 2번 파트&lt;br /&gt;
[[파일:Frontend2.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Frontend 3번 파트&lt;br /&gt;
[[파일:Frontend3.jpg]]&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
내용&lt;br /&gt;
====포스터====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===관련사업비 내역서===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
내용&lt;/div&gt;</summary>
		<author><name>Com2312</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%EC%97%90%ED%94%BC%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4&amp;diff=9648</id>
		<title>에피메테우스</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%EC%97%90%ED%94%BC%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4&amp;diff=9648"/>
				<updated>2023-12-26T04:06:11Z</updated>
		
		<summary type="html">&lt;p&gt;Com2312: /* 상세설계 내용 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : ''' 에피메테우스(LLM을 활용한 웹 기반의 업무 자동화 플랫폼)&lt;br /&gt;
&lt;br /&gt;
''' 영문 : ''' 00000000..&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
에피메테우스&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
정형구 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2023년 9월 ~ 2023년 12월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 오*영(팀장)&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 김*원&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 이*주&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 장*호&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 황*우&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
'''◇ LLM을 활용한 웹 기반의 업무 자동화 플랫폼 구축'''&lt;br /&gt;
*사용자가 제공한 업무를 실제로 실행할 수 있는 자동화 AI 플랫폼 구현이 주된 목표이다. &lt;br /&gt;
*기존 AutoGPT와 유사한 기능을 제공하도록 대형 언어 모델(LLM)을 이용해 사용자의 업무를 이루기 위한 일련의 과정을 LLM(Llama)이 생성 후 제공한다. &lt;br /&gt;
*기존 서비스와의 차이점은 AI 모델의 단점인 블랙박스 특성을 없애기 위해 업무를 수행하기 위한 각 단계에 적절한 코드를 DB에서 불러오고, 해당 코드를 실행한다는 점이다. &lt;br /&gt;
*특정 단계에 해당하는 기능이 없을 때 원하는 기능을 사용자가 직접 추가하여 실행할 수 있다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
*현재 ChatGPT의 성공에 힘입어 LLM을 이용하여 업무를 자동화하는 시도가 존재한다.&lt;br /&gt;
*LLM을 이용하여 모든 업무를 자동화하는 것은 현재 수준으로는 부족하다는 보고가 있다.&lt;br /&gt;
*이러한 배경에 힘입어 기존 서비스의 한계점을 극복하기 위해 코드 단위로 업무를 실행하는 웹 기반의 업무 자동화 플랫폼을 구현하고자 한다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
◇ Frontend&lt;br /&gt;
*접근성을 고려한 UI 개발&lt;br /&gt;
*사용자가 작성한 코드를 웹 환경에서 실행시키는 기능 개발&lt;br /&gt;
&lt;br /&gt;
◇ Backend&lt;br /&gt;
*문장의 의미를 나타내는 벡터로 유사한 이름을 가진 TASK를 찾는 기능 개발&lt;br /&gt;
&lt;br /&gt;
◇ AI&lt;br /&gt;
*LLM(Large Language Model)을 이용하여 사용자 목표 달성을 위한 업무를 자동으로 분할하는 기능 개발&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
* 다양한 Benchmark에 대하여 여러 거대 언어 모델들의 성능을 비교&lt;br /&gt;
[[파일:Benchmark.jpg|700px]]&lt;br /&gt;
* 하지만 해당 Benchmark에는 구현하고자 하는 기능을 담고 있지 않음&lt;br /&gt;
* 해당 Benchmark에서 Llama-2(13B)을 사용&lt;br /&gt;
*특허조사 및 특허 전략 분석&lt;br /&gt;
&lt;br /&gt;
====기술 로드맵====&lt;br /&gt;
* Frontend&lt;br /&gt;
**Figma&lt;br /&gt;
**React&lt;br /&gt;
**web worker&lt;br /&gt;
*Backend&lt;br /&gt;
**Spring Boot&lt;br /&gt;
**AWS EC2&lt;br /&gt;
**AWS VPC&lt;br /&gt;
**AWS Lambda&lt;br /&gt;
**Jenkins&lt;br /&gt;
**Github Webhook&lt;br /&gt;
**MongoDB&lt;br /&gt;
**Docker&lt;br /&gt;
**AWS Route53&lt;br /&gt;
*AI&lt;br /&gt;
**Llama-13B&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
*경쟁제품 조사 비교&lt;br /&gt;
{| cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot; &amp;quot;text-align&amp;quot;=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 서비스&lt;br /&gt;
| 사용자가 요구사항을 수행하기 위해 Sub task로 분할&lt;br /&gt;
| Subtask를 실행&lt;br /&gt;
| 새로운 요구사항을 구현&lt;br /&gt;
|-&lt;br /&gt;
| ChatGPT&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| WebShop&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| ALFWorld&lt;br /&gt;
| YES &lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| AgentGPT&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| BabyAGI&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Jarvis&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Epimetheus&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
*마케팅 전략 제시&lt;br /&gt;
**코드를 작성 할 수 있는 개발자들에게 LLM을 기반으로 자동화 할 수 있는 점을 강조&lt;br /&gt;
**본 서비스에 필요로 하는 기능을 직접 추가할 수 있음을 강조&lt;br /&gt;
**AI 혹은 다른 사람이 작성해 놓은 비슷한 TASK를 기반으로 기능을 추가할 수 있음을 강조&lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
내용&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
내용&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
'''◇ (AI)오*영(팀장)'''&lt;br /&gt;
  &lt;br /&gt;
'''◇ (Back-end)김*원'''&lt;br /&gt;
&lt;br /&gt;
'''◇ (Front-end)이*주'''&lt;br /&gt;
*UI/UX&lt;br /&gt;
*플랫폼 페이지 구현&lt;br /&gt;
*Back-end와의 SSE통신코드 작성&lt;br /&gt;
'''◇ (Front-end)장*호'''&lt;br /&gt;
*컴포넌트 설계&lt;br /&gt;
*각 subtask별 실행코드 환경 구성&lt;br /&gt;
*실행코드의 실행 테스트 구현&lt;br /&gt;
'''◇ (Back-end)황*우'''&lt;br /&gt;
*SubTask생성 및 parsing, 실행코드 실행 테스트 API 구현&lt;br /&gt;
*API단위 테스트 구현&lt;br /&gt;
*DB 설치 및 메소드 구현&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
[[파일:에피메테우스_제품요구사항.png]]&lt;br /&gt;
====설계 사양====&lt;br /&gt;
* &amp;lt;strong&amp;gt;사용자가 요구한 업무에 대한 출력 제공&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 사용자는 원하는 업무를 text box에 입력할 수 있다.&lt;br /&gt;
** 입력을 제출(submit)하면 서버에서 1개 이상의 Step을 출력해준다.&lt;br /&gt;
** 각 Step은 요약(Title), 상세내용(Description), 코드(Code), 작성언어(Language)를 포함하고 있다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;코드 실행 가능&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 이전 Step의 출력이 다음 Step의 입력으로 제공되어야 한다.&lt;br /&gt;
** Step에 입력된 코드를 실행하여 Task에 대해서 수행한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;사용자가 직접 특정 단계의 코드 수정 가능&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 특정 Step의 Code를 수정할 수 있는 에디터를 제공한다.&lt;br /&gt;
** 새로 입력한 Code의 입출력 양식이 같은지 검사한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;이전 요청 저장&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 기존의 사용자가 입력한 Task에 대해서 기록한다.&lt;br /&gt;
** 이전 업무와 연결되는 이후의 업무를 우선적으로 제공한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;음성 인식을 통한 업무 입력 기능 제공&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 음성인식을 통해 사용자가 업무를 입력하면, 텍스트로 변환하여 text box에 자동으로 입력한다.&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
[[파일:에피메테우스_인프라도.jpg]]&lt;br /&gt;
* &amp;lt;strong&amp;gt;User 요청의 접근 과정&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Route53을 통해 S3 Bucket에 존재하는 정적 리소스에 접근한다.&lt;br /&gt;
** S3 Bucket에서 Server로 API 요청을 보낸다.&lt;br /&gt;
** Public Subnet 내의 Nginx EC2를 통해 Spring Boot EC2로 리버스 프록시가 진행된다.&lt;br /&gt;
** DB에 접근이 필요하다면 Private Subnet 내의 MongoDB EC2에서 DB 데이터를 받아온다.&lt;br /&gt;
** Llama에서 처리해야 하는 로직이 존재한다면 School Server로 요청을 보낸다.&lt;br /&gt;
** School Server에 존재하는 Llama FastAPI 서버에서 응답을 보낸다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;Developer의 배포 과정(Frontend)&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Source Code를 Main에 Merge한다.&lt;br /&gt;
** Github Webhook을 통해 API Gateway에 연결된 API를 호출한다.&lt;br /&gt;
** Lambda를 Trigger하여 Private Subnet 내의 Jenkins EC2로 Github Webhook의 Body를 전송한다.&lt;br /&gt;
** Frontend 수정 여부를 판별한다.&lt;br /&gt;
** Frontend의 배포 시에는 jenkins에서 빌드된 bundle을 S3 React Build Bucket에 보낸다.&lt;br /&gt;
** S3 Build Bucket에서 S3 Deploy Bucket으로 보내고, Client는 이쪽으로 접근할 수 있다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;Developer의 배포 과정(Backend)&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Source Code를 Main에 Merge한다.&lt;br /&gt;
** Github Webhook을 통해 API Gateway에 연결된 API를 호출한다.&lt;br /&gt;
** Lambda를 Trigger하여 Private Subnet 내의 Jenkins EC2로 Github Webhook의 Body를 전송한다.&lt;br /&gt;
** Backend 수정 여부를 판별한다.&lt;br /&gt;
** Jar 파일을 S3 Spring Bucket에 저장한다.&lt;br /&gt;
** CodeDeploy에서 파일을 가져와 Spring EC2에 실행한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;외부 접근 제한&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Build와 관련된 단위들은 외부에서 접근이 불가능하다.&lt;br /&gt;
** NAT Gateway를 통해 내부 단위들은 외부 인터넷에 접근가능하다.&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
* Task1: Turn on the song on Youtube&lt;br /&gt;
** Step 1. Open the web-browser&lt;br /&gt;
** Step 2. Access to YouTube.&lt;br /&gt;
** Step 3. Search for the song you want to play.&lt;br /&gt;
** Step 4. Click on the video you want to play.&lt;br /&gt;
&lt;br /&gt;
* Task2: Write a Personal Statement that fits the certain company's job opening&lt;br /&gt;
** Step 1. Highlight your relevant skills and experience.&lt;br /&gt;
** Step 2. Demonstrate your knowledge of the company and the position.&lt;br /&gt;
** Step 3. Emphasize your enthusiasm for the industry and the company.&lt;br /&gt;
** Step 4. Showcase your ability to work well in a team environment.&lt;br /&gt;
&lt;br /&gt;
* Task3: Buy the most expensive raincoat in Amazon and Coupang&lt;br /&gt;
** Step 1. Open the web-browser.&lt;br /&gt;
** Step 2. Access to Amazon or Coupang.&lt;br /&gt;
** Step 3. Search for the most expensive raincoat.&lt;br /&gt;
** Step 4. Select the raincoat and add to cart.&lt;br /&gt;
** Step 5. Proceed to checkout.&lt;br /&gt;
** Step 6. Enter shipping and billing information.&lt;br /&gt;
** Step 7. Review order summary and place order.&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
◇ System Flow Chart&lt;br /&gt;
&lt;br /&gt;
[[파일:System Flow Chart.jpg]]&lt;br /&gt;
#Write a Task : 사용자가 Task를 작성한다.&lt;br /&gt;
#Split Task into SubTasks : 사용자가 작성한 Task를 Llama가 SubTask로 나누고 이를 서버가 파싱하여 사용자에게 SubTask로 제공한다.&lt;br /&gt;
#See the SubTasks of Task : 사용자는 서버가 분리한 SubTask들을 볼 수 있다.&lt;br /&gt;
#Click the Exec Button : 사용자가 코드 실행 버튼을 누른다.&lt;br /&gt;
#Search the Codes of each SubTasks : 서버는 각 SubTask들의 코드를 데이터베이스에서 탐색한다.&lt;br /&gt;
#Execute the Javascript Code : 서버가 탐색한 Javascript Code를 실행시킨다.&lt;br /&gt;
#Check the result of the Task : 사용자는 Task와 코드의 결과값이 일치하는지 확인한다.&lt;br /&gt;
&lt;br /&gt;
◇ 클래스도&lt;br /&gt;
&lt;br /&gt;
*Frontend 전체&lt;br /&gt;
[[파일:Frontend전체.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Frontend 1번 파트&lt;br /&gt;
[[파일:Frontend1.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Frontend 2번 파트&lt;br /&gt;
[[파일:Frontend2.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Frontend 3번 파트&lt;br /&gt;
[[파일:Frontend3.jpg]]&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
내용&lt;br /&gt;
====포스터====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===관련사업비 내역서===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
내용&lt;/div&gt;</summary>
		<author><name>Com2312</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%EC%97%90%ED%94%BC%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4&amp;diff=9647</id>
		<title>에피메테우스</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%EC%97%90%ED%94%BC%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4&amp;diff=9647"/>
				<updated>2023-12-26T04:05:52Z</updated>
		
		<summary type="html">&lt;p&gt;Com2312: /* 상세설계 내용 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : ''' 에피메테우스(LLM을 활용한 웹 기반의 업무 자동화 플랫폼)&lt;br /&gt;
&lt;br /&gt;
''' 영문 : ''' 00000000..&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
에피메테우스&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
정형구 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2023년 9월 ~ 2023년 12월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 오*영(팀장)&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 김*원&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 이*주&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 장*호&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 황*우&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
'''◇ LLM을 활용한 웹 기반의 업무 자동화 플랫폼 구축'''&lt;br /&gt;
*사용자가 제공한 업무를 실제로 실행할 수 있는 자동화 AI 플랫폼 구현이 주된 목표이다. &lt;br /&gt;
*기존 AutoGPT와 유사한 기능을 제공하도록 대형 언어 모델(LLM)을 이용해 사용자의 업무를 이루기 위한 일련의 과정을 LLM(Llama)이 생성 후 제공한다. &lt;br /&gt;
*기존 서비스와의 차이점은 AI 모델의 단점인 블랙박스 특성을 없애기 위해 업무를 수행하기 위한 각 단계에 적절한 코드를 DB에서 불러오고, 해당 코드를 실행한다는 점이다. &lt;br /&gt;
*특정 단계에 해당하는 기능이 없을 때 원하는 기능을 사용자가 직접 추가하여 실행할 수 있다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
*현재 ChatGPT의 성공에 힘입어 LLM을 이용하여 업무를 자동화하는 시도가 존재한다.&lt;br /&gt;
*LLM을 이용하여 모든 업무를 자동화하는 것은 현재 수준으로는 부족하다는 보고가 있다.&lt;br /&gt;
*이러한 배경에 힘입어 기존 서비스의 한계점을 극복하기 위해 코드 단위로 업무를 실행하는 웹 기반의 업무 자동화 플랫폼을 구현하고자 한다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
◇ Frontend&lt;br /&gt;
*접근성을 고려한 UI 개발&lt;br /&gt;
*사용자가 작성한 코드를 웹 환경에서 실행시키는 기능 개발&lt;br /&gt;
&lt;br /&gt;
◇ Backend&lt;br /&gt;
*문장의 의미를 나타내는 벡터로 유사한 이름을 가진 TASK를 찾는 기능 개발&lt;br /&gt;
&lt;br /&gt;
◇ AI&lt;br /&gt;
*LLM(Large Language Model)을 이용하여 사용자 목표 달성을 위한 업무를 자동으로 분할하는 기능 개발&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
* 다양한 Benchmark에 대하여 여러 거대 언어 모델들의 성능을 비교&lt;br /&gt;
[[파일:Benchmark.jpg|700px]]&lt;br /&gt;
* 하지만 해당 Benchmark에는 구현하고자 하는 기능을 담고 있지 않음&lt;br /&gt;
* 해당 Benchmark에서 Llama-2(13B)을 사용&lt;br /&gt;
*특허조사 및 특허 전략 분석&lt;br /&gt;
&lt;br /&gt;
====기술 로드맵====&lt;br /&gt;
* Frontend&lt;br /&gt;
**Figma&lt;br /&gt;
**React&lt;br /&gt;
**web worker&lt;br /&gt;
*Backend&lt;br /&gt;
**Spring Boot&lt;br /&gt;
**AWS EC2&lt;br /&gt;
**AWS VPC&lt;br /&gt;
**AWS Lambda&lt;br /&gt;
**Jenkins&lt;br /&gt;
**Github Webhook&lt;br /&gt;
**MongoDB&lt;br /&gt;
**Docker&lt;br /&gt;
**AWS Route53&lt;br /&gt;
*AI&lt;br /&gt;
**Llama-13B&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
*경쟁제품 조사 비교&lt;br /&gt;
{| cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot; &amp;quot;text-align&amp;quot;=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 서비스&lt;br /&gt;
| 사용자가 요구사항을 수행하기 위해 Sub task로 분할&lt;br /&gt;
| Subtask를 실행&lt;br /&gt;
| 새로운 요구사항을 구현&lt;br /&gt;
|-&lt;br /&gt;
| ChatGPT&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| WebShop&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| ALFWorld&lt;br /&gt;
| YES &lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| AgentGPT&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| BabyAGI&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Jarvis&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Epimetheus&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
*마케팅 전략 제시&lt;br /&gt;
**코드를 작성 할 수 있는 개발자들에게 LLM을 기반으로 자동화 할 수 있는 점을 강조&lt;br /&gt;
**본 서비스에 필요로 하는 기능을 직접 추가할 수 있음을 강조&lt;br /&gt;
**AI 혹은 다른 사람이 작성해 놓은 비슷한 TASK를 기반으로 기능을 추가할 수 있음을 강조&lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
내용&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
내용&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
'''◇ (AI)오*영(팀장)'''&lt;br /&gt;
  &lt;br /&gt;
'''◇ (Back-end)김*원'''&lt;br /&gt;
&lt;br /&gt;
'''◇ (Front-end)이*주'''&lt;br /&gt;
*UI/UX&lt;br /&gt;
*플랫폼 페이지 구현&lt;br /&gt;
*Back-end와의 SSE통신코드 작성&lt;br /&gt;
'''◇ (Front-end)장*호'''&lt;br /&gt;
*컴포넌트 설계&lt;br /&gt;
*각 subtask별 실행코드 환경 구성&lt;br /&gt;
*실행코드의 실행 테스트 구현&lt;br /&gt;
'''◇ (Back-end)황*우'''&lt;br /&gt;
*SubTask생성 및 parsing, 실행코드 실행 테스트 API 구현&lt;br /&gt;
*API단위 테스트 구현&lt;br /&gt;
*DB 설치 및 메소드 구현&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
[[파일:에피메테우스_제품요구사항.png]]&lt;br /&gt;
====설계 사양====&lt;br /&gt;
* &amp;lt;strong&amp;gt;사용자가 요구한 업무에 대한 출력 제공&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 사용자는 원하는 업무를 text box에 입력할 수 있다.&lt;br /&gt;
** 입력을 제출(submit)하면 서버에서 1개 이상의 Step을 출력해준다.&lt;br /&gt;
** 각 Step은 요약(Title), 상세내용(Description), 코드(Code), 작성언어(Language)를 포함하고 있다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;코드 실행 가능&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 이전 Step의 출력이 다음 Step의 입력으로 제공되어야 한다.&lt;br /&gt;
** Step에 입력된 코드를 실행하여 Task에 대해서 수행한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;사용자가 직접 특정 단계의 코드 수정 가능&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 특정 Step의 Code를 수정할 수 있는 에디터를 제공한다.&lt;br /&gt;
** 새로 입력한 Code의 입출력 양식이 같은지 검사한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;이전 요청 저장&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 기존의 사용자가 입력한 Task에 대해서 기록한다.&lt;br /&gt;
** 이전 업무와 연결되는 이후의 업무를 우선적으로 제공한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;음성 인식을 통한 업무 입력 기능 제공&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 음성인식을 통해 사용자가 업무를 입력하면, 텍스트로 변환하여 text box에 자동으로 입력한다.&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
[[파일:에피메테우스_인프라도.jpg]]&lt;br /&gt;
* &amp;lt;strong&amp;gt;User 요청의 접근 과정&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Route53을 통해 S3 Bucket에 존재하는 정적 리소스에 접근한다.&lt;br /&gt;
** S3 Bucket에서 Server로 API 요청을 보낸다.&lt;br /&gt;
** Public Subnet 내의 Nginx EC2를 통해 Spring Boot EC2로 리버스 프록시가 진행된다.&lt;br /&gt;
** DB에 접근이 필요하다면 Private Subnet 내의 MongoDB EC2에서 DB 데이터를 받아온다.&lt;br /&gt;
** Llama에서 처리해야 하는 로직이 존재한다면 School Server로 요청을 보낸다.&lt;br /&gt;
** School Server에 존재하는 Llama FastAPI 서버에서 응답을 보낸다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;Developer의 배포 과정(Frontend)&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Source Code를 Main에 Merge한다.&lt;br /&gt;
** Github Webhook을 통해 API Gateway에 연결된 API를 호출한다.&lt;br /&gt;
** Lambda를 Trigger하여 Private Subnet 내의 Jenkins EC2로 Github Webhook의 Body를 전송한다.&lt;br /&gt;
** Frontend 수정 여부를 판별한다.&lt;br /&gt;
** Frontend의 배포 시에는 jenkins에서 빌드된 bundle을 S3 React Build Bucket에 보낸다.&lt;br /&gt;
** S3 Build Bucket에서 S3 Deploy Bucket으로 보내고, Client는 이쪽으로 접근할 수 있다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;Developer의 배포 과정(Backend)&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Source Code를 Main에 Merge한다.&lt;br /&gt;
** Github Webhook을 통해 API Gateway에 연결된 API를 호출한다.&lt;br /&gt;
** Lambda를 Trigger하여 Private Subnet 내의 Jenkins EC2로 Github Webhook의 Body를 전송한다.&lt;br /&gt;
** Backend 수정 여부를 판별한다.&lt;br /&gt;
** Jar 파일을 S3 Spring Bucket에 저장한다.&lt;br /&gt;
** CodeDeploy에서 파일을 가져와 Spring EC2에 실행한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;외부 접근 제한&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Build와 관련된 단위들은 외부에서 접근이 불가능하다.&lt;br /&gt;
** NAT Gateway를 통해 내부 단위들은 외부 인터넷에 접근가능하다.&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
* Task1: Turn on the song on Youtube&lt;br /&gt;
** Step 1. Open the web-browser&lt;br /&gt;
** Step 2. Access to YouTube.&lt;br /&gt;
** Step 3. Search for the song you want to play.&lt;br /&gt;
** Step 4. Click on the video you want to play.&lt;br /&gt;
&lt;br /&gt;
* Task2: Write a Personal Statement that fits the certain company's job opening&lt;br /&gt;
** Step 1. Highlight your relevant skills and experience.&lt;br /&gt;
** Step 2. Demonstrate your knowledge of the company and the position.&lt;br /&gt;
** Step 3. Emphasize your enthusiasm for the industry and the company.&lt;br /&gt;
** Step 4. Showcase your ability to work well in a team environment.&lt;br /&gt;
&lt;br /&gt;
* Task3: Buy the most expensive raincoat in Amazon and Coupang&lt;br /&gt;
** Step 1. Open the web-browser.&lt;br /&gt;
** Step 2. Access to Amazon or Coupang.&lt;br /&gt;
** Step 3. Search for the most expensive raincoat.&lt;br /&gt;
** Step 4. Select the raincoat and add to cart.&lt;br /&gt;
** Step 5. Proceed to checkout.&lt;br /&gt;
** Step 6. Enter shipping and billing information.&lt;br /&gt;
** Step 7. Review order summary and place order.&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
◇ System Flow Chart&lt;br /&gt;
&lt;br /&gt;
[[파일:System Flow Chart.jpg]]&lt;br /&gt;
#Write a Task : 사용자가 Task를 작성한다.&lt;br /&gt;
#Split Task into SubTasks : 사용자가 작성한 Task를 Llama가 SubTask로 나누고 이를 서버가 파싱하여 사용자에게 SubTask로 제공한다.&lt;br /&gt;
#See the SubTasks of Task : 사용자는 서버가 분리한 SubTask들을 볼 수 있다.&lt;br /&gt;
#Click the Exec Button : 사용자가 코드 실행 버튼을 누른다.&lt;br /&gt;
#Search the Codes of each SubTasks : 서버는 각 SubTask들의 코드를 데이터베이스에서 탐색한다.&lt;br /&gt;
#Execute the Javascript Code : 서버가 탐색한 Javascript Code를 실행시킨다.&lt;br /&gt;
#Check the result of the Task : 사용자는 Task와 코드의 결과값이 일치하는지 확인한다.&lt;br /&gt;
&lt;br /&gt;
◇ 클래스도&lt;br /&gt;
&lt;br /&gt;
*Frontend 전체&lt;br /&gt;
&lt;br /&gt;
*Frontend 1번 파트&lt;br /&gt;
[[파일:Frontend1.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Frontend 2번 파트&lt;br /&gt;
[[파일:Frontend2.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Frontend 3번 파트&lt;br /&gt;
[[파일:Frontend3.jpg]]&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
내용&lt;br /&gt;
====포스터====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===관련사업비 내역서===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
내용&lt;/div&gt;</summary>
		<author><name>Com2312</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%EC%97%90%ED%94%BC%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4&amp;diff=9646</id>
		<title>에피메테우스</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%EC%97%90%ED%94%BC%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4&amp;diff=9646"/>
				<updated>2023-12-26T04:04:25Z</updated>
		
		<summary type="html">&lt;p&gt;Com2312: /* 상세설계 내용 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : ''' 에피메테우스(LLM을 활용한 웹 기반의 업무 자동화 플랫폼)&lt;br /&gt;
&lt;br /&gt;
''' 영문 : ''' 00000000..&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
에피메테우스&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
정형구 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2023년 9월 ~ 2023년 12월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 오*영(팀장)&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 김*원&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 이*주&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 장*호&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 황*우&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
'''◇ LLM을 활용한 웹 기반의 업무 자동화 플랫폼 구축'''&lt;br /&gt;
*사용자가 제공한 업무를 실제로 실행할 수 있는 자동화 AI 플랫폼 구현이 주된 목표이다. &lt;br /&gt;
*기존 AutoGPT와 유사한 기능을 제공하도록 대형 언어 모델(LLM)을 이용해 사용자의 업무를 이루기 위한 일련의 과정을 LLM(Llama)이 생성 후 제공한다. &lt;br /&gt;
*기존 서비스와의 차이점은 AI 모델의 단점인 블랙박스 특성을 없애기 위해 업무를 수행하기 위한 각 단계에 적절한 코드를 DB에서 불러오고, 해당 코드를 실행한다는 점이다. &lt;br /&gt;
*특정 단계에 해당하는 기능이 없을 때 원하는 기능을 사용자가 직접 추가하여 실행할 수 있다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
*현재 ChatGPT의 성공에 힘입어 LLM을 이용하여 업무를 자동화하는 시도가 존재한다.&lt;br /&gt;
*LLM을 이용하여 모든 업무를 자동화하는 것은 현재 수준으로는 부족하다는 보고가 있다.&lt;br /&gt;
*이러한 배경에 힘입어 기존 서비스의 한계점을 극복하기 위해 코드 단위로 업무를 실행하는 웹 기반의 업무 자동화 플랫폼을 구현하고자 한다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
◇ Frontend&lt;br /&gt;
*접근성을 고려한 UI 개발&lt;br /&gt;
*사용자가 작성한 코드를 웹 환경에서 실행시키는 기능 개발&lt;br /&gt;
&lt;br /&gt;
◇ Backend&lt;br /&gt;
*문장의 의미를 나타내는 벡터로 유사한 이름을 가진 TASK를 찾는 기능 개발&lt;br /&gt;
&lt;br /&gt;
◇ AI&lt;br /&gt;
*LLM(Large Language Model)을 이용하여 사용자 목표 달성을 위한 업무를 자동으로 분할하는 기능 개발&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
* 다양한 Benchmark에 대하여 여러 거대 언어 모델들의 성능을 비교&lt;br /&gt;
[[파일:Benchmark.jpg|700px]]&lt;br /&gt;
* 하지만 해당 Benchmark에는 구현하고자 하는 기능을 담고 있지 않음&lt;br /&gt;
* 해당 Benchmark에서 Llama-2(13B)을 사용&lt;br /&gt;
*특허조사 및 특허 전략 분석&lt;br /&gt;
&lt;br /&gt;
====기술 로드맵====&lt;br /&gt;
* Frontend&lt;br /&gt;
**Figma&lt;br /&gt;
**React&lt;br /&gt;
**web worker&lt;br /&gt;
*Backend&lt;br /&gt;
**Spring Boot&lt;br /&gt;
**AWS EC2&lt;br /&gt;
**AWS VPC&lt;br /&gt;
**AWS Lambda&lt;br /&gt;
**Jenkins&lt;br /&gt;
**Github Webhook&lt;br /&gt;
**MongoDB&lt;br /&gt;
**Docker&lt;br /&gt;
**AWS Route53&lt;br /&gt;
*AI&lt;br /&gt;
**Llama-13B&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
*경쟁제품 조사 비교&lt;br /&gt;
{| cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot; &amp;quot;text-align&amp;quot;=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 서비스&lt;br /&gt;
| 사용자가 요구사항을 수행하기 위해 Sub task로 분할&lt;br /&gt;
| Subtask를 실행&lt;br /&gt;
| 새로운 요구사항을 구현&lt;br /&gt;
|-&lt;br /&gt;
| ChatGPT&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| WebShop&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| ALFWorld&lt;br /&gt;
| YES &lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| AgentGPT&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| BabyAGI&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Jarvis&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Epimetheus&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
*마케팅 전략 제시&lt;br /&gt;
**코드를 작성 할 수 있는 개발자들에게 LLM을 기반으로 자동화 할 수 있는 점을 강조&lt;br /&gt;
**본 서비스에 필요로 하는 기능을 직접 추가할 수 있음을 강조&lt;br /&gt;
**AI 혹은 다른 사람이 작성해 놓은 비슷한 TASK를 기반으로 기능을 추가할 수 있음을 강조&lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
내용&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
내용&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
'''◇ (AI)오*영(팀장)'''&lt;br /&gt;
  &lt;br /&gt;
'''◇ (Back-end)김*원'''&lt;br /&gt;
&lt;br /&gt;
'''◇ (Front-end)이*주'''&lt;br /&gt;
*UI/UX&lt;br /&gt;
*플랫폼 페이지 구현&lt;br /&gt;
*Back-end와의 SSE통신코드 작성&lt;br /&gt;
'''◇ (Front-end)장*호'''&lt;br /&gt;
*컴포넌트 설계&lt;br /&gt;
*각 subtask별 실행코드 환경 구성&lt;br /&gt;
*실행코드의 실행 테스트 구현&lt;br /&gt;
'''◇ (Back-end)황*우'''&lt;br /&gt;
*SubTask생성 및 parsing, 실행코드 실행 테스트 API 구현&lt;br /&gt;
*API단위 테스트 구현&lt;br /&gt;
*DB 설치 및 메소드 구현&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
[[파일:에피메테우스_제품요구사항.png]]&lt;br /&gt;
====설계 사양====&lt;br /&gt;
* &amp;lt;strong&amp;gt;사용자가 요구한 업무에 대한 출력 제공&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 사용자는 원하는 업무를 text box에 입력할 수 있다.&lt;br /&gt;
** 입력을 제출(submit)하면 서버에서 1개 이상의 Step을 출력해준다.&lt;br /&gt;
** 각 Step은 요약(Title), 상세내용(Description), 코드(Code), 작성언어(Language)를 포함하고 있다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;코드 실행 가능&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 이전 Step의 출력이 다음 Step의 입력으로 제공되어야 한다.&lt;br /&gt;
** Step에 입력된 코드를 실행하여 Task에 대해서 수행한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;사용자가 직접 특정 단계의 코드 수정 가능&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 특정 Step의 Code를 수정할 수 있는 에디터를 제공한다.&lt;br /&gt;
** 새로 입력한 Code의 입출력 양식이 같은지 검사한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;이전 요청 저장&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 기존의 사용자가 입력한 Task에 대해서 기록한다.&lt;br /&gt;
** 이전 업무와 연결되는 이후의 업무를 우선적으로 제공한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;음성 인식을 통한 업무 입력 기능 제공&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 음성인식을 통해 사용자가 업무를 입력하면, 텍스트로 변환하여 text box에 자동으로 입력한다.&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
[[파일:에피메테우스_인프라도.jpg]]&lt;br /&gt;
* &amp;lt;strong&amp;gt;User 요청의 접근 과정&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Route53을 통해 S3 Bucket에 존재하는 정적 리소스에 접근한다.&lt;br /&gt;
** S3 Bucket에서 Server로 API 요청을 보낸다.&lt;br /&gt;
** Public Subnet 내의 Nginx EC2를 통해 Spring Boot EC2로 리버스 프록시가 진행된다.&lt;br /&gt;
** DB에 접근이 필요하다면 Private Subnet 내의 MongoDB EC2에서 DB 데이터를 받아온다.&lt;br /&gt;
** Llama에서 처리해야 하는 로직이 존재한다면 School Server로 요청을 보낸다.&lt;br /&gt;
** School Server에 존재하는 Llama FastAPI 서버에서 응답을 보낸다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;Developer의 배포 과정(Frontend)&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Source Code를 Main에 Merge한다.&lt;br /&gt;
** Github Webhook을 통해 API Gateway에 연결된 API를 호출한다.&lt;br /&gt;
** Lambda를 Trigger하여 Private Subnet 내의 Jenkins EC2로 Github Webhook의 Body를 전송한다.&lt;br /&gt;
** Frontend 수정 여부를 판별한다.&lt;br /&gt;
** Frontend의 배포 시에는 jenkins에서 빌드된 bundle을 S3 React Build Bucket에 보낸다.&lt;br /&gt;
** S3 Build Bucket에서 S3 Deploy Bucket으로 보내고, Client는 이쪽으로 접근할 수 있다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;Developer의 배포 과정(Backend)&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Source Code를 Main에 Merge한다.&lt;br /&gt;
** Github Webhook을 통해 API Gateway에 연결된 API를 호출한다.&lt;br /&gt;
** Lambda를 Trigger하여 Private Subnet 내의 Jenkins EC2로 Github Webhook의 Body를 전송한다.&lt;br /&gt;
** Backend 수정 여부를 판별한다.&lt;br /&gt;
** Jar 파일을 S3 Spring Bucket에 저장한다.&lt;br /&gt;
** CodeDeploy에서 파일을 가져와 Spring EC2에 실행한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;외부 접근 제한&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Build와 관련된 단위들은 외부에서 접근이 불가능하다.&lt;br /&gt;
** NAT Gateway를 통해 내부 단위들은 외부 인터넷에 접근가능하다.&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
* Task1: Turn on the song on Youtube&lt;br /&gt;
** Step 1. Open the web-browser&lt;br /&gt;
** Step 2. Access to YouTube.&lt;br /&gt;
** Step 3. Search for the song you want to play.&lt;br /&gt;
** Step 4. Click on the video you want to play.&lt;br /&gt;
&lt;br /&gt;
* Task2: Write a Personal Statement that fits the certain company's job opening&lt;br /&gt;
** Step 1. Highlight your relevant skills and experience.&lt;br /&gt;
** Step 2. Demonstrate your knowledge of the company and the position.&lt;br /&gt;
** Step 3. Emphasize your enthusiasm for the industry and the company.&lt;br /&gt;
** Step 4. Showcase your ability to work well in a team environment.&lt;br /&gt;
&lt;br /&gt;
* Task3: Buy the most expensive raincoat in Amazon and Coupang&lt;br /&gt;
** Step 1. Open the web-browser.&lt;br /&gt;
** Step 2. Access to Amazon or Coupang.&lt;br /&gt;
** Step 3. Search for the most expensive raincoat.&lt;br /&gt;
** Step 4. Select the raincoat and add to cart.&lt;br /&gt;
** Step 5. Proceed to checkout.&lt;br /&gt;
** Step 6. Enter shipping and billing information.&lt;br /&gt;
** Step 7. Review order summary and place order.&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
◇ System Flow Chart&lt;br /&gt;
&lt;br /&gt;
[[파일:System Flow Chart.jpg]]&lt;br /&gt;
#Write a Task : 사용자가 Task를 작성한다.&lt;br /&gt;
#Split Task into SubTasks : 사용자가 작성한 Task를 Llama가 SubTask로 나누고 이를 서버가 파싱하여 사용자에게 SubTask로 제공한다.&lt;br /&gt;
#See the SubTasks of Task : 사용자는 서버가 분리한 SubTask들을 볼 수 있다.&lt;br /&gt;
#Click the Exec Button : 사용자가 코드 실행 버튼을 누른다.&lt;br /&gt;
#Search the Codes of each SubTasks : 서버는 각 SubTask들의 코드를 데이터베이스에서 탐색한다.&lt;br /&gt;
#Execute the Javascript Code : 서버가 탐색한 Javascript Code를 실행시킨다.&lt;br /&gt;
#Check the result of the Task : 사용자는 Task와 코드의 결과값이 일치하는지 확인한다.&lt;br /&gt;
&lt;br /&gt;
◇ 클래스도&lt;br /&gt;
&lt;br /&gt;
*Frontend 전체&lt;br /&gt;
[[파일:Frontend전체.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Frontend 1번 파트&lt;br /&gt;
[[파일:Frontend1.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Frontend 2번 파트&lt;br /&gt;
[[파일:Frontend2.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Frontend 3번 파트&lt;br /&gt;
[[파일:Frontend3.jpg]]&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
내용&lt;br /&gt;
====포스터====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===관련사업비 내역서===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
내용&lt;/div&gt;</summary>
		<author><name>Com2312</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Frontend3.jpg&amp;diff=9645</id>
		<title>파일:Frontend3.jpg</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Frontend3.jpg&amp;diff=9645"/>
				<updated>2023-12-26T04:02:35Z</updated>
		
		<summary type="html">&lt;p&gt;Com2312: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Com2312</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Frontend2.jpg&amp;diff=9644</id>
		<title>파일:Frontend2.jpg</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Frontend2.jpg&amp;diff=9644"/>
				<updated>2023-12-26T04:02:14Z</updated>
		
		<summary type="html">&lt;p&gt;Com2312: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Com2312</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Frontend1.jpg&amp;diff=9643</id>
		<title>파일:Frontend1.jpg</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Frontend1.jpg&amp;diff=9643"/>
				<updated>2023-12-26T04:01:41Z</updated>
		
		<summary type="html">&lt;p&gt;Com2312: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Com2312</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Frontend.jpg&amp;diff=9642</id>
		<title>파일:Frontend.jpg</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Frontend.jpg&amp;diff=9642"/>
				<updated>2023-12-26T04:00:56Z</updated>
		
		<summary type="html">&lt;p&gt;Com2312: Com2312님이 파일:Frontend.jpg의 새 판을 올렸습니다&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Com2312</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%EC%97%90%ED%94%BC%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4&amp;diff=9641</id>
		<title>에피메테우스</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%EC%97%90%ED%94%BC%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4&amp;diff=9641"/>
				<updated>2023-12-26T03:55:58Z</updated>
		
		<summary type="html">&lt;p&gt;Com2312: /* 상세설계 내용 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : ''' 에피메테우스(LLM을 활용한 웹 기반의 업무 자동화 플랫폼)&lt;br /&gt;
&lt;br /&gt;
''' 영문 : ''' 00000000..&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
에피메테우스&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
정형구 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2023년 9월 ~ 2023년 12월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 오*영(팀장)&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 김*원&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 이*주&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 장*호&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 황*우&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
'''◇ LLM을 활용한 웹 기반의 업무 자동화 플랫폼 구축'''&lt;br /&gt;
*사용자가 제공한 업무를 실제로 실행할 수 있는 자동화 AI 플랫폼 구현이 주된 목표이다. &lt;br /&gt;
*기존 AutoGPT와 유사한 기능을 제공하도록 대형 언어 모델(LLM)을 이용해 사용자의 업무를 이루기 위한 일련의 과정을 LLM(Llama)이 생성 후 제공한다. &lt;br /&gt;
*기존 서비스와의 차이점은 AI 모델의 단점인 블랙박스 특성을 없애기 위해 업무를 수행하기 위한 각 단계에 적절한 코드를 DB에서 불러오고, 해당 코드를 실행한다는 점이다. &lt;br /&gt;
*특정 단계에 해당하는 기능이 없을 때 원하는 기능을 사용자가 직접 추가하여 실행할 수 있다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
*현재 ChatGPT의 성공에 힘입어 LLM을 이용하여 업무를 자동화하는 시도가 존재한다.&lt;br /&gt;
*LLM을 이용하여 모든 업무를 자동화하는 것은 현재 수준으로는 부족하다는 보고가 있다.&lt;br /&gt;
*이러한 배경에 힘입어 기존 서비스의 한계점을 극복하기 위해 코드 단위로 업무를 실행하는 웹 기반의 업무 자동화 플랫폼을 구현하고자 한다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
◇ Frontend&lt;br /&gt;
*접근성을 고려한 UI 개발&lt;br /&gt;
*사용자가 작성한 코드를 웹 환경에서 실행시키는 기능 개발&lt;br /&gt;
&lt;br /&gt;
◇ Backend&lt;br /&gt;
*문장의 의미를 나타내는 벡터로 유사한 이름을 가진 TASK를 찾는 기능 개발&lt;br /&gt;
&lt;br /&gt;
◇ AI&lt;br /&gt;
*LLM(Large Language Model)을 이용하여 사용자 목표 달성을 위한 업무를 자동으로 분할하는 기능 개발&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
* 다양한 Benchmark에 대하여 여러 거대 언어 모델들의 성능을 비교&lt;br /&gt;
[[파일:Benchmark.jpg|700px]]&lt;br /&gt;
* 하지만 해당 Benchmark에는 구현하고자 하는 기능을 담고 있지 않음&lt;br /&gt;
* 해당 Benchmark에서 Llama-2(13B)을 사용&lt;br /&gt;
*특허조사 및 특허 전략 분석&lt;br /&gt;
&lt;br /&gt;
====기술 로드맵====&lt;br /&gt;
* Frontend&lt;br /&gt;
**Figma&lt;br /&gt;
**React&lt;br /&gt;
**web worker&lt;br /&gt;
*Backend&lt;br /&gt;
**Spring Boot&lt;br /&gt;
**AWS EC2&lt;br /&gt;
**AWS VPC&lt;br /&gt;
**AWS Lambda&lt;br /&gt;
**Jenkins&lt;br /&gt;
**Github Webhook&lt;br /&gt;
**MongoDB&lt;br /&gt;
**Docker&lt;br /&gt;
**AWS Route53&lt;br /&gt;
*AI&lt;br /&gt;
**Llama-13B&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
*경쟁제품 조사 비교&lt;br /&gt;
{| cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot; &amp;quot;text-align&amp;quot;=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 서비스&lt;br /&gt;
| 사용자가 요구사항을 수행하기 위해 Sub task로 분할&lt;br /&gt;
| Subtask를 실행&lt;br /&gt;
| 새로운 요구사항을 구현&lt;br /&gt;
|-&lt;br /&gt;
| ChatGPT&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| WebShop&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| ALFWorld&lt;br /&gt;
| YES &lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| AgentGPT&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| BabyAGI&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Jarvis&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Epimetheus&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
*마케팅 전략 제시&lt;br /&gt;
**코드를 작성 할 수 있는 개발자들에게 LLM을 기반으로 자동화 할 수 있는 점을 강조&lt;br /&gt;
**본 서비스에 필요로 하는 기능을 직접 추가할 수 있음을 강조&lt;br /&gt;
**AI 혹은 다른 사람이 작성해 놓은 비슷한 TASK를 기반으로 기능을 추가할 수 있음을 강조&lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
내용&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
내용&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
'''◇ (AI)오*영(팀장)'''&lt;br /&gt;
  &lt;br /&gt;
'''◇ (Back-end)김*원'''&lt;br /&gt;
&lt;br /&gt;
'''◇ (Front-end)이*주'''&lt;br /&gt;
*UI/UX&lt;br /&gt;
*플랫폼 페이지 구현&lt;br /&gt;
*Back-end와의 SSE통신코드 작성&lt;br /&gt;
'''◇ (Front-end)장*호'''&lt;br /&gt;
*컴포넌트 설계&lt;br /&gt;
*각 subtask별 실행코드 환경 구성&lt;br /&gt;
*실행코드의 실행 테스트 구현&lt;br /&gt;
'''◇ (Back-end)황*우'''&lt;br /&gt;
*SubTask생성 및 parsing, 실행코드 실행 테스트 API 구현&lt;br /&gt;
*API단위 테스트 구현&lt;br /&gt;
*DB 설치 및 메소드 구현&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
[[파일:에피메테우스_제품요구사항.png]]&lt;br /&gt;
====설계 사양====&lt;br /&gt;
* &amp;lt;strong&amp;gt;사용자가 요구한 업무에 대한 출력 제공&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 사용자는 원하는 업무를 text box에 입력할 수 있다.&lt;br /&gt;
** 입력을 제출(submit)하면 서버에서 1개 이상의 Step을 출력해준다.&lt;br /&gt;
** 각 Step은 요약(Title), 상세내용(Description), 코드(Code), 작성언어(Language)를 포함하고 있다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;코드 실행 가능&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 이전 Step의 출력이 다음 Step의 입력으로 제공되어야 한다.&lt;br /&gt;
** Step에 입력된 코드를 실행하여 Task에 대해서 수행한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;사용자가 직접 특정 단계의 코드 수정 가능&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 특정 Step의 Code를 수정할 수 있는 에디터를 제공한다.&lt;br /&gt;
** 새로 입력한 Code의 입출력 양식이 같은지 검사한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;이전 요청 저장&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 기존의 사용자가 입력한 Task에 대해서 기록한다.&lt;br /&gt;
** 이전 업무와 연결되는 이후의 업무를 우선적으로 제공한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;음성 인식을 통한 업무 입력 기능 제공&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 음성인식을 통해 사용자가 업무를 입력하면, 텍스트로 변환하여 text box에 자동으로 입력한다.&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
[[파일:에피메테우스_인프라도.jpg]]&lt;br /&gt;
* &amp;lt;strong&amp;gt;User 요청의 접근 과정&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Route53을 통해 S3 Bucket에 존재하는 정적 리소스에 접근한다.&lt;br /&gt;
** S3 Bucket에서 Server로 API 요청을 보낸다.&lt;br /&gt;
** Public Subnet 내의 Nginx EC2를 통해 Spring Boot EC2로 리버스 프록시가 진행된다.&lt;br /&gt;
** DB에 접근이 필요하다면 Private Subnet 내의 MongoDB EC2에서 DB 데이터를 받아온다.&lt;br /&gt;
** Llama에서 처리해야 하는 로직이 존재한다면 School Server로 요청을 보낸다.&lt;br /&gt;
** School Server에 존재하는 Llama FastAPI 서버에서 응답을 보낸다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;Developer의 배포 과정(Frontend)&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Source Code를 Main에 Merge한다.&lt;br /&gt;
** Github Webhook을 통해 API Gateway에 연결된 API를 호출한다.&lt;br /&gt;
** Lambda를 Trigger하여 Private Subnet 내의 Jenkins EC2로 Github Webhook의 Body를 전송한다.&lt;br /&gt;
** Frontend 수정 여부를 판별한다.&lt;br /&gt;
** Frontend의 배포 시에는 jenkins에서 빌드된 bundle을 S3 React Build Bucket에 보낸다.&lt;br /&gt;
** S3 Build Bucket에서 S3 Deploy Bucket으로 보내고, Client는 이쪽으로 접근할 수 있다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;Developer의 배포 과정(Backend)&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Source Code를 Main에 Merge한다.&lt;br /&gt;
** Github Webhook을 통해 API Gateway에 연결된 API를 호출한다.&lt;br /&gt;
** Lambda를 Trigger하여 Private Subnet 내의 Jenkins EC2로 Github Webhook의 Body를 전송한다.&lt;br /&gt;
** Backend 수정 여부를 판별한다.&lt;br /&gt;
** Jar 파일을 S3 Spring Bucket에 저장한다.&lt;br /&gt;
** CodeDeploy에서 파일을 가져와 Spring EC2에 실행한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;외부 접근 제한&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Build와 관련된 단위들은 외부에서 접근이 불가능하다.&lt;br /&gt;
** NAT Gateway를 통해 내부 단위들은 외부 인터넷에 접근가능하다.&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
* Task1: Turn on the song on Youtube&lt;br /&gt;
** Step 1. Open the web-browser&lt;br /&gt;
** Step 2. Access to YouTube.&lt;br /&gt;
** Step 3. Search for the song you want to play.&lt;br /&gt;
** Step 4. Click on the video you want to play.&lt;br /&gt;
&lt;br /&gt;
* Task2: Write a Personal Statement that fits the certain company's job opening&lt;br /&gt;
** Step 1. Highlight your relevant skills and experience.&lt;br /&gt;
** Step 2. Demonstrate your knowledge of the company and the position.&lt;br /&gt;
** Step 3. Emphasize your enthusiasm for the industry and the company.&lt;br /&gt;
** Step 4. Showcase your ability to work well in a team environment.&lt;br /&gt;
&lt;br /&gt;
* Task3: Buy the most expensive raincoat in Amazon and Coupang&lt;br /&gt;
** Step 1. Open the web-browser.&lt;br /&gt;
** Step 2. Access to Amazon or Coupang.&lt;br /&gt;
** Step 3. Search for the most expensive raincoat.&lt;br /&gt;
** Step 4. Select the raincoat and add to cart.&lt;br /&gt;
** Step 5. Proceed to checkout.&lt;br /&gt;
** Step 6. Enter shipping and billing information.&lt;br /&gt;
** Step 7. Review order summary and place order.&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
◇ System Flow Chart&lt;br /&gt;
&lt;br /&gt;
[[파일:System Flow Chart.jpg]]&lt;br /&gt;
#Write a Task : 사용자가 Task를 작성한다.&lt;br /&gt;
#Split Task into SubTasks : 사용자가 작성한 Task를 Llama가 SubTask로 나누고 이를 서버가 파싱하여 사용자에게 SubTask로 제공한다.&lt;br /&gt;
#See the SubTasks of Task : 사용자는 서버가 분리한 SubTask들을 볼 수 있다.&lt;br /&gt;
#Click the Exec Button : 사용자가 코드 실행 버튼을 누른다.&lt;br /&gt;
#Search the Codes of each SubTasks : 서버는 각 SubTask들의 코드를 데이터베이스에서 탐색한다.&lt;br /&gt;
#Execute the Javascript Code : 서버가 탐색한 Javascript Code를 실행시킨다.&lt;br /&gt;
#Check the result of the Task : 사용자는 Task와 코드의 결과값이 일치하는지 확인한다.&lt;br /&gt;
&lt;br /&gt;
◇ 클래스도&lt;br /&gt;
&lt;br /&gt;
*Frontend 전체&lt;br /&gt;
[[파일:Frontend.png]]&lt;br /&gt;
&lt;br /&gt;
*Frontend 1번 파트&lt;br /&gt;
[[파일:Frontend1.png]]&lt;br /&gt;
&lt;br /&gt;
*Frontend 2번 파트&lt;br /&gt;
[[파일:Frontend2.png]]&lt;br /&gt;
&lt;br /&gt;
*Frontend 3번 파트&lt;br /&gt;
[[파일:Frontend3.png]]&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
내용&lt;br /&gt;
====포스터====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===관련사업비 내역서===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
내용&lt;/div&gt;</summary>
		<author><name>Com2312</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%EC%97%90%ED%94%BC%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4&amp;diff=9602</id>
		<title>에피메테우스</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%EC%97%90%ED%94%BC%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4&amp;diff=9602"/>
				<updated>2023-12-25T06:48:56Z</updated>
		
		<summary type="html">&lt;p&gt;Com2312: /* 구성원 및 추진체계 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : ''' 에피메테우스(LLM을 활용한 웹 기반의 업무 자동화 플랫폼)&lt;br /&gt;
&lt;br /&gt;
''' 영문 : ''' 00000000..&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
에피메테우스&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
정형구 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2023년 9월 ~ 2023년 12월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 오*영(팀장)&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 김*원&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 이*주&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 장*호&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 황*우&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
'''◇ LLM을 활용한 웹 기반의 업무 자동화 플랫폼 구축'''&lt;br /&gt;
*사용자가 제공한 업무를 실제로 실행할 수 있는 자동화 AI 플랫폼 구현이 주된 목표이다. &lt;br /&gt;
*기존 AutoGPT와 유사한 기능을 제공하도록 대형 언어 모델(LLM)을 이용해 사용자의 업무를 이루기 위한 일련의 과정을 LLM(Llama)이 생성 후 제공한다. &lt;br /&gt;
*기존 서비스와의 차이점은 AI 모델의 단점인 블랙박스 특성을 없애기 위해 업무를 수행하기 위한 각 단계에 적절한 코드를 DB에서 불러오고, 해당 코드를 실행한다는 점이다. &lt;br /&gt;
*특정 단계에 해당하는 기능이 없을 때 원하는 기능을 사용자가 직접 추가하여 실행할 수 있다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
*현재 ChatGPT의 성공에 힘입어 LLM을 이용하여 업무를 자동화하는 시도가 존재한다.&lt;br /&gt;
*LLM을 이용하여 모든 업무를 자동화하는 것은 현재 수준으로는 부족하다는 보고가 있다.&lt;br /&gt;
*이러한 배경에 힘입어 기존 서비스의 한계점을 극복하기 위해 코드 단위로 업무를 실행하는 웹 기반의 업무 자동화 플랫폼을 구현하고자 한다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
◇ Frontend&lt;br /&gt;
*접근성을 고려한 UI 개발&lt;br /&gt;
*사용자가 작성한 코드를 웹 환경에서 실행시키는 기능 개발&lt;br /&gt;
&lt;br /&gt;
◇ Backend&lt;br /&gt;
*문장의 의미를 나타내는 벡터로 유사한 이름을 가진 TASK를 찾는 기능 개발&lt;br /&gt;
&lt;br /&gt;
◇ AI&lt;br /&gt;
*LLM(Large Language Model)을 이용하여 사용자 목표 달성을 위한 업무를 자동으로 분할하는 기능 개발&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
* 다양한 Benchmark에 대하여 여러 거대 언어 모델들의 성능을 비교&lt;br /&gt;
[[파일:Benchmark.jpg|700px]]&lt;br /&gt;
* 하지만 해당 Benchmark에는 구현하고자 하는 기능을 담고 있지 않음&lt;br /&gt;
* 해당 Benchmark에서 Llama-2(13B)을 사용&lt;br /&gt;
*특허조사 및 특허 전략 분석&lt;br /&gt;
&lt;br /&gt;
====기술 로드맵====&lt;br /&gt;
* Frontend&lt;br /&gt;
**Figma&lt;br /&gt;
**React&lt;br /&gt;
**web worker&lt;br /&gt;
*Backend&lt;br /&gt;
**Spring Boot&lt;br /&gt;
**AWS EC2&lt;br /&gt;
**AWS VPC&lt;br /&gt;
**AWS Lambda&lt;br /&gt;
**Jenkins&lt;br /&gt;
**Github Webhook&lt;br /&gt;
**MongoDB&lt;br /&gt;
**Docker&lt;br /&gt;
**AWS Route53&lt;br /&gt;
*AI&lt;br /&gt;
**Llama-13B&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
*경쟁제품 조사 비교&lt;br /&gt;
{| cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot; &amp;quot;text-align&amp;quot;=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 서비스&lt;br /&gt;
| 사용자가 요구사항을 수행하기 위해 Sub task로 분할&lt;br /&gt;
| Subtask를 실행&lt;br /&gt;
| 새로운 요구사항을 구현&lt;br /&gt;
|-&lt;br /&gt;
| ChatGPT&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| WebShop&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| ALFWorld&lt;br /&gt;
| YES &lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| AgentGPT&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| BabyAGI&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Jarvis&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Epimetheus&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
*마케팅 전략 제시&lt;br /&gt;
**코드를 작성 할 수 있는 개발자들에게 LLM을 기반으로 자동화 할 수 있는 점을 강조&lt;br /&gt;
**본 서비스에 필요로 하는 기능을 직접 추가할 수 있음을 강조&lt;br /&gt;
**AI 혹은 다른 사람이 작성해 놓은 비슷한 TASK를 기반으로 기능을 추가할 수 있음을 강조&lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
내용&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
내용&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
'''◇ (AI)오*영(팀장)'''&lt;br /&gt;
  &lt;br /&gt;
'''◇ (Back-end)김*원'''&lt;br /&gt;
&lt;br /&gt;
'''◇ (Front-end)이*주'''&lt;br /&gt;
*UI/UX&lt;br /&gt;
*플랫폼 페이지 구현&lt;br /&gt;
*Back-end와의 SSE통신코드 작성&lt;br /&gt;
'''◇ (Front-end)장*호'''&lt;br /&gt;
*컴포넌트 설계&lt;br /&gt;
*각 subtask별 실행코드 환경 구성&lt;br /&gt;
*실행코드의 실행 테스트 구현&lt;br /&gt;
'''◇ (Back-end)황*우'''&lt;br /&gt;
*SubTask생성 및 parsing, 실행코드 실행 테스트 API 구현&lt;br /&gt;
*API단위 테스트 구현&lt;br /&gt;
*DB 설치 및 메소드 구현&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
[[파일:에피메테우스_제품요구사항.png]]&lt;br /&gt;
====설계 사양====&lt;br /&gt;
* &amp;lt;strong&amp;gt;사용자가 요구한 업무에 대한 출력 제공&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 사용자는 원하는 업무를 text box에 입력할 수 있다.&lt;br /&gt;
** 입력을 제출(submit)하면 서버에서 1개 이상의 Step을 출력해준다.&lt;br /&gt;
** 각 Step은 요약(Title), 상세내용(Description), 코드(Code), 작성언어(Language)를 포함하고 있다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;코드 실행 가능&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 이전 Step의 출력이 다음 Step의 입력으로 제공되어야 한다.&lt;br /&gt;
** Step에 입력된 코드를 실행하여 Task에 대해서 수행한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;사용자가 직접 특정 단계의 코드 수정 가능&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 특정 Step의 Code를 수정할 수 있는 에디터를 제공한다.&lt;br /&gt;
** 새로 입력한 Code의 입출력 양식이 같은지 검사한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;이전 요청 저장&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 기존의 사용자가 입력한 Task에 대해서 기록한다.&lt;br /&gt;
** 이전 업무와 연결되는 이후의 업무를 우선적으로 제공한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;음성 인식을 통한 업무 입력 기능 제공&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 음성인식을 통해 사용자가 업무를 입력하면, 텍스트로 변환하여 text box에 자동으로 입력한다.&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
[[파일:에피메테우스_인프라도.jpg]]&lt;br /&gt;
* &amp;lt;strong&amp;gt;User 요청의 접근 과정&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Route53을 통해 S3 Bucket에 존재하는 정적 리소스에 접근한다.&lt;br /&gt;
** S3 Bucket에서 Server로 API 요청을 보낸다.&lt;br /&gt;
** Public Subnet 내의 Nginx EC2를 통해 Spring Boot EC2로 리버스 프록시가 진행된다.&lt;br /&gt;
** DB에 접근이 필요하다면 Private Subnet 내의 MongoDB EC2에서 DB 데이터를 받아온다.&lt;br /&gt;
** Llama에서 처리해야 하는 로직이 존재한다면 School Server로 요청을 보낸다.&lt;br /&gt;
** School Server에 존재하는 Llama FastAPI 서버에서 응답을 보낸다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;Developer의 배포 과정(Frontend)&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Source Code를 Main에 Merge한다.&lt;br /&gt;
** Github Webhook을 통해 API Gateway에 연결된 API를 호출한다.&lt;br /&gt;
** Lambda를 Trigger하여 Private Subnet 내의 Jenkins EC2로 Github Webhook의 Body를 전송한다.&lt;br /&gt;
** Frontend 수정 여부를 판별한다.&lt;br /&gt;
** Frontend의 배포 시에는 jenkins에서 빌드된 bundle을 S3 React Build Bucket에 보낸다.&lt;br /&gt;
** S3 Build Bucket에서 S3 Deploy Bucket으로 보내고, Client는 이쪽으로 접근할 수 있다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;Developer의 배포 과정(Backend)&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Source Code를 Main에 Merge한다.&lt;br /&gt;
** Github Webhook을 통해 API Gateway에 연결된 API를 호출한다.&lt;br /&gt;
** Lambda를 Trigger하여 Private Subnet 내의 Jenkins EC2로 Github Webhook의 Body를 전송한다.&lt;br /&gt;
** Backend 수정 여부를 판별한다.&lt;br /&gt;
** Jar 파일을 S3 Spring Bucket에 저장한다.&lt;br /&gt;
** CodeDeploy에서 파일을 가져와 Spring EC2에 실행한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;외부 접근 제한&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Build와 관련된 단위들은 외부에서 접근이 불가능하다.&lt;br /&gt;
** NAT Gateway를 통해 내부 단위들은 외부 인터넷에 접근가능하다.&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
* Task1: Turn on the song on Youtube&lt;br /&gt;
** Step 1. Open the web-browser&lt;br /&gt;
** Step 2. Access to YouTube.&lt;br /&gt;
** Step 3. Search for the song you want to play.&lt;br /&gt;
** Step 4. Click on the video you want to play.&lt;br /&gt;
&lt;br /&gt;
* Task2: Write a Personal Statement that fits the certain company's job opening&lt;br /&gt;
** Step 1. Highlight your relevant skills and experience.&lt;br /&gt;
** Step 2. Demonstrate your knowledge of the company and the position.&lt;br /&gt;
** Step 3. Emphasize your enthusiasm for the industry and the company.&lt;br /&gt;
** Step 4. Showcase your ability to work well in a team environment.&lt;br /&gt;
&lt;br /&gt;
* Task3: Buy the most expensive raincoat in Amazon and Coupang&lt;br /&gt;
** Step 1. Open the web-browser.&lt;br /&gt;
** Step 2. Access to Amazon or Coupang.&lt;br /&gt;
** Step 3. Search for the most expensive raincoat.&lt;br /&gt;
** Step 4. Select the raincoat and add to cart.&lt;br /&gt;
** Step 5. Proceed to checkout.&lt;br /&gt;
** Step 6. Enter shipping and billing information.&lt;br /&gt;
** Step 7. Review order summary and place order.&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
◇ System Flow Chart&lt;br /&gt;
&lt;br /&gt;
[[파일:System Flow Chart.jpg]]&lt;br /&gt;
#Write a Task : 사용자가 Task를 작성한다.&lt;br /&gt;
#Split Task into SubTasks : 사용자가 작성한 Task를 Llama가 SubTask로 나누고 이를 서버가 파싱하여 사용자에게 SubTask로 제공한다.&lt;br /&gt;
#See the SubTasks of Task : 사용자는 서버가 분리한 SubTask들을 볼 수 있다.&lt;br /&gt;
#Click the Exec Button : 사용자가 코드 실행 버튼을 누른다.&lt;br /&gt;
#Search the Codes of each SubTasks : 서버는 각 SubTask들의 코드를 데이터베이스에서 탐색한다.&lt;br /&gt;
#Execute the Javascript Code : 서버가 탐색한 Javascript Code를 실행시킨다.&lt;br /&gt;
#Check the result of the Task : 사용자는 Task와 코드의 결과값이 일치하는지 확인한다.&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
내용&lt;br /&gt;
====포스터====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===관련사업비 내역서===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
내용&lt;/div&gt;</summary>
		<author><name>Com2312</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%EC%97%90%ED%94%BC%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4&amp;diff=9601</id>
		<title>에피메테우스</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%EC%97%90%ED%94%BC%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4&amp;diff=9601"/>
				<updated>2023-12-25T06:45:47Z</updated>
		
		<summary type="html">&lt;p&gt;Com2312: /* 개발 과제의 목표 및 내용 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : ''' 에피메테우스(LLM을 활용한 웹 기반의 업무 자동화 플랫폼)&lt;br /&gt;
&lt;br /&gt;
''' 영문 : ''' 00000000..&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
에피메테우스&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
정형구 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2023년 9월 ~ 2023년 12월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 오*영(팀장)&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 김*원&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 이*주&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 장*호&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 황*우&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
'''◇ LLM을 활용한 웹 기반의 업무 자동화 플랫폼 구축'''&lt;br /&gt;
*사용자가 제공한 업무를 실제로 실행할 수 있는 자동화 AI 플랫폼 구현이 주된 목표이다. &lt;br /&gt;
*기존 AutoGPT와 유사한 기능을 제공하도록 대형 언어 모델(LLM)을 이용해 사용자의 업무를 이루기 위한 일련의 과정을 LLM(Llama)이 생성 후 제공한다. &lt;br /&gt;
*기존 서비스와의 차이점은 AI 모델의 단점인 블랙박스 특성을 없애기 위해 업무를 수행하기 위한 각 단계에 적절한 코드를 DB에서 불러오고, 해당 코드를 실행한다는 점이다. &lt;br /&gt;
*특정 단계에 해당하는 기능이 없을 때 원하는 기능을 사용자가 직접 추가하여 실행할 수 있다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
*현재 ChatGPT의 성공에 힘입어 LLM을 이용하여 업무를 자동화하는 시도가 존재한다.&lt;br /&gt;
*LLM을 이용하여 모든 업무를 자동화하는 것은 현재 수준으로는 부족하다는 보고가 있다.&lt;br /&gt;
*이러한 배경에 힘입어 기존 서비스의 한계점을 극복하기 위해 코드 단위로 업무를 실행하는 웹 기반의 업무 자동화 플랫폼을 구현하고자 한다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
◇ Frontend&lt;br /&gt;
*접근성을 고려한 UI 개발&lt;br /&gt;
*사용자가 작성한 코드를 웹 환경에서 실행시키는 기능 개발&lt;br /&gt;
&lt;br /&gt;
◇ Backend&lt;br /&gt;
*문장의 의미를 나타내는 벡터로 유사한 이름을 가진 TASK를 찾는 기능 개발&lt;br /&gt;
&lt;br /&gt;
◇ AI&lt;br /&gt;
*LLM(Large Language Model)을 이용하여 사용자 목표 달성을 위한 업무를 자동으로 분할하는 기능 개발&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
* 다양한 Benchmark에 대하여 여러 거대 언어 모델들의 성능을 비교&lt;br /&gt;
[[파일:Benchmark.jpg|700px]]&lt;br /&gt;
* 하지만 해당 Benchmark에는 구현하고자 하는 기능을 담고 있지 않음&lt;br /&gt;
* 해당 Benchmark에서 Llama-2(13B)을 사용&lt;br /&gt;
*특허조사 및 특허 전략 분석&lt;br /&gt;
&lt;br /&gt;
====기술 로드맵====&lt;br /&gt;
* Frontend&lt;br /&gt;
**Figma&lt;br /&gt;
**React&lt;br /&gt;
**web worker&lt;br /&gt;
*Backend&lt;br /&gt;
**Spring Boot&lt;br /&gt;
**AWS EC2&lt;br /&gt;
**AWS VPC&lt;br /&gt;
**AWS Lambda&lt;br /&gt;
**Jenkins&lt;br /&gt;
**Github Webhook&lt;br /&gt;
**MongoDB&lt;br /&gt;
**Docker&lt;br /&gt;
**AWS Route53&lt;br /&gt;
*AI&lt;br /&gt;
**Llama-13B&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
*경쟁제품 조사 비교&lt;br /&gt;
{| cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot; &amp;quot;text-align&amp;quot;=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 서비스&lt;br /&gt;
| 사용자가 요구사항을 수행하기 위해 Sub task로 분할&lt;br /&gt;
| Subtask를 실행&lt;br /&gt;
| 새로운 요구사항을 구현&lt;br /&gt;
|-&lt;br /&gt;
| ChatGPT&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| WebShop&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| ALFWorld&lt;br /&gt;
| YES &lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| AgentGPT&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| BabyAGI&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Jarvis&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Epimetheus&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
*마케팅 전략 제시&lt;br /&gt;
**코드를 작성 할 수 있는 개발자들에게 LLM을 기반으로 자동화 할 수 있는 점을 강조&lt;br /&gt;
**본 서비스에 필요로 하는 기능을 직접 추가할 수 있음을 강조&lt;br /&gt;
**AI 혹은 다른 사람이 작성해 놓은 비슷한 TASK를 기반으로 기능을 추가할 수 있음을 강조&lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
내용&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
내용&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
'''◇ (AI)오*영(팀장)'''&lt;br /&gt;
  &lt;br /&gt;
'''◇ (Back-end)김*원'''&lt;br /&gt;
&lt;br /&gt;
'''◇ (Front-end)이*주'''&lt;br /&gt;
*UI/UX&lt;br /&gt;
*플랫폼 페이지 구현&lt;br /&gt;
*Back-end와의 SSE통신코드 작성&lt;br /&gt;
'''◇ (Front-end)장*호'''&lt;br /&gt;
*컴포넌트 설계&lt;br /&gt;
*각 subtask별 실행코드 환경 구성&lt;br /&gt;
*실행코드의 실행 테스트 구현&lt;br /&gt;
'''◇ (Back-end)황*우'''&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
[[파일:에피메테우스_제품요구사항.png]]&lt;br /&gt;
====설계 사양====&lt;br /&gt;
* &amp;lt;strong&amp;gt;사용자가 요구한 업무에 대한 출력 제공&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 사용자는 원하는 업무를 text box에 입력할 수 있다.&lt;br /&gt;
** 입력을 제출(submit)하면 서버에서 1개 이상의 Step을 출력해준다.&lt;br /&gt;
** 각 Step은 요약(Title), 상세내용(Description), 코드(Code), 작성언어(Language)를 포함하고 있다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;코드 실행 가능&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 이전 Step의 출력이 다음 Step의 입력으로 제공되어야 한다.&lt;br /&gt;
** Step에 입력된 코드를 실행하여 Task에 대해서 수행한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;사용자가 직접 특정 단계의 코드 수정 가능&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 특정 Step의 Code를 수정할 수 있는 에디터를 제공한다.&lt;br /&gt;
** 새로 입력한 Code의 입출력 양식이 같은지 검사한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;이전 요청 저장&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 기존의 사용자가 입력한 Task에 대해서 기록한다.&lt;br /&gt;
** 이전 업무와 연결되는 이후의 업무를 우선적으로 제공한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;음성 인식을 통한 업무 입력 기능 제공&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 음성인식을 통해 사용자가 업무를 입력하면, 텍스트로 변환하여 text box에 자동으로 입력한다.&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
[[파일:에피메테우스_인프라도.jpg]]&lt;br /&gt;
* &amp;lt;strong&amp;gt;User 요청의 접근 과정&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Route53을 통해 S3 Bucket에 존재하는 정적 리소스에 접근한다.&lt;br /&gt;
** S3 Bucket에서 Server로 API 요청을 보낸다.&lt;br /&gt;
** Public Subnet 내의 Nginx EC2를 통해 Spring Boot EC2로 리버스 프록시가 진행된다.&lt;br /&gt;
** DB에 접근이 필요하다면 Private Subnet 내의 MongoDB EC2에서 DB 데이터를 받아온다.&lt;br /&gt;
** Llama에서 처리해야 하는 로직이 존재한다면 School Server로 요청을 보낸다.&lt;br /&gt;
** School Server에 존재하는 Llama FastAPI 서버에서 응답을 보낸다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;Developer의 배포 과정(Frontend)&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Source Code를 Main에 Merge한다.&lt;br /&gt;
** Github Webhook을 통해 API Gateway에 연결된 API를 호출한다.&lt;br /&gt;
** Lambda를 Trigger하여 Private Subnet 내의 Jenkins EC2로 Github Webhook의 Body를 전송한다.&lt;br /&gt;
** Frontend 수정 여부를 판별한다.&lt;br /&gt;
** Frontend의 배포 시에는 jenkins에서 빌드된 bundle을 S3 React Build Bucket에 보낸다.&lt;br /&gt;
** S3 Build Bucket에서 S3 Deploy Bucket으로 보내고, Client는 이쪽으로 접근할 수 있다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;Developer의 배포 과정(Backend)&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Source Code를 Main에 Merge한다.&lt;br /&gt;
** Github Webhook을 통해 API Gateway에 연결된 API를 호출한다.&lt;br /&gt;
** Lambda를 Trigger하여 Private Subnet 내의 Jenkins EC2로 Github Webhook의 Body를 전송한다.&lt;br /&gt;
** Backend 수정 여부를 판별한다.&lt;br /&gt;
** Jar 파일을 S3 Spring Bucket에 저장한다.&lt;br /&gt;
** CodeDeploy에서 파일을 가져와 Spring EC2에 실행한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;외부 접근 제한&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Build와 관련된 단위들은 외부에서 접근이 불가능하다.&lt;br /&gt;
** NAT Gateway를 통해 내부 단위들은 외부 인터넷에 접근가능하다.&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
* Task1: Turn on the song on Youtube&lt;br /&gt;
** Step 1. Open the web-browser&lt;br /&gt;
** Step 2. Access to YouTube.&lt;br /&gt;
** Step 3. Search for the song you want to play.&lt;br /&gt;
** Step 4. Click on the video you want to play.&lt;br /&gt;
&lt;br /&gt;
* Task2: Write a Personal Statement that fits the certain company's job opening&lt;br /&gt;
** Step 1. Highlight your relevant skills and experience.&lt;br /&gt;
** Step 2. Demonstrate your knowledge of the company and the position.&lt;br /&gt;
** Step 3. Emphasize your enthusiasm for the industry and the company.&lt;br /&gt;
** Step 4. Showcase your ability to work well in a team environment.&lt;br /&gt;
&lt;br /&gt;
* Task3: Buy the most expensive raincoat in Amazon and Coupang&lt;br /&gt;
** Step 1. Open the web-browser.&lt;br /&gt;
** Step 2. Access to Amazon or Coupang.&lt;br /&gt;
** Step 3. Search for the most expensive raincoat.&lt;br /&gt;
** Step 4. Select the raincoat and add to cart.&lt;br /&gt;
** Step 5. Proceed to checkout.&lt;br /&gt;
** Step 6. Enter shipping and billing information.&lt;br /&gt;
** Step 7. Review order summary and place order.&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
◇ System Flow Chart&lt;br /&gt;
&lt;br /&gt;
[[파일:System Flow Chart.jpg]]&lt;br /&gt;
#Write a Task : 사용자가 Task를 작성한다.&lt;br /&gt;
#Split Task into SubTasks : 사용자가 작성한 Task를 Llama가 SubTask로 나누고 이를 서버가 파싱하여 사용자에게 SubTask로 제공한다.&lt;br /&gt;
#See the SubTasks of Task : 사용자는 서버가 분리한 SubTask들을 볼 수 있다.&lt;br /&gt;
#Click the Exec Button : 사용자가 코드 실행 버튼을 누른다.&lt;br /&gt;
#Search the Codes of each SubTasks : 서버는 각 SubTask들의 코드를 데이터베이스에서 탐색한다.&lt;br /&gt;
#Execute the Javascript Code : 서버가 탐색한 Javascript Code를 실행시킨다.&lt;br /&gt;
#Check the result of the Task : 사용자는 Task와 코드의 결과값이 일치하는지 확인한다.&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
내용&lt;br /&gt;
====포스터====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===관련사업비 내역서===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
내용&lt;/div&gt;</summary>
		<author><name>Com2312</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%EC%97%90%ED%94%BC%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4&amp;diff=9600</id>
		<title>에피메테우스</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%EC%97%90%ED%94%BC%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4&amp;diff=9600"/>
				<updated>2023-12-25T06:45:22Z</updated>
		
		<summary type="html">&lt;p&gt;Com2312: /* 개발 과제의 목표 및 내용 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : ''' 에피메테우스(LLM을 활용한 웹 기반의 업무 자동화 플랫폼)&lt;br /&gt;
&lt;br /&gt;
''' 영문 : ''' 00000000..&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
에피메테우스&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
정형구 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2023년 9월 ~ 2023년 12월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 오*영(팀장)&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 김*원&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 이*주&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 장*호&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 황*우&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
'''◇ LLM을 활용한 웹 기반의 업무 자동화 플랫폼 구축'''&lt;br /&gt;
*사용자가 제공한 업무를 실제로 실행할 수 있는 자동화 AI 플랫폼 구현이 주된 목표이다. &lt;br /&gt;
*기존 AutoGPT와 유사한 기능을 제공하도록 대형 언어 모델(LLM)을 이용해 사용자의 업무를 이루기 위한 일련의 과정을 LLM(Llama)이 생성 후 제공한다. &lt;br /&gt;
*기존 서비스와의 차이점은 AI 모델의 단점인 블랙박스 특성을 없애기 위해 업무를 수행하기 위한 각 단계에 적절한 코드를 DB에서 불러오고, 해당 코드를 실행한다는 점이다. &lt;br /&gt;
*특정 단계에 해당하는 기능이 없을 때 원하는 기능을 사용자가 직접 추가하여 실행할 수 있다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
*현재 ChatGPT의 성공에 힘입어 LLM을 이용하여 업무를 자동화하는 시도가 존재한다.&lt;br /&gt;
*LLM을 이용하여 모든 업무를 자동화하는 것은 현재 수준으로는 부족하다는 보고가 있다.&lt;br /&gt;
*이러한 배경에 힘입어 기존 서비스의 한계점을 극복하기 위해 코드 단위로 업무를 실행하는 웹 기반의 업무 자동화 플랫폼을 구현하고자 한다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
◇ Frontend&lt;br /&gt;
*접근성을 고려한 UI 개발&lt;br /&gt;
*사용자가 작성한 코드를 웹 환경에서 실행시키는 기능 개발&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ Backend&lt;br /&gt;
*문장의 의미를 나타내는 벡터로 유사한 이름을 가진 TASK를 찾는 기능 개발&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ AI&lt;br /&gt;
*LLM(Large Language Model)을 이용하여 사용자 목표 달성을 위한 업무를 자동으로 분할하는 기능 개발&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
* 다양한 Benchmark에 대하여 여러 거대 언어 모델들의 성능을 비교&lt;br /&gt;
[[파일:Benchmark.jpg|700px]]&lt;br /&gt;
* 하지만 해당 Benchmark에는 구현하고자 하는 기능을 담고 있지 않음&lt;br /&gt;
* 해당 Benchmark에서 Llama-2(13B)을 사용&lt;br /&gt;
*특허조사 및 특허 전략 분석&lt;br /&gt;
&lt;br /&gt;
====기술 로드맵====&lt;br /&gt;
* Frontend&lt;br /&gt;
**Figma&lt;br /&gt;
**React&lt;br /&gt;
**web worker&lt;br /&gt;
*Backend&lt;br /&gt;
**Spring Boot&lt;br /&gt;
**AWS EC2&lt;br /&gt;
**AWS VPC&lt;br /&gt;
**AWS Lambda&lt;br /&gt;
**Jenkins&lt;br /&gt;
**Github Webhook&lt;br /&gt;
**MongoDB&lt;br /&gt;
**Docker&lt;br /&gt;
**AWS Route53&lt;br /&gt;
*AI&lt;br /&gt;
**Llama-13B&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
*경쟁제품 조사 비교&lt;br /&gt;
{| cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot; &amp;quot;text-align&amp;quot;=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 서비스&lt;br /&gt;
| 사용자가 요구사항을 수행하기 위해 Sub task로 분할&lt;br /&gt;
| Subtask를 실행&lt;br /&gt;
| 새로운 요구사항을 구현&lt;br /&gt;
|-&lt;br /&gt;
| ChatGPT&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| WebShop&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| ALFWorld&lt;br /&gt;
| YES &lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| AgentGPT&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| BabyAGI&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Jarvis&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Epimetheus&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
*마케팅 전략 제시&lt;br /&gt;
**코드를 작성 할 수 있는 개발자들에게 LLM을 기반으로 자동화 할 수 있는 점을 강조&lt;br /&gt;
**본 서비스에 필요로 하는 기능을 직접 추가할 수 있음을 강조&lt;br /&gt;
**AI 혹은 다른 사람이 작성해 놓은 비슷한 TASK를 기반으로 기능을 추가할 수 있음을 강조&lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
내용&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
내용&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
'''◇ (AI)오*영(팀장)'''&lt;br /&gt;
  &lt;br /&gt;
'''◇ (Back-end)김*원'''&lt;br /&gt;
&lt;br /&gt;
'''◇ (Front-end)이*주'''&lt;br /&gt;
*UI/UX&lt;br /&gt;
*플랫폼 페이지 구현&lt;br /&gt;
*Back-end와의 SSE통신코드 작성&lt;br /&gt;
'''◇ (Front-end)장*호'''&lt;br /&gt;
*컴포넌트 설계&lt;br /&gt;
*각 subtask별 실행코드 환경 구성&lt;br /&gt;
*실행코드의 실행 테스트 구현&lt;br /&gt;
'''◇ (Back-end)황*우'''&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
[[파일:에피메테우스_제품요구사항.png]]&lt;br /&gt;
====설계 사양====&lt;br /&gt;
* &amp;lt;strong&amp;gt;사용자가 요구한 업무에 대한 출력 제공&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 사용자는 원하는 업무를 text box에 입력할 수 있다.&lt;br /&gt;
** 입력을 제출(submit)하면 서버에서 1개 이상의 Step을 출력해준다.&lt;br /&gt;
** 각 Step은 요약(Title), 상세내용(Description), 코드(Code), 작성언어(Language)를 포함하고 있다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;코드 실행 가능&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 이전 Step의 출력이 다음 Step의 입력으로 제공되어야 한다.&lt;br /&gt;
** Step에 입력된 코드를 실행하여 Task에 대해서 수행한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;사용자가 직접 특정 단계의 코드 수정 가능&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 특정 Step의 Code를 수정할 수 있는 에디터를 제공한다.&lt;br /&gt;
** 새로 입력한 Code의 입출력 양식이 같은지 검사한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;이전 요청 저장&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 기존의 사용자가 입력한 Task에 대해서 기록한다.&lt;br /&gt;
** 이전 업무와 연결되는 이후의 업무를 우선적으로 제공한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;음성 인식을 통한 업무 입력 기능 제공&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 음성인식을 통해 사용자가 업무를 입력하면, 텍스트로 변환하여 text box에 자동으로 입력한다.&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
[[파일:에피메테우스_인프라도.jpg]]&lt;br /&gt;
* &amp;lt;strong&amp;gt;User 요청의 접근 과정&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Route53을 통해 S3 Bucket에 존재하는 정적 리소스에 접근한다.&lt;br /&gt;
** S3 Bucket에서 Server로 API 요청을 보낸다.&lt;br /&gt;
** Public Subnet 내의 Nginx EC2를 통해 Spring Boot EC2로 리버스 프록시가 진행된다.&lt;br /&gt;
** DB에 접근이 필요하다면 Private Subnet 내의 MongoDB EC2에서 DB 데이터를 받아온다.&lt;br /&gt;
** Llama에서 처리해야 하는 로직이 존재한다면 School Server로 요청을 보낸다.&lt;br /&gt;
** School Server에 존재하는 Llama FastAPI 서버에서 응답을 보낸다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;Developer의 배포 과정(Frontend)&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Source Code를 Main에 Merge한다.&lt;br /&gt;
** Github Webhook을 통해 API Gateway에 연결된 API를 호출한다.&lt;br /&gt;
** Lambda를 Trigger하여 Private Subnet 내의 Jenkins EC2로 Github Webhook의 Body를 전송한다.&lt;br /&gt;
** Frontend 수정 여부를 판별한다.&lt;br /&gt;
** Frontend의 배포 시에는 jenkins에서 빌드된 bundle을 S3 React Build Bucket에 보낸다.&lt;br /&gt;
** S3 Build Bucket에서 S3 Deploy Bucket으로 보내고, Client는 이쪽으로 접근할 수 있다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;Developer의 배포 과정(Backend)&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Source Code를 Main에 Merge한다.&lt;br /&gt;
** Github Webhook을 통해 API Gateway에 연결된 API를 호출한다.&lt;br /&gt;
** Lambda를 Trigger하여 Private Subnet 내의 Jenkins EC2로 Github Webhook의 Body를 전송한다.&lt;br /&gt;
** Backend 수정 여부를 판별한다.&lt;br /&gt;
** Jar 파일을 S3 Spring Bucket에 저장한다.&lt;br /&gt;
** CodeDeploy에서 파일을 가져와 Spring EC2에 실행한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;외부 접근 제한&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Build와 관련된 단위들은 외부에서 접근이 불가능하다.&lt;br /&gt;
** NAT Gateway를 통해 내부 단위들은 외부 인터넷에 접근가능하다.&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
* Task1: Turn on the song on Youtube&lt;br /&gt;
** Step 1. Open the web-browser&lt;br /&gt;
** Step 2. Access to YouTube.&lt;br /&gt;
** Step 3. Search for the song you want to play.&lt;br /&gt;
** Step 4. Click on the video you want to play.&lt;br /&gt;
&lt;br /&gt;
* Task2: Write a Personal Statement that fits the certain company's job opening&lt;br /&gt;
** Step 1. Highlight your relevant skills and experience.&lt;br /&gt;
** Step 2. Demonstrate your knowledge of the company and the position.&lt;br /&gt;
** Step 3. Emphasize your enthusiasm for the industry and the company.&lt;br /&gt;
** Step 4. Showcase your ability to work well in a team environment.&lt;br /&gt;
&lt;br /&gt;
* Task3: Buy the most expensive raincoat in Amazon and Coupang&lt;br /&gt;
** Step 1. Open the web-browser.&lt;br /&gt;
** Step 2. Access to Amazon or Coupang.&lt;br /&gt;
** Step 3. Search for the most expensive raincoat.&lt;br /&gt;
** Step 4. Select the raincoat and add to cart.&lt;br /&gt;
** Step 5. Proceed to checkout.&lt;br /&gt;
** Step 6. Enter shipping and billing information.&lt;br /&gt;
** Step 7. Review order summary and place order.&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
◇ System Flow Chart&lt;br /&gt;
&lt;br /&gt;
[[파일:System Flow Chart.jpg]]&lt;br /&gt;
#Write a Task : 사용자가 Task를 작성한다.&lt;br /&gt;
#Split Task into SubTasks : 사용자가 작성한 Task를 Llama가 SubTask로 나누고 이를 서버가 파싱하여 사용자에게 SubTask로 제공한다.&lt;br /&gt;
#See the SubTasks of Task : 사용자는 서버가 분리한 SubTask들을 볼 수 있다.&lt;br /&gt;
#Click the Exec Button : 사용자가 코드 실행 버튼을 누른다.&lt;br /&gt;
#Search the Codes of each SubTasks : 서버는 각 SubTask들의 코드를 데이터베이스에서 탐색한다.&lt;br /&gt;
#Execute the Javascript Code : 서버가 탐색한 Javascript Code를 실행시킨다.&lt;br /&gt;
#Check the result of the Task : 사용자는 Task와 코드의 결과값이 일치하는지 확인한다.&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
내용&lt;br /&gt;
====포스터====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===관련사업비 내역서===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
내용&lt;/div&gt;</summary>
		<author><name>Com2312</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%EC%97%90%ED%94%BC%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4&amp;diff=9599</id>
		<title>에피메테우스</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%EC%97%90%ED%94%BC%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4&amp;diff=9599"/>
				<updated>2023-12-25T06:45:08Z</updated>
		
		<summary type="html">&lt;p&gt;Com2312: /* 개발 과제의 목표 및 내용 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : ''' 에피메테우스(LLM을 활용한 웹 기반의 업무 자동화 플랫폼)&lt;br /&gt;
&lt;br /&gt;
''' 영문 : ''' 00000000..&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
에피메테우스&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
정형구 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2023년 9월 ~ 2023년 12월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 오*영(팀장)&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 김*원&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 이*주&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 장*호&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 황*우&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
'''◇ LLM을 활용한 웹 기반의 업무 자동화 플랫폼 구축'''&lt;br /&gt;
*사용자가 제공한 업무를 실제로 실행할 수 있는 자동화 AI 플랫폼 구현이 주된 목표이다. &lt;br /&gt;
*기존 AutoGPT와 유사한 기능을 제공하도록 대형 언어 모델(LLM)을 이용해 사용자의 업무를 이루기 위한 일련의 과정을 LLM(Llama)이 생성 후 제공한다. &lt;br /&gt;
*기존 서비스와의 차이점은 AI 모델의 단점인 블랙박스 특성을 없애기 위해 업무를 수행하기 위한 각 단계에 적절한 코드를 DB에서 불러오고, 해당 코드를 실행한다는 점이다. &lt;br /&gt;
*특정 단계에 해당하는 기능이 없을 때 원하는 기능을 사용자가 직접 추가하여 실행할 수 있다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
*현재 ChatGPT의 성공에 힘입어 LLM을 이용하여 업무를 자동화하는 시도가 존재한다.&lt;br /&gt;
*LLM을 이용하여 모든 업무를 자동화하는 것은 현재 수준으로는 부족하다는 보고가 있다.&lt;br /&gt;
*이러한 배경에 힘입어 기존 서비스의 한계점을 극복하기 위해 코드 단위로 업무를 실행하는 웹 기반의 업무 자동화 플랫폼을 구현하고자 한다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
◇ Frontend&lt;br /&gt;
*접근성을 고려한 UI 개발&lt;br /&gt;
*사용자가 작성한 코드를 웹 환경에서 실행시키는 기능 개발&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ Backend&lt;br /&gt;
*문장의 의미를 나타내는 벡터로 유사한 이름을 가진 TASK를 찾는 기능 개발&lt;br /&gt;
&lt;br /&gt;
◇ AI&lt;br /&gt;
*LLM(Large Language Model)을 이용하여 사용자 목표 달성을 위한 업무를 자동으로 분할하는 기능 개발&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
* 다양한 Benchmark에 대하여 여러 거대 언어 모델들의 성능을 비교&lt;br /&gt;
[[파일:Benchmark.jpg|700px]]&lt;br /&gt;
* 하지만 해당 Benchmark에는 구현하고자 하는 기능을 담고 있지 않음&lt;br /&gt;
* 해당 Benchmark에서 Llama-2(13B)을 사용&lt;br /&gt;
*특허조사 및 특허 전략 분석&lt;br /&gt;
&lt;br /&gt;
====기술 로드맵====&lt;br /&gt;
* Frontend&lt;br /&gt;
**Figma&lt;br /&gt;
**React&lt;br /&gt;
**web worker&lt;br /&gt;
*Backend&lt;br /&gt;
**Spring Boot&lt;br /&gt;
**AWS EC2&lt;br /&gt;
**AWS VPC&lt;br /&gt;
**AWS Lambda&lt;br /&gt;
**Jenkins&lt;br /&gt;
**Github Webhook&lt;br /&gt;
**MongoDB&lt;br /&gt;
**Docker&lt;br /&gt;
**AWS Route53&lt;br /&gt;
*AI&lt;br /&gt;
**Llama-13B&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
*경쟁제품 조사 비교&lt;br /&gt;
{| cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot; &amp;quot;text-align&amp;quot;=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 서비스&lt;br /&gt;
| 사용자가 요구사항을 수행하기 위해 Sub task로 분할&lt;br /&gt;
| Subtask를 실행&lt;br /&gt;
| 새로운 요구사항을 구현&lt;br /&gt;
|-&lt;br /&gt;
| ChatGPT&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| WebShop&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| ALFWorld&lt;br /&gt;
| YES &lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| AgentGPT&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| BabyAGI&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Jarvis&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Epimetheus&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
*마케팅 전략 제시&lt;br /&gt;
**코드를 작성 할 수 있는 개발자들에게 LLM을 기반으로 자동화 할 수 있는 점을 강조&lt;br /&gt;
**본 서비스에 필요로 하는 기능을 직접 추가할 수 있음을 강조&lt;br /&gt;
**AI 혹은 다른 사람이 작성해 놓은 비슷한 TASK를 기반으로 기능을 추가할 수 있음을 강조&lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
내용&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
내용&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
'''◇ (AI)오*영(팀장)'''&lt;br /&gt;
  &lt;br /&gt;
'''◇ (Back-end)김*원'''&lt;br /&gt;
&lt;br /&gt;
'''◇ (Front-end)이*주'''&lt;br /&gt;
*UI/UX&lt;br /&gt;
*플랫폼 페이지 구현&lt;br /&gt;
*Back-end와의 SSE통신코드 작성&lt;br /&gt;
'''◇ (Front-end)장*호'''&lt;br /&gt;
*컴포넌트 설계&lt;br /&gt;
*각 subtask별 실행코드 환경 구성&lt;br /&gt;
*실행코드의 실행 테스트 구현&lt;br /&gt;
'''◇ (Back-end)황*우'''&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
[[파일:에피메테우스_제품요구사항.png]]&lt;br /&gt;
====설계 사양====&lt;br /&gt;
* &amp;lt;strong&amp;gt;사용자가 요구한 업무에 대한 출력 제공&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 사용자는 원하는 업무를 text box에 입력할 수 있다.&lt;br /&gt;
** 입력을 제출(submit)하면 서버에서 1개 이상의 Step을 출력해준다.&lt;br /&gt;
** 각 Step은 요약(Title), 상세내용(Description), 코드(Code), 작성언어(Language)를 포함하고 있다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;코드 실행 가능&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 이전 Step의 출력이 다음 Step의 입력으로 제공되어야 한다.&lt;br /&gt;
** Step에 입력된 코드를 실행하여 Task에 대해서 수행한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;사용자가 직접 특정 단계의 코드 수정 가능&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 특정 Step의 Code를 수정할 수 있는 에디터를 제공한다.&lt;br /&gt;
** 새로 입력한 Code의 입출력 양식이 같은지 검사한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;이전 요청 저장&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 기존의 사용자가 입력한 Task에 대해서 기록한다.&lt;br /&gt;
** 이전 업무와 연결되는 이후의 업무를 우선적으로 제공한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;음성 인식을 통한 업무 입력 기능 제공&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 음성인식을 통해 사용자가 업무를 입력하면, 텍스트로 변환하여 text box에 자동으로 입력한다.&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
[[파일:에피메테우스_인프라도.jpg]]&lt;br /&gt;
* &amp;lt;strong&amp;gt;User 요청의 접근 과정&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Route53을 통해 S3 Bucket에 존재하는 정적 리소스에 접근한다.&lt;br /&gt;
** S3 Bucket에서 Server로 API 요청을 보낸다.&lt;br /&gt;
** Public Subnet 내의 Nginx EC2를 통해 Spring Boot EC2로 리버스 프록시가 진행된다.&lt;br /&gt;
** DB에 접근이 필요하다면 Private Subnet 내의 MongoDB EC2에서 DB 데이터를 받아온다.&lt;br /&gt;
** Llama에서 처리해야 하는 로직이 존재한다면 School Server로 요청을 보낸다.&lt;br /&gt;
** School Server에 존재하는 Llama FastAPI 서버에서 응답을 보낸다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;Developer의 배포 과정(Frontend)&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Source Code를 Main에 Merge한다.&lt;br /&gt;
** Github Webhook을 통해 API Gateway에 연결된 API를 호출한다.&lt;br /&gt;
** Lambda를 Trigger하여 Private Subnet 내의 Jenkins EC2로 Github Webhook의 Body를 전송한다.&lt;br /&gt;
** Frontend 수정 여부를 판별한다.&lt;br /&gt;
** Frontend의 배포 시에는 jenkins에서 빌드된 bundle을 S3 React Build Bucket에 보낸다.&lt;br /&gt;
** S3 Build Bucket에서 S3 Deploy Bucket으로 보내고, Client는 이쪽으로 접근할 수 있다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;Developer의 배포 과정(Backend)&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Source Code를 Main에 Merge한다.&lt;br /&gt;
** Github Webhook을 통해 API Gateway에 연결된 API를 호출한다.&lt;br /&gt;
** Lambda를 Trigger하여 Private Subnet 내의 Jenkins EC2로 Github Webhook의 Body를 전송한다.&lt;br /&gt;
** Backend 수정 여부를 판별한다.&lt;br /&gt;
** Jar 파일을 S3 Spring Bucket에 저장한다.&lt;br /&gt;
** CodeDeploy에서 파일을 가져와 Spring EC2에 실행한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;외부 접근 제한&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Build와 관련된 단위들은 외부에서 접근이 불가능하다.&lt;br /&gt;
** NAT Gateway를 통해 내부 단위들은 외부 인터넷에 접근가능하다.&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
* Task1: Turn on the song on Youtube&lt;br /&gt;
** Step 1. Open the web-browser&lt;br /&gt;
** Step 2. Access to YouTube.&lt;br /&gt;
** Step 3. Search for the song you want to play.&lt;br /&gt;
** Step 4. Click on the video you want to play.&lt;br /&gt;
&lt;br /&gt;
* Task2: Write a Personal Statement that fits the certain company's job opening&lt;br /&gt;
** Step 1. Highlight your relevant skills and experience.&lt;br /&gt;
** Step 2. Demonstrate your knowledge of the company and the position.&lt;br /&gt;
** Step 3. Emphasize your enthusiasm for the industry and the company.&lt;br /&gt;
** Step 4. Showcase your ability to work well in a team environment.&lt;br /&gt;
&lt;br /&gt;
* Task3: Buy the most expensive raincoat in Amazon and Coupang&lt;br /&gt;
** Step 1. Open the web-browser.&lt;br /&gt;
** Step 2. Access to Amazon or Coupang.&lt;br /&gt;
** Step 3. Search for the most expensive raincoat.&lt;br /&gt;
** Step 4. Select the raincoat and add to cart.&lt;br /&gt;
** Step 5. Proceed to checkout.&lt;br /&gt;
** Step 6. Enter shipping and billing information.&lt;br /&gt;
** Step 7. Review order summary and place order.&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
◇ System Flow Chart&lt;br /&gt;
&lt;br /&gt;
[[파일:System Flow Chart.jpg]]&lt;br /&gt;
#Write a Task : 사용자가 Task를 작성한다.&lt;br /&gt;
#Split Task into SubTasks : 사용자가 작성한 Task를 Llama가 SubTask로 나누고 이를 서버가 파싱하여 사용자에게 SubTask로 제공한다.&lt;br /&gt;
#See the SubTasks of Task : 사용자는 서버가 분리한 SubTask들을 볼 수 있다.&lt;br /&gt;
#Click the Exec Button : 사용자가 코드 실행 버튼을 누른다.&lt;br /&gt;
#Search the Codes of each SubTasks : 서버는 각 SubTask들의 코드를 데이터베이스에서 탐색한다.&lt;br /&gt;
#Execute the Javascript Code : 서버가 탐색한 Javascript Code를 실행시킨다.&lt;br /&gt;
#Check the result of the Task : 사용자는 Task와 코드의 결과값이 일치하는지 확인한다.&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
내용&lt;br /&gt;
====포스터====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===관련사업비 내역서===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
내용&lt;/div&gt;</summary>
		<author><name>Com2312</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%EC%97%90%ED%94%BC%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4&amp;diff=9598</id>
		<title>에피메테우스</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%EC%97%90%ED%94%BC%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4&amp;diff=9598"/>
				<updated>2023-12-24T05:56:28Z</updated>
		
		<summary type="html">&lt;p&gt;Com2312: /* 상세설계 내용 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : ''' 에피메테우스(LLM을 활용한 웹 기반의 업무 자동화 플랫폼)&lt;br /&gt;
&lt;br /&gt;
''' 영문 : ''' 00000000..&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
에피메테우스&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
정형구 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2023년 9월 ~ 2023년 12월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 오*영(팀장)&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 김*원&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 이*주&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 장*호&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 황*우&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
'''◇ LLM을 활용한 웹 기반의 업무 자동화 플랫폼 구축'''&lt;br /&gt;
*사용자가 제공한 업무를 실제로 실행할 수 있는 자동화 AI 플랫폼 구현이 주된 목표이다. &lt;br /&gt;
*기존 AutoGPT와 유사한 기능을 제공하도록 대형 언어 모델(LLM)을 이용해 사용자의 업무를 이루기 위한 일련의 과정을 LLM(Llama)이 생성 후 제공한다. &lt;br /&gt;
*기존 서비스와의 차이점은 AI 모델의 단점인 블랙박스 특성을 없애기 위해 업무를 수행하기 위한 각 단계에 적절한 코드를 DB에서 불러오고, 해당 코드를 실행한다는 점이다. &lt;br /&gt;
*특정 단계에 해당하는 기능이 없을 때 원하는 기능을 사용자가 직접 추가하여 실행할 수 있다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
*현재 ChatGPT의 성공에 힘입어 LLM을 이용하여 업무를 자동화하는 시도가 존재한다.&lt;br /&gt;
*LLM을 이용하여 모든 업무를 자동화하는 것은 현재 수준으로는 부족하다는 보고가 있다.&lt;br /&gt;
*이러한 배경에 힘입어 기존 서비스의 한계점을 극복하기 위해 코드 단위로 업무를 실행하는 웹 기반의 업무 자동화 플랫폼을 구현하고자 한다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
◇ Frontend&lt;br /&gt;
*접근성을 고려한 UI 개발&lt;br /&gt;
*사용자가 작성한 코드를 웹 환경에서 실행시키는 기능 개발&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ Backend&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ AI&lt;br /&gt;
*LLM(Large Language Model)을 이용하여 사용자 목표 달성을 위한 업무를 자동으로 분할하는 기능 개발&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
* 다양한 Benchmark에 대하여 여러 거대 언어 모델들의 성능을 비교&lt;br /&gt;
[[파일:Benchmark.jpg|700px]]&lt;br /&gt;
* 하지만 해당 Benchmark에는 구현하고자 하는 기능을 담고 있지 않음&lt;br /&gt;
* 해당 Benchmark에서 Llama-2(13B)을 사용&lt;br /&gt;
*특허조사 및 특허 전략 분석&lt;br /&gt;
&lt;br /&gt;
====기술 로드맵====&lt;br /&gt;
* Frontend&lt;br /&gt;
**Figma&lt;br /&gt;
**React&lt;br /&gt;
**web worker&lt;br /&gt;
*Backend&lt;br /&gt;
**Spring Boot&lt;br /&gt;
**AWS EC2&lt;br /&gt;
**AWS VPC&lt;br /&gt;
**AWS Lambda&lt;br /&gt;
**Jenkins&lt;br /&gt;
**Github Webhook&lt;br /&gt;
**MongoDB&lt;br /&gt;
**Docker&lt;br /&gt;
**AWS Route53&lt;br /&gt;
*AI&lt;br /&gt;
**Llama-13B&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
*경쟁제품 조사 비교&lt;br /&gt;
{| cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot; &amp;quot;text-align&amp;quot;=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 서비스&lt;br /&gt;
| 사용자가 요구사항을 수행하기 위해 Sub task로 분할&lt;br /&gt;
| Subtask를 실행&lt;br /&gt;
| 새로운 요구사항을 구현&lt;br /&gt;
|-&lt;br /&gt;
| ChatGPT&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| WebShop&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| ALFWorld&lt;br /&gt;
| YES &lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| AgentGPT&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| BabyAGI&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Jarvis&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Epimetheus&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
*마케팅 전략 제시&lt;br /&gt;
**코드를 작성 할 수 있는 개발자들에게 LLM을 기반으로 자동화 할 수 있는 점을 강조&lt;br /&gt;
**본 서비스에 필요로 하는 기능을 직접 추가할 수 있음을 강조&lt;br /&gt;
**AI 혹은 다른 사람이 작성해 놓은 비슷한 TASK를 기반으로 기능을 추가할 수 있음을 강조&lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
내용&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
내용&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
'''◇ (AI)오*영(팀장)'''&lt;br /&gt;
  &lt;br /&gt;
'''◇ (Back-end)김*원'''&lt;br /&gt;
&lt;br /&gt;
'''◇ (Front-end)이*주'''&lt;br /&gt;
*UI/UX&lt;br /&gt;
*플랫폼 페이지 구현&lt;br /&gt;
*Back-end와의 SSE통신코드 작성&lt;br /&gt;
'''◇ (Front-end)장*호'''&lt;br /&gt;
*컴포넌트 설계&lt;br /&gt;
*각 subtask별 실행코드 환경 구성&lt;br /&gt;
*실행코드의 실행 테스트 구현&lt;br /&gt;
'''◇ (Back-end)황*우'''&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
[[파일:에피메테우스_제품요구사항.png]]&lt;br /&gt;
====설계 사양====&lt;br /&gt;
* &amp;lt;strong&amp;gt;사용자가 요구한 업무에 대한 출력 제공&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 사용자는 원하는 업무를 text box에 입력할 수 있다.&lt;br /&gt;
** 입력을 제출(submit)하면 서버에서 1개 이상의 Step을 출력해준다.&lt;br /&gt;
** 각 Step은 요약(Title), 상세내용(Description), 코드(Code), 작성언어(Language)를 포함하고 있다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;코드 실행 가능&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 이전 Step의 출력이 다음 Step의 입력으로 제공되어야 한다.&lt;br /&gt;
** Step에 입력된 코드를 실행하여 Task에 대해서 수행한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;사용자가 직접 특정 단계의 코드 수정 가능&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 특정 Step의 Code를 수정할 수 있는 에디터를 제공한다.&lt;br /&gt;
** 새로 입력한 Code의 입출력 양식이 같은지 검사한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;이전 요청 저장&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 기존의 사용자가 입력한 Task에 대해서 기록한다.&lt;br /&gt;
** 이전 업무와 연결되는 이후의 업무를 우선적으로 제공한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;음성 인식을 통한 업무 입력 기능 제공&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 음성인식을 통해 사용자가 업무를 입력하면, 텍스트로 변환하여 text box에 자동으로 입력한다.&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
[[파일:에피메테우스_인프라도.jpg]]&lt;br /&gt;
* &amp;lt;strong&amp;gt;User 요청의 접근 과정&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Route53을 통해 S3 Bucket에 존재하는 정적 리소스에 접근한다.&lt;br /&gt;
** S3 Bucket에서 Server로 API 요청을 보낸다.&lt;br /&gt;
** Public Subnet 내의 Nginx EC2를 통해 Spring Boot EC2로 리버스 프록시가 진행된다.&lt;br /&gt;
** DB에 접근이 필요하다면 Private Subnet 내의 MongoDB EC2에서 DB 데이터를 받아온다.&lt;br /&gt;
** Llama에서 처리해야 하는 로직이 존재한다면 School Server로 요청을 보낸다.&lt;br /&gt;
** School Server에 존재하는 Llama FastAPI 서버에서 응답을 보낸다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;Developer의 배포 과정(Frontend)&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Source Code를 Main에 Merge한다.&lt;br /&gt;
** Github Webhook을 통해 API Gateway에 연결된 API를 호출한다.&lt;br /&gt;
** Lambda를 Trigger하여 Private Subnet 내의 Jenkins EC2로 Github Webhook의 Body를 전송한다.&lt;br /&gt;
** Frontend 수정 여부를 판별한다.&lt;br /&gt;
** Frontend의 배포 시에는 jenkins에서 빌드된 bundle을 S3 React Build Bucket에 보낸다.&lt;br /&gt;
** S3 Build Bucket에서 S3 Deploy Bucket으로 보내고, Client는 이쪽으로 접근할 수 있다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;Developer의 배포 과정(Backend)&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Source Code를 Main에 Merge한다.&lt;br /&gt;
** Github Webhook을 통해 API Gateway에 연결된 API를 호출한다.&lt;br /&gt;
** Lambda를 Trigger하여 Private Subnet 내의 Jenkins EC2로 Github Webhook의 Body를 전송한다.&lt;br /&gt;
** Backend 수정 여부를 판별한다.&lt;br /&gt;
** Jar 파일을 S3 Spring Bucket에 저장한다.&lt;br /&gt;
** CodeDeploy에서 파일을 가져와 Spring EC2에 실행한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;외부 접근 제한&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Build와 관련된 단위들은 외부에서 접근이 불가능하다.&lt;br /&gt;
** NAT Gateway를 통해 내부 단위들은 외부 인터넷에 접근가능하다.&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
* Task1: Turn on the song on Youtube&lt;br /&gt;
** Step 1. Open the web-browser&lt;br /&gt;
** Step 2. Access to YouTube.&lt;br /&gt;
** Step 3. Search for the song you want to play.&lt;br /&gt;
** Step 4. Click on the video you want to play.&lt;br /&gt;
&lt;br /&gt;
* Task2: Write a Personal Statement that fits the certain company's job opening&lt;br /&gt;
** Step 1. Highlight your relevant skills and experience.&lt;br /&gt;
** Step 2. Demonstrate your knowledge of the company and the position.&lt;br /&gt;
** Step 3. Emphasize your enthusiasm for the industry and the company.&lt;br /&gt;
** Step 4. Showcase your ability to work well in a team environment.&lt;br /&gt;
&lt;br /&gt;
* Task3: Buy the most expensive raincoat in Amazon and Coupang&lt;br /&gt;
** Step 1. Open the web-browser.&lt;br /&gt;
** Step 2. Access to Amazon or Coupang.&lt;br /&gt;
** Step 3. Search for the most expensive raincoat.&lt;br /&gt;
** Step 4. Select the raincoat and add to cart.&lt;br /&gt;
** Step 5. Proceed to checkout.&lt;br /&gt;
** Step 6. Enter shipping and billing information.&lt;br /&gt;
** Step 7. Review order summary and place order.&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
◇ System Flow Chart&lt;br /&gt;
&lt;br /&gt;
[[파일:System Flow Chart.jpg]]&lt;br /&gt;
#Write a Task : 사용자가 Task를 작성한다.&lt;br /&gt;
#Split Task into SubTasks : 사용자가 작성한 Task를 Llama가 SubTask로 나누고 이를 서버가 파싱하여 사용자에게 SubTask로 제공한다.&lt;br /&gt;
#See the SubTasks of Task : 사용자는 서버가 분리한 SubTask들을 볼 수 있다.&lt;br /&gt;
#Click the Exec Button : 사용자가 코드 실행 버튼을 누른다.&lt;br /&gt;
#Search the Codes of each SubTasks : 서버는 각 SubTask들의 코드를 데이터베이스에서 탐색한다.&lt;br /&gt;
#Execute the Javascript Code : 서버가 탐색한 Javascript Code를 실행시킨다.&lt;br /&gt;
#Check the result of the Task : 사용자는 Task와 코드의 결과값이 일치하는지 확인한다.&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
내용&lt;br /&gt;
====포스터====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===관련사업비 내역서===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
내용&lt;/div&gt;</summary>
		<author><name>Com2312</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:System_Flow_Chart.jpg&amp;diff=9597</id>
		<title>파일:System Flow Chart.jpg</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:System_Flow_Chart.jpg&amp;diff=9597"/>
				<updated>2023-12-24T05:56:10Z</updated>
		
		<summary type="html">&lt;p&gt;Com2312: Com2312님이 파일:System Flow Chart.jpg의 새 판을 올렸습니다&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;System Flow Chart&lt;/div&gt;</summary>
		<author><name>Com2312</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%EC%97%90%ED%94%BC%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4&amp;diff=9596</id>
		<title>에피메테우스</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%EC%97%90%ED%94%BC%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4&amp;diff=9596"/>
				<updated>2023-12-24T05:53:35Z</updated>
		
		<summary type="html">&lt;p&gt;Com2312: /* 순차도 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : ''' 에피메테우스(LLM을 활용한 웹 기반의 업무 자동화 플랫폼)&lt;br /&gt;
&lt;br /&gt;
''' 영문 : ''' 00000000..&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
에피메테우스&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
정형구 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2023년 9월 ~ 2023년 12월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 오*영(팀장)&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 김*원&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 이*주&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 장*호&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 황*우&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
'''◇ LLM을 활용한 웹 기반의 업무 자동화 플랫폼 구축'''&lt;br /&gt;
*사용자가 제공한 업무를 실제로 실행할 수 있는 자동화 AI 플랫폼 구현이 주된 목표이다. &lt;br /&gt;
*기존 AutoGPT와 유사한 기능을 제공하도록 대형 언어 모델(LLM)을 이용해 사용자의 업무를 이루기 위한 일련의 과정을 LLM(Llama)이 생성 후 제공한다. &lt;br /&gt;
*기존 서비스와의 차이점은 AI 모델의 단점인 블랙박스 특성을 없애기 위해 업무를 수행하기 위한 각 단계에 적절한 코드를 DB에서 불러오고, 해당 코드를 실행한다는 점이다. &lt;br /&gt;
*특정 단계에 해당하는 기능이 없을 때 원하는 기능을 사용자가 직접 추가하여 실행할 수 있다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
*현재 ChatGPT의 성공에 힘입어 LLM을 이용하여 업무를 자동화하는 시도가 존재한다.&lt;br /&gt;
*LLM을 이용하여 모든 업무를 자동화하는 것은 현재 수준으로는 부족하다는 보고가 있다.&lt;br /&gt;
*이러한 배경에 힘입어 기존 서비스의 한계점을 극복하기 위해 코드 단위로 업무를 실행하는 웹 기반의 업무 자동화 플랫폼을 구현하고자 한다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
◇ Frontend&lt;br /&gt;
*접근성을 고려한 UI 개발&lt;br /&gt;
*사용자가 작성한 코드를 웹 환경에서 실행시키는 기능 개발&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ Backend&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ AI&lt;br /&gt;
*LLM(Large Language Model)을 이용하여 사용자 목표 달성을 위한 업무를 자동으로 분할하는 기능 개발&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
* 다양한 Benchmark에 대하여 여러 거대 언어 모델들의 성능을 비교&lt;br /&gt;
[[파일:Benchmark.jpg|700px]]&lt;br /&gt;
* 하지만 해당 Benchmark에는 구현하고자 하는 기능을 담고 있지 않음&lt;br /&gt;
* 해당 Benchmark에서 Llama-2(13B)을 사용&lt;br /&gt;
*특허조사 및 특허 전략 분석&lt;br /&gt;
&lt;br /&gt;
====기술 로드맵====&lt;br /&gt;
* Frontend&lt;br /&gt;
**Figma&lt;br /&gt;
**React&lt;br /&gt;
**web worker&lt;br /&gt;
*Backend&lt;br /&gt;
**Spring Boot&lt;br /&gt;
**AWS EC2&lt;br /&gt;
**AWS VPC&lt;br /&gt;
**AWS Lambda&lt;br /&gt;
**Jenkins&lt;br /&gt;
**Github Webhook&lt;br /&gt;
**MongoDB&lt;br /&gt;
**Docker&lt;br /&gt;
**AWS Route53&lt;br /&gt;
*AI&lt;br /&gt;
**Llama-13B&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
*경쟁제품 조사 비교&lt;br /&gt;
{| cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot; &amp;quot;text-align&amp;quot;=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 서비스&lt;br /&gt;
| 사용자가 요구사항을 수행하기 위해 Sub task로 분할&lt;br /&gt;
| Subtask를 실행&lt;br /&gt;
| 새로운 요구사항을 구현&lt;br /&gt;
|-&lt;br /&gt;
| ChatGPT&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| WebShop&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| ALFWorld&lt;br /&gt;
| YES &lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| AgentGPT&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| BabyAGI&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Jarvis&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Epimetheus&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
*마케팅 전략 제시&lt;br /&gt;
**코드를 작성 할 수 있는 개발자들에게 LLM을 기반으로 자동화 할 수 있는 점을 강조&lt;br /&gt;
**본 서비스에 필요로 하는 기능을 직접 추가할 수 있음을 강조&lt;br /&gt;
**AI 혹은 다른 사람이 작성해 놓은 비슷한 TASK를 기반으로 기능을 추가할 수 있음을 강조&lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
내용&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
내용&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
'''◇ (AI)오*영(팀장)'''&lt;br /&gt;
  &lt;br /&gt;
'''◇ (Back-end)김*원'''&lt;br /&gt;
&lt;br /&gt;
'''◇ (Front-end)이*주'''&lt;br /&gt;
*UI/UX&lt;br /&gt;
*플랫폼 페이지 구현&lt;br /&gt;
*Back-end와의 SSE통신코드 작성&lt;br /&gt;
'''◇ (Front-end)장*호'''&lt;br /&gt;
*컴포넌트 설계&lt;br /&gt;
*각 subtask별 실행코드 환경 구성&lt;br /&gt;
*실행코드의 실행 테스트 구현&lt;br /&gt;
'''◇ (Back-end)황*우'''&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
[[파일:에피메테우스_제품요구사항.png]]&lt;br /&gt;
====설계 사양====&lt;br /&gt;
* &amp;lt;strong&amp;gt;사용자가 요구한 업무에 대한 출력 제공&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 사용자는 원하는 업무를 text box에 입력할 수 있다.&lt;br /&gt;
** 입력을 제출(submit)하면 서버에서 1개 이상의 Step을 출력해준다.&lt;br /&gt;
** 각 Step은 요약(Title), 상세내용(Description), 코드(Code), 작성언어(Language)를 포함하고 있다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;코드 실행 가능&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 이전 Step의 출력이 다음 Step의 입력으로 제공되어야 한다.&lt;br /&gt;
** Step에 입력된 코드를 실행하여 Task에 대해서 수행한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;사용자가 직접 특정 단계의 코드 수정 가능&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 특정 Step의 Code를 수정할 수 있는 에디터를 제공한다.&lt;br /&gt;
** 새로 입력한 Code의 입출력 양식이 같은지 검사한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;이전 요청 저장&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 기존의 사용자가 입력한 Task에 대해서 기록한다.&lt;br /&gt;
** 이전 업무와 연결되는 이후의 업무를 우선적으로 제공한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;음성 인식을 통한 업무 입력 기능 제공&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 음성인식을 통해 사용자가 업무를 입력하면, 텍스트로 변환하여 text box에 자동으로 입력한다.&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
[[파일:에피메테우스_인프라도.jpg]]&lt;br /&gt;
* &amp;lt;strong&amp;gt;User 요청의 접근 과정&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Route53을 통해 S3 Bucket에 존재하는 정적 리소스에 접근한다.&lt;br /&gt;
** S3 Bucket에서 Server로 API 요청을 보낸다.&lt;br /&gt;
** Public Subnet 내의 Nginx EC2를 통해 Spring Boot EC2로 리버스 프록시가 진행된다.&lt;br /&gt;
** DB에 접근이 필요하다면 Private Subnet 내의 MongoDB EC2에서 DB 데이터를 받아온다.&lt;br /&gt;
** Llama에서 처리해야 하는 로직이 존재한다면 School Server로 요청을 보낸다.&lt;br /&gt;
** School Server에 존재하는 Llama FastAPI 서버에서 응답을 보낸다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;Developer의 배포 과정(Frontend)&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Source Code를 Main에 Merge한다.&lt;br /&gt;
** Github Webhook을 통해 API Gateway에 연결된 API를 호출한다.&lt;br /&gt;
** Lambda를 Trigger하여 Private Subnet 내의 Jenkins EC2로 Github Webhook의 Body를 전송한다.&lt;br /&gt;
** Frontend 수정 여부를 판별한다.&lt;br /&gt;
** Frontend의 배포 시에는 jenkins에서 빌드된 bundle을 S3 React Build Bucket에 보낸다.&lt;br /&gt;
** S3 Build Bucket에서 S3 Deploy Bucket으로 보내고, Client는 이쪽으로 접근할 수 있다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;Developer의 배포 과정(Backend)&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Source Code를 Main에 Merge한다.&lt;br /&gt;
** Github Webhook을 통해 API Gateway에 연결된 API를 호출한다.&lt;br /&gt;
** Lambda를 Trigger하여 Private Subnet 내의 Jenkins EC2로 Github Webhook의 Body를 전송한다.&lt;br /&gt;
** Backend 수정 여부를 판별한다.&lt;br /&gt;
** Jar 파일을 S3 Spring Bucket에 저장한다.&lt;br /&gt;
** CodeDeploy에서 파일을 가져와 Spring EC2에 실행한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;외부 접근 제한&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Build와 관련된 단위들은 외부에서 접근이 불가능하다.&lt;br /&gt;
** NAT Gateway를 통해 내부 단위들은 외부 인터넷에 접근가능하다.&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
* Task1: Turn on the song on Youtube&lt;br /&gt;
** Step 1. Open the web-browser&lt;br /&gt;
** Step 2. Access to YouTube.&lt;br /&gt;
** Step 3. Search for the song you want to play.&lt;br /&gt;
** Step 4. Click on the video you want to play.&lt;br /&gt;
&lt;br /&gt;
* Task2: Write a Personal Statement that fits the certain company's job opening&lt;br /&gt;
** Step 1. Highlight your relevant skills and experience.&lt;br /&gt;
** Step 2. Demonstrate your knowledge of the company and the position.&lt;br /&gt;
** Step 3. Emphasize your enthusiasm for the industry and the company.&lt;br /&gt;
** Step 4. Showcase your ability to work well in a team environment.&lt;br /&gt;
&lt;br /&gt;
* Task3: Buy the most expensive raincoat in Amazon and Coupang&lt;br /&gt;
** Step 1. Open the web-browser.&lt;br /&gt;
** Step 2. Access to Amazon or Coupang.&lt;br /&gt;
** Step 3. Search for the most expensive raincoat.&lt;br /&gt;
** Step 4. Select the raincoat and add to cart.&lt;br /&gt;
** Step 5. Proceed to checkout.&lt;br /&gt;
** Step 6. Enter shipping and billing information.&lt;br /&gt;
** Step 7. Review order summary and place order.&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
◇ System Flow Chart&lt;br /&gt;
[[파일:System Flow Chart.jpg]]&lt;br /&gt;
#Write a Task : 사용자가 Task를 작성한다.&lt;br /&gt;
#Split Task into SubTasks : 사용자가 작성한 Task를 Llama가 SubTask로 나누고 이를 서버가 파싱하여 사용자에게 SubTask로 제공한다.&lt;br /&gt;
#See the SubTasks of Task : 사용자는 서버가 분리한 SubTask들을 볼 수 있다.&lt;br /&gt;
#Click the Exec Button : 사용자가 코드 실행 버튼을 누른다.&lt;br /&gt;
#Search the Codes of each SubTasks : 서버는 각 SubTask들의 코드를 데이터베이스에서 탐색한다.&lt;br /&gt;
#Execute the Javascript Code : 서버가 탐색한 Javascript Code를 실행시킨다.&lt;br /&gt;
#Check the result of the Task : 사용자는 Task와 코드의 결과값이 일치하는지 확인한다.&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
내용&lt;br /&gt;
====포스터====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===관련사업비 내역서===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
내용&lt;/div&gt;</summary>
		<author><name>Com2312</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Sequence_Diagram1.jpg&amp;diff=9595</id>
		<title>파일:Sequence Diagram1.jpg</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Sequence_Diagram1.jpg&amp;diff=9595"/>
				<updated>2023-12-24T05:52:19Z</updated>
		
		<summary type="html">&lt;p&gt;Com2312: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Com2312</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%EC%97%90%ED%94%BC%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4&amp;diff=9594</id>
		<title>에피메테우스</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%EC%97%90%ED%94%BC%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4&amp;diff=9594"/>
				<updated>2023-12-24T05:52:02Z</updated>
		
		<summary type="html">&lt;p&gt;Com2312: /* 상세설계 내용 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : ''' 에피메테우스(LLM을 활용한 웹 기반의 업무 자동화 플랫폼)&lt;br /&gt;
&lt;br /&gt;
''' 영문 : ''' 00000000..&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
에피메테우스&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
정형구 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2023년 9월 ~ 2023년 12월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 오*영(팀장)&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 김*원&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 이*주&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 장*호&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 황*우&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
'''◇ LLM을 활용한 웹 기반의 업무 자동화 플랫폼 구축'''&lt;br /&gt;
*사용자가 제공한 업무를 실제로 실행할 수 있는 자동화 AI 플랫폼 구현이 주된 목표이다. &lt;br /&gt;
*기존 AutoGPT와 유사한 기능을 제공하도록 대형 언어 모델(LLM)을 이용해 사용자의 업무를 이루기 위한 일련의 과정을 LLM(Llama)이 생성 후 제공한다. &lt;br /&gt;
*기존 서비스와의 차이점은 AI 모델의 단점인 블랙박스 특성을 없애기 위해 업무를 수행하기 위한 각 단계에 적절한 코드를 DB에서 불러오고, 해당 코드를 실행한다는 점이다. &lt;br /&gt;
*특정 단계에 해당하는 기능이 없을 때 원하는 기능을 사용자가 직접 추가하여 실행할 수 있다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
*현재 ChatGPT의 성공에 힘입어 LLM을 이용하여 업무를 자동화하는 시도가 존재한다.&lt;br /&gt;
*LLM을 이용하여 모든 업무를 자동화하는 것은 현재 수준으로는 부족하다는 보고가 있다.&lt;br /&gt;
*이러한 배경에 힘입어 기존 서비스의 한계점을 극복하기 위해 코드 단위로 업무를 실행하는 웹 기반의 업무 자동화 플랫폼을 구현하고자 한다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
◇ Frontend&lt;br /&gt;
*접근성을 고려한 UI 개발&lt;br /&gt;
*사용자가 작성한 코드를 웹 환경에서 실행시키는 기능 개발&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ Backend&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ AI&lt;br /&gt;
*LLM(Large Language Model)을 이용하여 사용자 목표 달성을 위한 업무를 자동으로 분할하는 기능 개발&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
* 다양한 Benchmark에 대하여 여러 거대 언어 모델들의 성능을 비교&lt;br /&gt;
[[파일:Benchmark.jpg|700px]]&lt;br /&gt;
* 하지만 해당 Benchmark에는 구현하고자 하는 기능을 담고 있지 않음&lt;br /&gt;
* 해당 Benchmark에서 Llama-2(13B)을 사용&lt;br /&gt;
*특허조사 및 특허 전략 분석&lt;br /&gt;
&lt;br /&gt;
====기술 로드맵====&lt;br /&gt;
* Frontend&lt;br /&gt;
**Figma&lt;br /&gt;
**React&lt;br /&gt;
**web worker&lt;br /&gt;
*Backend&lt;br /&gt;
**Spring Boot&lt;br /&gt;
**AWS EC2&lt;br /&gt;
**AWS VPC&lt;br /&gt;
**AWS Lambda&lt;br /&gt;
**Jenkins&lt;br /&gt;
**Github Webhook&lt;br /&gt;
**MongoDB&lt;br /&gt;
**Docker&lt;br /&gt;
**AWS Route53&lt;br /&gt;
*AI&lt;br /&gt;
**Llama-13B&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
*경쟁제품 조사 비교&lt;br /&gt;
{| cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot; &amp;quot;text-align&amp;quot;=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 서비스&lt;br /&gt;
| 사용자가 요구사항을 수행하기 위해 Sub task로 분할&lt;br /&gt;
| Subtask를 실행&lt;br /&gt;
| 새로운 요구사항을 구현&lt;br /&gt;
|-&lt;br /&gt;
| ChatGPT&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| WebShop&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| ALFWorld&lt;br /&gt;
| YES &lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| AgentGPT&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| BabyAGI&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Jarvis&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Epimetheus&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
*마케팅 전략 제시&lt;br /&gt;
**코드를 작성 할 수 있는 개발자들에게 LLM을 기반으로 자동화 할 수 있는 점을 강조&lt;br /&gt;
**본 서비스에 필요로 하는 기능을 직접 추가할 수 있음을 강조&lt;br /&gt;
**AI 혹은 다른 사람이 작성해 놓은 비슷한 TASK를 기반으로 기능을 추가할 수 있음을 강조&lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
내용&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
내용&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
'''◇ (AI)오*영(팀장)'''&lt;br /&gt;
  &lt;br /&gt;
'''◇ (Back-end)김*원'''&lt;br /&gt;
&lt;br /&gt;
'''◇ (Front-end)이*주'''&lt;br /&gt;
*UI/UX&lt;br /&gt;
*플랫폼 페이지 구현&lt;br /&gt;
*Back-end와의 SSE통신코드 작성&lt;br /&gt;
'''◇ (Front-end)장*호'''&lt;br /&gt;
*컴포넌트 설계&lt;br /&gt;
*각 subtask별 실행코드 환경 구성&lt;br /&gt;
*실행코드의 실행 테스트 구현&lt;br /&gt;
'''◇ (Back-end)황*우'''&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
[[파일:에피메테우스_제품요구사항.png]]&lt;br /&gt;
====설계 사양====&lt;br /&gt;
* &amp;lt;strong&amp;gt;사용자가 요구한 업무에 대한 출력 제공&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 사용자는 원하는 업무를 text box에 입력할 수 있다.&lt;br /&gt;
** 입력을 제출(submit)하면 서버에서 1개 이상의 Step을 출력해준다.&lt;br /&gt;
** 각 Step은 요약(Title), 상세내용(Description), 코드(Code), 작성언어(Language)를 포함하고 있다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;코드 실행 가능&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 이전 Step의 출력이 다음 Step의 입력으로 제공되어야 한다.&lt;br /&gt;
** Step에 입력된 코드를 실행하여 Task에 대해서 수행한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;사용자가 직접 특정 단계의 코드 수정 가능&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 특정 Step의 Code를 수정할 수 있는 에디터를 제공한다.&lt;br /&gt;
** 새로 입력한 Code의 입출력 양식이 같은지 검사한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;이전 요청 저장&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 기존의 사용자가 입력한 Task에 대해서 기록한다.&lt;br /&gt;
** 이전 업무와 연결되는 이후의 업무를 우선적으로 제공한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;음성 인식을 통한 업무 입력 기능 제공&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 음성인식을 통해 사용자가 업무를 입력하면, 텍스트로 변환하여 text box에 자동으로 입력한다.&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
[[파일:에피메테우스_인프라도.jpg]]&lt;br /&gt;
* &amp;lt;strong&amp;gt;User 요청의 접근 과정&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Route53을 통해 S3 Bucket에 존재하는 정적 리소스에 접근한다.&lt;br /&gt;
** S3 Bucket에서 Server로 API 요청을 보낸다.&lt;br /&gt;
** Public Subnet 내의 Nginx EC2를 통해 Spring Boot EC2로 리버스 프록시가 진행된다.&lt;br /&gt;
** DB에 접근이 필요하다면 Private Subnet 내의 MongoDB EC2에서 DB 데이터를 받아온다.&lt;br /&gt;
** Llama에서 처리해야 하는 로직이 존재한다면 School Server로 요청을 보낸다.&lt;br /&gt;
** School Server에 존재하는 Llama FastAPI 서버에서 응답을 보낸다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;Developer의 배포 과정(Frontend)&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Source Code를 Main에 Merge한다.&lt;br /&gt;
** Github Webhook을 통해 API Gateway에 연결된 API를 호출한다.&lt;br /&gt;
** Lambda를 Trigger하여 Private Subnet 내의 Jenkins EC2로 Github Webhook의 Body를 전송한다.&lt;br /&gt;
** Frontend 수정 여부를 판별한다.&lt;br /&gt;
** Frontend의 배포 시에는 jenkins에서 빌드된 bundle을 S3 React Build Bucket에 보낸다.&lt;br /&gt;
** S3 Build Bucket에서 S3 Deploy Bucket으로 보내고, Client는 이쪽으로 접근할 수 있다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;Developer의 배포 과정(Backend)&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Source Code를 Main에 Merge한다.&lt;br /&gt;
** Github Webhook을 통해 API Gateway에 연결된 API를 호출한다.&lt;br /&gt;
** Lambda를 Trigger하여 Private Subnet 내의 Jenkins EC2로 Github Webhook의 Body를 전송한다.&lt;br /&gt;
** Backend 수정 여부를 판별한다.&lt;br /&gt;
** Jar 파일을 S3 Spring Bucket에 저장한다.&lt;br /&gt;
** CodeDeploy에서 파일을 가져와 Spring EC2에 실행한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;외부 접근 제한&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Build와 관련된 단위들은 외부에서 접근이 불가능하다.&lt;br /&gt;
** NAT Gateway를 통해 내부 단위들은 외부 인터넷에 접근가능하다.&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
* Task1: Turn on the song on Youtube&lt;br /&gt;
** Step 1. Open the web-browser&lt;br /&gt;
** Step 2. Access to YouTube.&lt;br /&gt;
** Step 3. Search for the song you want to play.&lt;br /&gt;
** Step 4. Click on the video you want to play.&lt;br /&gt;
&lt;br /&gt;
* Task2: Write a Personal Statement that fits the certain company's job opening&lt;br /&gt;
** Step 1. Highlight your relevant skills and experience.&lt;br /&gt;
** Step 2. Demonstrate your knowledge of the company and the position.&lt;br /&gt;
** Step 3. Emphasize your enthusiasm for the industry and the company.&lt;br /&gt;
** Step 4. Showcase your ability to work well in a team environment.&lt;br /&gt;
&lt;br /&gt;
* Task3: Buy the most expensive raincoat in Amazon and Coupang&lt;br /&gt;
** Step 1. Open the web-browser.&lt;br /&gt;
** Step 2. Access to Amazon or Coupang.&lt;br /&gt;
** Step 3. Search for the most expensive raincoat.&lt;br /&gt;
** Step 4. Select the raincoat and add to cart.&lt;br /&gt;
** Step 5. Proceed to checkout.&lt;br /&gt;
** Step 6. Enter shipping and billing information.&lt;br /&gt;
** Step 7. Review order summary and place order.&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
◇ System Flow Chart&lt;br /&gt;
[[파일:System Flow Chart.jpg]]&lt;br /&gt;
#Write a Task : 사용자가 Task를 작성한다.&lt;br /&gt;
#Split Task into SubTasks : 사용자가 작성한 Task를 Llama가 SubTask로 나누고 이를 서버가 파싱하여 사용자에게 SubTask로 제공한다.&lt;br /&gt;
#See the SubTasks of Task : 사용자는 서버가 분리한 SubTask들을 볼 수 있다.&lt;br /&gt;
#Click the Exec Button : 사용자가 코드 실행 버튼을 누른다.&lt;br /&gt;
#Search the Codes of each SubTasks : 서버는 각 SubTask들의 코드를 데이터베이스에서 탐색한다.&lt;br /&gt;
#Execute the Javascript Code : 서버가 탐색한 Javascript Code를 실행시킨다.&lt;br /&gt;
#Check the result of the Task : 사용자는 Task와 코드의 결과값이 일치하는지 확인한다.&lt;br /&gt;
&lt;br /&gt;
===순차도===&lt;br /&gt;
*사용자의 Task에 대한 SubTask 제공&lt;br /&gt;
[[파일:Sequence Diagram1.jpg]]&lt;br /&gt;
*사용자가 직접 특정 단계의 코드 수정 가능&lt;br /&gt;
[[파일:Sequence Diagram2.jpg]]&lt;br /&gt;
*코드 실행&lt;br /&gt;
[[파일:Sequence Diagram3.jpg]]&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
내용&lt;br /&gt;
====포스터====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===관련사업비 내역서===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
내용&lt;/div&gt;</summary>
		<author><name>Com2312</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%EC%97%90%ED%94%BC%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4&amp;diff=9593</id>
		<title>에피메테우스</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%EC%97%90%ED%94%BC%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4&amp;diff=9593"/>
				<updated>2023-12-24T05:48:47Z</updated>
		
		<summary type="html">&lt;p&gt;Com2312: /* 상세설계 내용 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : ''' 에피메테우스(LLM을 활용한 웹 기반의 업무 자동화 플랫폼)&lt;br /&gt;
&lt;br /&gt;
''' 영문 : ''' 00000000..&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
에피메테우스&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
정형구 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2023년 9월 ~ 2023년 12월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 오*영(팀장)&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 김*원&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 이*주&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 장*호&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 황*우&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
'''◇ LLM을 활용한 웹 기반의 업무 자동화 플랫폼 구축'''&lt;br /&gt;
*사용자가 제공한 업무를 실제로 실행할 수 있는 자동화 AI 플랫폼 구현이 주된 목표이다. &lt;br /&gt;
*기존 AutoGPT와 유사한 기능을 제공하도록 대형 언어 모델(LLM)을 이용해 사용자의 업무를 이루기 위한 일련의 과정을 LLM(Llama)이 생성 후 제공한다. &lt;br /&gt;
*기존 서비스와의 차이점은 AI 모델의 단점인 블랙박스 특성을 없애기 위해 업무를 수행하기 위한 각 단계에 적절한 코드를 DB에서 불러오고, 해당 코드를 실행한다는 점이다. &lt;br /&gt;
*특정 단계에 해당하는 기능이 없을 때 원하는 기능을 사용자가 직접 추가하여 실행할 수 있다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
*현재 ChatGPT의 성공에 힘입어 LLM을 이용하여 업무를 자동화하는 시도가 존재한다.&lt;br /&gt;
*LLM을 이용하여 모든 업무를 자동화하는 것은 현재 수준으로는 부족하다는 보고가 있다.&lt;br /&gt;
*이러한 배경에 힘입어 기존 서비스의 한계점을 극복하기 위해 코드 단위로 업무를 실행하는 웹 기반의 업무 자동화 플랫폼을 구현하고자 한다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
◇ Frontend&lt;br /&gt;
*접근성을 고려한 UI 개발&lt;br /&gt;
*사용자가 작성한 코드를 웹 환경에서 실행시키는 기능 개발&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ Backend&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ AI&lt;br /&gt;
*LLM(Large Language Model)을 이용하여 사용자 목표 달성을 위한 업무를 자동으로 분할하는 기능 개발&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
* 다양한 Benchmark에 대하여 여러 거대 언어 모델들의 성능을 비교&lt;br /&gt;
[[파일:Benchmark.jpg|700px]]&lt;br /&gt;
* 하지만 해당 Benchmark에는 구현하고자 하는 기능을 담고 있지 않음&lt;br /&gt;
* 해당 Benchmark에서 Llama-2(13B)을 사용&lt;br /&gt;
*특허조사 및 특허 전략 분석&lt;br /&gt;
&lt;br /&gt;
====기술 로드맵====&lt;br /&gt;
* Frontend&lt;br /&gt;
**Figma&lt;br /&gt;
**React&lt;br /&gt;
**web worker&lt;br /&gt;
*Backend&lt;br /&gt;
**Spring Boot&lt;br /&gt;
**AWS EC2&lt;br /&gt;
**AWS VPC&lt;br /&gt;
**AWS Lambda&lt;br /&gt;
**Jenkins&lt;br /&gt;
**Github Webhook&lt;br /&gt;
**MongoDB&lt;br /&gt;
**Docker&lt;br /&gt;
**AWS Route53&lt;br /&gt;
*AI&lt;br /&gt;
**Llama-13B&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
*경쟁제품 조사 비교&lt;br /&gt;
{| cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot; &amp;quot;text-align&amp;quot;=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 서비스&lt;br /&gt;
| 사용자가 요구사항을 수행하기 위해 Sub task로 분할&lt;br /&gt;
| Subtask를 실행&lt;br /&gt;
| 새로운 요구사항을 구현&lt;br /&gt;
|-&lt;br /&gt;
| ChatGPT&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| WebShop&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| ALFWorld&lt;br /&gt;
| YES &lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| AgentGPT&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| BabyAGI&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Jarvis&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Epimetheus&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
*마케팅 전략 제시&lt;br /&gt;
**코드를 작성 할 수 있는 개발자들에게 LLM을 기반으로 자동화 할 수 있는 점을 강조&lt;br /&gt;
**본 서비스에 필요로 하는 기능을 직접 추가할 수 있음을 강조&lt;br /&gt;
**AI 혹은 다른 사람이 작성해 놓은 비슷한 TASK를 기반으로 기능을 추가할 수 있음을 강조&lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
내용&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
내용&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
'''◇ (AI)오*영(팀장)'''&lt;br /&gt;
  &lt;br /&gt;
'''◇ (Back-end)김*원'''&lt;br /&gt;
&lt;br /&gt;
'''◇ (Front-end)이*주'''&lt;br /&gt;
*UI/UX&lt;br /&gt;
*플랫폼 페이지 구현&lt;br /&gt;
*Back-end와의 SSE통신코드 작성&lt;br /&gt;
'''◇ (Front-end)장*호'''&lt;br /&gt;
*컴포넌트 설계&lt;br /&gt;
*각 subtask별 실행코드 환경 구성&lt;br /&gt;
*실행코드의 실행 테스트 구현&lt;br /&gt;
'''◇ (Back-end)황*우'''&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
[[파일:에피메테우스_제품요구사항.png]]&lt;br /&gt;
====설계 사양====&lt;br /&gt;
* &amp;lt;strong&amp;gt;사용자가 요구한 업무에 대한 출력 제공&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 사용자는 원하는 업무를 text box에 입력할 수 있다.&lt;br /&gt;
** 입력을 제출(submit)하면 서버에서 1개 이상의 Step을 출력해준다.&lt;br /&gt;
** 각 Step은 요약(Title), 상세내용(Description), 코드(Code), 작성언어(Language)를 포함하고 있다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;코드 실행 가능&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 이전 Step의 출력이 다음 Step의 입력으로 제공되어야 한다.&lt;br /&gt;
** Step에 입력된 코드를 실행하여 Task에 대해서 수행한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;사용자가 직접 특정 단계의 코드 수정 가능&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 특정 Step의 Code를 수정할 수 있는 에디터를 제공한다.&lt;br /&gt;
** 새로 입력한 Code의 입출력 양식이 같은지 검사한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;이전 요청 저장&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 기존의 사용자가 입력한 Task에 대해서 기록한다.&lt;br /&gt;
** 이전 업무와 연결되는 이후의 업무를 우선적으로 제공한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;음성 인식을 통한 업무 입력 기능 제공&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 음성인식을 통해 사용자가 업무를 입력하면, 텍스트로 변환하여 text box에 자동으로 입력한다.&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
[[파일:에피메테우스_인프라도.jpg]]&lt;br /&gt;
* &amp;lt;strong&amp;gt;User 요청의 접근 과정&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Route53을 통해 S3 Bucket에 존재하는 정적 리소스에 접근한다.&lt;br /&gt;
** S3 Bucket에서 Server로 API 요청을 보낸다.&lt;br /&gt;
** Public Subnet 내의 Nginx EC2를 통해 Spring Boot EC2로 리버스 프록시가 진행된다.&lt;br /&gt;
** DB에 접근이 필요하다면 Private Subnet 내의 MongoDB EC2에서 DB 데이터를 받아온다.&lt;br /&gt;
** Llama에서 처리해야 하는 로직이 존재한다면 School Server로 요청을 보낸다.&lt;br /&gt;
** School Server에 존재하는 Llama FastAPI 서버에서 응답을 보낸다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;Developer의 배포 과정(Frontend)&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Source Code를 Main에 Merge한다.&lt;br /&gt;
** Github Webhook을 통해 API Gateway에 연결된 API를 호출한다.&lt;br /&gt;
** Lambda를 Trigger하여 Private Subnet 내의 Jenkins EC2로 Github Webhook의 Body를 전송한다.&lt;br /&gt;
** Frontend 수정 여부를 판별한다.&lt;br /&gt;
** Frontend의 배포 시에는 jenkins에서 빌드된 bundle을 S3 React Build Bucket에 보낸다.&lt;br /&gt;
** S3 Build Bucket에서 S3 Deploy Bucket으로 보내고, Client는 이쪽으로 접근할 수 있다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;Developer의 배포 과정(Backend)&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Source Code를 Main에 Merge한다.&lt;br /&gt;
** Github Webhook을 통해 API Gateway에 연결된 API를 호출한다.&lt;br /&gt;
** Lambda를 Trigger하여 Private Subnet 내의 Jenkins EC2로 Github Webhook의 Body를 전송한다.&lt;br /&gt;
** Backend 수정 여부를 판별한다.&lt;br /&gt;
** Jar 파일을 S3 Spring Bucket에 저장한다.&lt;br /&gt;
** CodeDeploy에서 파일을 가져와 Spring EC2에 실행한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;외부 접근 제한&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Build와 관련된 단위들은 외부에서 접근이 불가능하다.&lt;br /&gt;
** NAT Gateway를 통해 내부 단위들은 외부 인터넷에 접근가능하다.&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
* Task1: Turn on the song on Youtube&lt;br /&gt;
** Step 1. Open the web-browser&lt;br /&gt;
** Step 2. Access to YouTube.&lt;br /&gt;
** Step 3. Search for the song you want to play.&lt;br /&gt;
** Step 4. Click on the video you want to play.&lt;br /&gt;
&lt;br /&gt;
* Task2: Write a Personal Statement that fits the certain company's job opening&lt;br /&gt;
** Step 1. Highlight your relevant skills and experience.&lt;br /&gt;
** Step 2. Demonstrate your knowledge of the company and the position.&lt;br /&gt;
** Step 3. Emphasize your enthusiasm for the industry and the company.&lt;br /&gt;
** Step 4. Showcase your ability to work well in a team environment.&lt;br /&gt;
&lt;br /&gt;
* Task3: Buy the most expensive raincoat in Amazon and Coupang&lt;br /&gt;
** Step 1. Open the web-browser.&lt;br /&gt;
** Step 2. Access to Amazon or Coupang.&lt;br /&gt;
** Step 3. Search for the most expensive raincoat.&lt;br /&gt;
** Step 4. Select the raincoat and add to cart.&lt;br /&gt;
** Step 5. Proceed to checkout.&lt;br /&gt;
** Step 6. Enter shipping and billing information.&lt;br /&gt;
** Step 7. Review order summary and place order.&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
◇ System Flow Chart&lt;br /&gt;
[[파일:System Flow Chart.jpg]]&lt;br /&gt;
#Write a Task : 사용자가 Task를 작성한다.&lt;br /&gt;
#Split Task into SubTasks : 사용자가 작성한 Task를 Llama가 SubTask로 나누고 이를 서버가 파싱하여 사용자에게 SubTask로 제공한다.&lt;br /&gt;
#See the SubTasks of Task : 사용자는 서버가 분리한 SubTask들을 볼 수 있다.&lt;br /&gt;
#Click the Exec Button : 사용자가 코드 실행 버튼을 누른다.&lt;br /&gt;
#Search the Codes of each SubTasks : 서버는 각 SubTask들의 코드를 데이터베이스에서 탐색한다.&lt;br /&gt;
#Execute the Javascript Code : 서버가 탐색한 Javascript Code를 실행시킨다.&lt;br /&gt;
#Check the result of the Task : 사용자는 Task와 코드의 결과값이 일치하는지 확인한다.&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
내용&lt;br /&gt;
====포스터====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===관련사업비 내역서===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
내용&lt;/div&gt;</summary>
		<author><name>Com2312</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%EC%97%90%ED%94%BC%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4&amp;diff=9592</id>
		<title>에피메테우스</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%EC%97%90%ED%94%BC%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4&amp;diff=9592"/>
				<updated>2023-12-24T05:47:43Z</updated>
		
		<summary type="html">&lt;p&gt;Com2312: /* 이론적 계산 및 시뮬레이션 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : ''' 에피메테우스(LLM을 활용한 웹 기반의 업무 자동화 플랫폼)&lt;br /&gt;
&lt;br /&gt;
''' 영문 : ''' 00000000..&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
에피메테우스&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
정형구 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2023년 9월 ~ 2023년 12월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 오*영(팀장)&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 김*원&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 이*주&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 장*호&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 황*우&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
'''◇ LLM을 활용한 웹 기반의 업무 자동화 플랫폼 구축'''&lt;br /&gt;
*사용자가 제공한 업무를 실제로 실행할 수 있는 자동화 AI 플랫폼 구현이 주된 목표이다. &lt;br /&gt;
*기존 AutoGPT와 유사한 기능을 제공하도록 대형 언어 모델(LLM)을 이용해 사용자의 업무를 이루기 위한 일련의 과정을 LLM(Llama)이 생성 후 제공한다. &lt;br /&gt;
*기존 서비스와의 차이점은 AI 모델의 단점인 블랙박스 특성을 없애기 위해 업무를 수행하기 위한 각 단계에 적절한 코드를 DB에서 불러오고, 해당 코드를 실행한다는 점이다. &lt;br /&gt;
*특정 단계에 해당하는 기능이 없을 때 원하는 기능을 사용자가 직접 추가하여 실행할 수 있다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
*현재 ChatGPT의 성공에 힘입어 LLM을 이용하여 업무를 자동화하는 시도가 존재한다.&lt;br /&gt;
*LLM을 이용하여 모든 업무를 자동화하는 것은 현재 수준으로는 부족하다는 보고가 있다.&lt;br /&gt;
*이러한 배경에 힘입어 기존 서비스의 한계점을 극복하기 위해 코드 단위로 업무를 실행하는 웹 기반의 업무 자동화 플랫폼을 구현하고자 한다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
◇ Frontend&lt;br /&gt;
*접근성을 고려한 UI 개발&lt;br /&gt;
*사용자가 작성한 코드를 웹 환경에서 실행시키는 기능 개발&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ Backend&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ AI&lt;br /&gt;
*LLM(Large Language Model)을 이용하여 사용자 목표 달성을 위한 업무를 자동으로 분할하는 기능 개발&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
* 다양한 Benchmark에 대하여 여러 거대 언어 모델들의 성능을 비교&lt;br /&gt;
[[파일:Benchmark.jpg|700px]]&lt;br /&gt;
* 하지만 해당 Benchmark에는 구현하고자 하는 기능을 담고 있지 않음&lt;br /&gt;
* 해당 Benchmark에서 Llama-2(13B)을 사용&lt;br /&gt;
*특허조사 및 특허 전략 분석&lt;br /&gt;
&lt;br /&gt;
====기술 로드맵====&lt;br /&gt;
* Frontend&lt;br /&gt;
**Figma&lt;br /&gt;
**React&lt;br /&gt;
**web worker&lt;br /&gt;
*Backend&lt;br /&gt;
**Spring Boot&lt;br /&gt;
**AWS EC2&lt;br /&gt;
**AWS VPC&lt;br /&gt;
**AWS Lambda&lt;br /&gt;
**Jenkins&lt;br /&gt;
**Github Webhook&lt;br /&gt;
**MongoDB&lt;br /&gt;
**Docker&lt;br /&gt;
**AWS Route53&lt;br /&gt;
*AI&lt;br /&gt;
**Llama-13B&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
*경쟁제품 조사 비교&lt;br /&gt;
{| cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot; &amp;quot;text-align&amp;quot;=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 서비스&lt;br /&gt;
| 사용자가 요구사항을 수행하기 위해 Sub task로 분할&lt;br /&gt;
| Subtask를 실행&lt;br /&gt;
| 새로운 요구사항을 구현&lt;br /&gt;
|-&lt;br /&gt;
| ChatGPT&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| WebShop&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| ALFWorld&lt;br /&gt;
| YES &lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| AgentGPT&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| BabyAGI&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Jarvis&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Epimetheus&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
*마케팅 전략 제시&lt;br /&gt;
**코드를 작성 할 수 있는 개발자들에게 LLM을 기반으로 자동화 할 수 있는 점을 강조&lt;br /&gt;
**본 서비스에 필요로 하는 기능을 직접 추가할 수 있음을 강조&lt;br /&gt;
**AI 혹은 다른 사람이 작성해 놓은 비슷한 TASK를 기반으로 기능을 추가할 수 있음을 강조&lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
내용&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
내용&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
'''◇ (AI)오*영(팀장)'''&lt;br /&gt;
  &lt;br /&gt;
'''◇ (Back-end)김*원'''&lt;br /&gt;
&lt;br /&gt;
'''◇ (Front-end)이*주'''&lt;br /&gt;
*UI/UX&lt;br /&gt;
*플랫폼 페이지 구현&lt;br /&gt;
*Back-end와의 SSE통신코드 작성&lt;br /&gt;
'''◇ (Front-end)장*호'''&lt;br /&gt;
*컴포넌트 설계&lt;br /&gt;
*각 subtask별 실행코드 환경 구성&lt;br /&gt;
*실행코드의 실행 테스트 구현&lt;br /&gt;
'''◇ (Back-end)황*우'''&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
[[파일:에피메테우스_제품요구사항.png]]&lt;br /&gt;
====설계 사양====&lt;br /&gt;
* &amp;lt;strong&amp;gt;사용자가 요구한 업무에 대한 출력 제공&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 사용자는 원하는 업무를 text box에 입력할 수 있다.&lt;br /&gt;
** 입력을 제출(submit)하면 서버에서 1개 이상의 Step을 출력해준다.&lt;br /&gt;
** 각 Step은 요약(Title), 상세내용(Description), 코드(Code), 작성언어(Language)를 포함하고 있다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;코드 실행 가능&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 이전 Step의 출력이 다음 Step의 입력으로 제공되어야 한다.&lt;br /&gt;
** Step에 입력된 코드를 실행하여 Task에 대해서 수행한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;사용자가 직접 특정 단계의 코드 수정 가능&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 특정 Step의 Code를 수정할 수 있는 에디터를 제공한다.&lt;br /&gt;
** 새로 입력한 Code의 입출력 양식이 같은지 검사한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;이전 요청 저장&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 기존의 사용자가 입력한 Task에 대해서 기록한다.&lt;br /&gt;
** 이전 업무와 연결되는 이후의 업무를 우선적으로 제공한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;음성 인식을 통한 업무 입력 기능 제공&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 음성인식을 통해 사용자가 업무를 입력하면, 텍스트로 변환하여 text box에 자동으로 입력한다.&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
[[파일:에피메테우스_인프라도.jpg]]&lt;br /&gt;
* &amp;lt;strong&amp;gt;User 요청의 접근 과정&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Route53을 통해 S3 Bucket에 존재하는 정적 리소스에 접근한다.&lt;br /&gt;
** S3 Bucket에서 Server로 API 요청을 보낸다.&lt;br /&gt;
** Public Subnet 내의 Nginx EC2를 통해 Spring Boot EC2로 리버스 프록시가 진행된다.&lt;br /&gt;
** DB에 접근이 필요하다면 Private Subnet 내의 MongoDB EC2에서 DB 데이터를 받아온다.&lt;br /&gt;
** Llama에서 처리해야 하는 로직이 존재한다면 School Server로 요청을 보낸다.&lt;br /&gt;
** School Server에 존재하는 Llama FastAPI 서버에서 응답을 보낸다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;Developer의 배포 과정(Frontend)&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Source Code를 Main에 Merge한다.&lt;br /&gt;
** Github Webhook을 통해 API Gateway에 연결된 API를 호출한다.&lt;br /&gt;
** Lambda를 Trigger하여 Private Subnet 내의 Jenkins EC2로 Github Webhook의 Body를 전송한다.&lt;br /&gt;
** Frontend 수정 여부를 판별한다.&lt;br /&gt;
** Frontend의 배포 시에는 jenkins에서 빌드된 bundle을 S3 React Build Bucket에 보낸다.&lt;br /&gt;
** S3 Build Bucket에서 S3 Deploy Bucket으로 보내고, Client는 이쪽으로 접근할 수 있다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;Developer의 배포 과정(Backend)&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Source Code를 Main에 Merge한다.&lt;br /&gt;
** Github Webhook을 통해 API Gateway에 연결된 API를 호출한다.&lt;br /&gt;
** Lambda를 Trigger하여 Private Subnet 내의 Jenkins EC2로 Github Webhook의 Body를 전송한다.&lt;br /&gt;
** Backend 수정 여부를 판별한다.&lt;br /&gt;
** Jar 파일을 S3 Spring Bucket에 저장한다.&lt;br /&gt;
** CodeDeploy에서 파일을 가져와 Spring EC2에 실행한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;외부 접근 제한&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Build와 관련된 단위들은 외부에서 접근이 불가능하다.&lt;br /&gt;
** NAT Gateway를 통해 내부 단위들은 외부 인터넷에 접근가능하다.&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
* Task1: Turn on the song on Youtube&lt;br /&gt;
** Step 1. Open the web-browser&lt;br /&gt;
** Step 2. Access to YouTube.&lt;br /&gt;
** Step 3. Search for the song you want to play.&lt;br /&gt;
** Step 4. Click on the video you want to play.&lt;br /&gt;
&lt;br /&gt;
* Task2: Write a Personal Statement that fits the certain company's job opening&lt;br /&gt;
** Step 1. Highlight your relevant skills and experience.&lt;br /&gt;
** Step 2. Demonstrate your knowledge of the company and the position.&lt;br /&gt;
** Step 3. Emphasize your enthusiasm for the industry and the company.&lt;br /&gt;
** Step 4. Showcase your ability to work well in a team environment.&lt;br /&gt;
&lt;br /&gt;
* Task3: Buy the most expensive raincoat in Amazon and Coupang&lt;br /&gt;
** Step 1. Open the web-browser.&lt;br /&gt;
** Step 2. Access to Amazon or Coupang.&lt;br /&gt;
** Step 3. Search for the most expensive raincoat.&lt;br /&gt;
** Step 4. Select the raincoat and add to cart.&lt;br /&gt;
** Step 5. Proceed to checkout.&lt;br /&gt;
** Step 6. Enter shipping and billing information.&lt;br /&gt;
** Step 7. Review order summary and place order.&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
◇ 기능별 상세 요구사항&lt;br /&gt;
* 사용자가 요구한 업무에 대한 출력 제공&lt;br /&gt;
** 사용자는 원하는 업무를 text box에 입력할 수 있다.&lt;br /&gt;
** 입력을 제출하면 서버에서 1개 이상의 Step을 출력해준다.&lt;br /&gt;
** 각 Step은 요약(Title), 상세내용(Description), 코드(Code), 작성언어(Language)를 포함하고 있다.&lt;br /&gt;
&lt;br /&gt;
* 코드 실행 기능&lt;br /&gt;
** 이전 Step의 출력이 다음 Step의 입력으로 제공되어야 한다.&lt;br /&gt;
** Step에 입력된 코드를 실행하여 Task에 대하여 수행한다.&lt;br /&gt;
&lt;br /&gt;
* 사용자가 직접 특정 단계의 코드 수정 가능&lt;br /&gt;
** 특정 Step의 Code를 수정할 수 있는 에디터를 제공한다.&lt;br /&gt;
** 새로 입력한 Code의 입출력 양식이 같은지 검사한다.&lt;br /&gt;
&lt;br /&gt;
* 이전 요청 저장&lt;br /&gt;
** 기존의 사용자가 입력한 Task에 대해서 기록한다.&lt;br /&gt;
** 이전 업무와 연결되는 이후의 업무를 우선적으로 제공한다.&lt;br /&gt;
&lt;br /&gt;
* 음성 인식을 통한 업무 입력 기능 제공&lt;br /&gt;
** 음성인식을 통해 사용자가 업무를 입력하면, 텍스트로 변환하여 text box에 자동으로 입력한다.&lt;br /&gt;
&lt;br /&gt;
◇ System Flow Chart&lt;br /&gt;
[[파일:System Flow Chart.jpg]]&lt;br /&gt;
#Write a Task : 사용자가 Task를 작성한다.&lt;br /&gt;
#Split Task into SubTasks : 사용자가 작성한 Task를 Llama가 SubTask로 나누고 이를 서버가 파싱하여 사용자에게 SubTask로 제공한다.&lt;br /&gt;
#See the SubTasks of Task : 사용자는 서버가 분리한 SubTask들을 볼 수 있다.&lt;br /&gt;
#Click the Exec Button : 사용자가 코드 실행 버튼을 누른다.&lt;br /&gt;
#Search the Codes of each SubTasks : 서버는 각 SubTask들의 코드를 데이터베이스에서 탐색한다.&lt;br /&gt;
#Execute the Javascript Code : 서버가 탐색한 Javascript Code를 실행시킨다.&lt;br /&gt;
#Check the result of the Task : 사용자는 Task와 코드의 결과값이 일치하는지 확인한다.&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
내용&lt;br /&gt;
====포스터====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===관련사업비 내역서===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
내용&lt;/div&gt;</summary>
		<author><name>Com2312</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%EC%97%90%ED%94%BC%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4&amp;diff=9591</id>
		<title>에피메테우스</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%EC%97%90%ED%94%BC%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4&amp;diff=9591"/>
				<updated>2023-12-24T05:47:24Z</updated>
		
		<summary type="html">&lt;p&gt;Com2312: /* 이론적 계산 및 시뮬레이션 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : ''' 에피메테우스(LLM을 활용한 웹 기반의 업무 자동화 플랫폼)&lt;br /&gt;
&lt;br /&gt;
''' 영문 : ''' 00000000..&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
에피메테우스&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
정형구 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2023년 9월 ~ 2023년 12월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 오*영(팀장)&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 김*원&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 이*주&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 장*호&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 황*우&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
'''◇ LLM을 활용한 웹 기반의 업무 자동화 플랫폼 구축'''&lt;br /&gt;
*사용자가 제공한 업무를 실제로 실행할 수 있는 자동화 AI 플랫폼 구현이 주된 목표이다. &lt;br /&gt;
*기존 AutoGPT와 유사한 기능을 제공하도록 대형 언어 모델(LLM)을 이용해 사용자의 업무를 이루기 위한 일련의 과정을 LLM(Llama)이 생성 후 제공한다. &lt;br /&gt;
*기존 서비스와의 차이점은 AI 모델의 단점인 블랙박스 특성을 없애기 위해 업무를 수행하기 위한 각 단계에 적절한 코드를 DB에서 불러오고, 해당 코드를 실행한다는 점이다. &lt;br /&gt;
*특정 단계에 해당하는 기능이 없을 때 원하는 기능을 사용자가 직접 추가하여 실행할 수 있다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
*현재 ChatGPT의 성공에 힘입어 LLM을 이용하여 업무를 자동화하는 시도가 존재한다.&lt;br /&gt;
*LLM을 이용하여 모든 업무를 자동화하는 것은 현재 수준으로는 부족하다는 보고가 있다.&lt;br /&gt;
*이러한 배경에 힘입어 기존 서비스의 한계점을 극복하기 위해 코드 단위로 업무를 실행하는 웹 기반의 업무 자동화 플랫폼을 구현하고자 한다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
◇ Frontend&lt;br /&gt;
*접근성을 고려한 UI 개발&lt;br /&gt;
*사용자가 작성한 코드를 웹 환경에서 실행시키는 기능 개발&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ Backend&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ AI&lt;br /&gt;
*LLM(Large Language Model)을 이용하여 사용자 목표 달성을 위한 업무를 자동으로 분할하는 기능 개발&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
* 다양한 Benchmark에 대하여 여러 거대 언어 모델들의 성능을 비교&lt;br /&gt;
[[파일:Benchmark.jpg|700px]]&lt;br /&gt;
* 하지만 해당 Benchmark에는 구현하고자 하는 기능을 담고 있지 않음&lt;br /&gt;
* 해당 Benchmark에서 Llama-2(13B)을 사용&lt;br /&gt;
*특허조사 및 특허 전략 분석&lt;br /&gt;
&lt;br /&gt;
====기술 로드맵====&lt;br /&gt;
* Frontend&lt;br /&gt;
**Figma&lt;br /&gt;
**React&lt;br /&gt;
**web worker&lt;br /&gt;
*Backend&lt;br /&gt;
**Spring Boot&lt;br /&gt;
**AWS EC2&lt;br /&gt;
**AWS VPC&lt;br /&gt;
**AWS Lambda&lt;br /&gt;
**Jenkins&lt;br /&gt;
**Github Webhook&lt;br /&gt;
**MongoDB&lt;br /&gt;
**Docker&lt;br /&gt;
**AWS Route53&lt;br /&gt;
*AI&lt;br /&gt;
**Llama-13B&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
*경쟁제품 조사 비교&lt;br /&gt;
{| cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot; &amp;quot;text-align&amp;quot;=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 서비스&lt;br /&gt;
| 사용자가 요구사항을 수행하기 위해 Sub task로 분할&lt;br /&gt;
| Subtask를 실행&lt;br /&gt;
| 새로운 요구사항을 구현&lt;br /&gt;
|-&lt;br /&gt;
| ChatGPT&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| WebShop&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| ALFWorld&lt;br /&gt;
| YES &lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| AgentGPT&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| BabyAGI&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Jarvis&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Epimetheus&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
*마케팅 전략 제시&lt;br /&gt;
**코드를 작성 할 수 있는 개발자들에게 LLM을 기반으로 자동화 할 수 있는 점을 강조&lt;br /&gt;
**본 서비스에 필요로 하는 기능을 직접 추가할 수 있음을 강조&lt;br /&gt;
**AI 혹은 다른 사람이 작성해 놓은 비슷한 TASK를 기반으로 기능을 추가할 수 있음을 강조&lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
내용&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
내용&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
'''◇ (AI)오*영(팀장)'''&lt;br /&gt;
  &lt;br /&gt;
'''◇ (Back-end)김*원'''&lt;br /&gt;
&lt;br /&gt;
'''◇ (Front-end)이*주'''&lt;br /&gt;
*UI/UX&lt;br /&gt;
*플랫폼 페이지 구현&lt;br /&gt;
*Back-end와의 SSE통신코드 작성&lt;br /&gt;
'''◇ (Front-end)장*호'''&lt;br /&gt;
*컴포넌트 설계&lt;br /&gt;
*각 subtask별 실행코드 환경 구성&lt;br /&gt;
*실행코드의 실행 테스트 구현&lt;br /&gt;
'''◇ (Back-end)황*우'''&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
[[파일:에피메테우스_제품요구사항.png]]&lt;br /&gt;
====설계 사양====&lt;br /&gt;
* &amp;lt;strong&amp;gt;사용자가 요구한 업무에 대한 출력 제공&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 사용자는 원하는 업무를 text box에 입력할 수 있다.&lt;br /&gt;
** 입력을 제출(submit)하면 서버에서 1개 이상의 Step을 출력해준다.&lt;br /&gt;
** 각 Step은 요약(Title), 상세내용(Description), 코드(Code), 작성언어(Language)를 포함하고 있다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;코드 실행 가능&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 이전 Step의 출력이 다음 Step의 입력으로 제공되어야 한다.&lt;br /&gt;
** Step에 입력된 코드를 실행하여 Task에 대해서 수행한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;사용자가 직접 특정 단계의 코드 수정 가능&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 특정 Step의 Code를 수정할 수 있는 에디터를 제공한다.&lt;br /&gt;
** 새로 입력한 Code의 입출력 양식이 같은지 검사한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;이전 요청 저장&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 기존의 사용자가 입력한 Task에 대해서 기록한다.&lt;br /&gt;
** 이전 업무와 연결되는 이후의 업무를 우선적으로 제공한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;음성 인식을 통한 업무 입력 기능 제공&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 음성인식을 통해 사용자가 업무를 입력하면, 텍스트로 변환하여 text box에 자동으로 입력한다.&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
[[파일:에피메테우스_인프라도.jpg]]&lt;br /&gt;
* &amp;lt;strong&amp;gt;User 요청의 접근 과정&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Route53을 통해 S3 Bucket에 존재하는 정적 리소스에 접근한다.&lt;br /&gt;
** S3 Bucket에서 Server로 API 요청을 보낸다.&lt;br /&gt;
** Public Subnet 내의 Nginx EC2를 통해 Spring Boot EC2로 리버스 프록시가 진행된다.&lt;br /&gt;
** DB에 접근이 필요하다면 Private Subnet 내의 MongoDB EC2에서 DB 데이터를 받아온다.&lt;br /&gt;
** Llama에서 처리해야 하는 로직이 존재한다면 School Server로 요청을 보낸다.&lt;br /&gt;
** School Server에 존재하는 Llama FastAPI 서버에서 응답을 보낸다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;Developer의 배포 과정(Frontend)&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Source Code를 Main에 Merge한다.&lt;br /&gt;
** Github Webhook을 통해 API Gateway에 연결된 API를 호출한다.&lt;br /&gt;
** Lambda를 Trigger하여 Private Subnet 내의 Jenkins EC2로 Github Webhook의 Body를 전송한다.&lt;br /&gt;
** Frontend 수정 여부를 판별한다.&lt;br /&gt;
** Frontend의 배포 시에는 jenkins에서 빌드된 bundle을 S3 React Build Bucket에 보낸다.&lt;br /&gt;
** S3 Build Bucket에서 S3 Deploy Bucket으로 보내고, Client는 이쪽으로 접근할 수 있다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;Developer의 배포 과정(Backend)&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Source Code를 Main에 Merge한다.&lt;br /&gt;
** Github Webhook을 통해 API Gateway에 연결된 API를 호출한다.&lt;br /&gt;
** Lambda를 Trigger하여 Private Subnet 내의 Jenkins EC2로 Github Webhook의 Body를 전송한다.&lt;br /&gt;
** Backend 수정 여부를 판별한다.&lt;br /&gt;
** Jar 파일을 S3 Spring Bucket에 저장한다.&lt;br /&gt;
** CodeDeploy에서 파일을 가져와 Spring EC2에 실행한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;외부 접근 제한&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Build와 관련된 단위들은 외부에서 접근이 불가능하다.&lt;br /&gt;
** NAT Gateway를 통해 내부 단위들은 외부 인터넷에 접근가능하다.&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
* Task1: Turn on the song on Youtube&lt;br /&gt;
** Step 1. Open the web-browser&lt;br /&gt;
** Step 2. Access to YouTube.&lt;br /&gt;
** Step 3. Search for the song you want to play.&lt;br /&gt;
** Step 4. Click on the video you want to play.&lt;br /&gt;
&lt;br /&gt;
* Task2: Write a Personal Statement that fits the certain company's job opening&lt;br /&gt;
** Step 1. Highlight your relevant skills and experience.&lt;br /&gt;
** Step 2. Demonstrate your knowledge of the company and the position.&lt;br /&gt;
** Step 3. Emphasize your enthusiasm for the industry and the company.&lt;br /&gt;
** Step 4. Showcase your ability to work well in a team environment.&lt;br /&gt;
&lt;br /&gt;
* Task3: Buy the most expensive raincoat in Amazon and Coupang&lt;br /&gt;
** Step 1. Open the web-browser.&lt;br /&gt;
** Step 2. Access to Amazon or Coupang.&lt;br /&gt;
** Step 3. Search for the most expensive raincoat.&lt;br /&gt;
** Step 4. Select the raincoat and add to cart.&lt;br /&gt;
** Step 5. Proceed to checkout.&lt;br /&gt;
** Step 6. Enter shipping and billing information.&lt;br /&gt;
** Step 7. Review order summary and place order.&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
◇ 기능별 상세 요구사항&lt;br /&gt;
* 사용자가 요구한 업무에 대한 출력 제공&lt;br /&gt;
** 사용자는 원하는 업무를 text box에 입력할 수 있다.&lt;br /&gt;
** 입력을 제출하면 서버에서 1개 이상의 Step을 출력해준다.&lt;br /&gt;
** 각 Step은 요약(Title), 상세내용(Description), 코드(Code), 작성언어(Language)를 포함하고 있다.&lt;br /&gt;
&lt;br /&gt;
* 코드 실행 기능&lt;br /&gt;
** 이전 Step의 출력이 다음 Step의 입력으로 제공되어야 한다.&lt;br /&gt;
** Step에 입력된 코드를 실행하여 Task에 대하여 수행한다.&lt;br /&gt;
&lt;br /&gt;
* 사용자가 직접 특정 단계의 코드 수정 가능&lt;br /&gt;
** 특정 Step의 Code를 수정할 수 있는 에디터를 제공한다.&lt;br /&gt;
** 새로 입력한 Code의 입출력 양식이 같은지 검사한다.&lt;br /&gt;
&lt;br /&gt;
* 이전 요청 저장&lt;br /&gt;
** 기존의 사용자가 입력한 Task에 대해서 기록한다.&lt;br /&gt;
** 이전 업무와 연결되는 이후의 업무를 우선적으로 제공한다.&lt;br /&gt;
&lt;br /&gt;
* 음성 인식을 통한 업무 입력 기능 제공&lt;br /&gt;
** 음성인식을 통해 사용자가 업무를 입력하면, 텍스트로 변환하여 text box에 자동으로 입력한다.&lt;br /&gt;
&lt;br /&gt;
◇ System Flow Chart&lt;br /&gt;
[[파일:System Flow Chart.jpg]]&lt;br /&gt;
#Write a Task : 사용자가 Task를 작성한다.&lt;br /&gt;
#Split Task into SubTasks : 사용자가 작성한 Task를 Llama가 SubTask로 나누고 이를 서버가 파싱하여 사용자에게 SubTask로 제공한다.&lt;br /&gt;
#See the SubTasks of Task : 사용자는 서버가 분리한 SubTask들을 볼 수 있다.&lt;br /&gt;
#Click the Exec Button : 사용자가 코드 실행 버튼을 누른다.&lt;br /&gt;
#Search the Codes of each SubTasks : 서버는 각 SubTask들의 코드를 데이터베이스에서 탐색한다.&lt;br /&gt;
#Execute the Javascript Code : 서버가 탐색한 Javascript Code를 실행시킨다.&lt;br /&gt;
#Check the result of the Task : 사용자는 Task와 코드의 결과값이 일치하는지 확인한다.&lt;br /&gt;
&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
*Task 1: Turn on the song on YouTube&lt;br /&gt;
#Open the web-browser&lt;br /&gt;
[[파일:Task1-1.jpg]]&lt;br /&gt;
#Access to YouTube&lt;br /&gt;
[[파일:Task1-2.jpg]]&lt;br /&gt;
#Search for the song you want to play&lt;br /&gt;
[[파일:Task1-3.jpg]]&lt;br /&gt;
#Click on the video you want to play&lt;br /&gt;
[[파일:Task1-4.jpg]]&lt;br /&gt;
*Task 2 : Write a Personal Statement that fits the certain company's job opening.&lt;br /&gt;
#Highlight your relevant skills and experience&lt;br /&gt;
&lt;br /&gt;
#Demonstrate your knowledge of the company and the position&lt;br /&gt;
&lt;br /&gt;
#Emphasize your enthusiasm for the industry and the company&lt;br /&gt;
&lt;br /&gt;
#Showcase your ability to work well in a team environment&lt;br /&gt;
&lt;br /&gt;
*Task 3 : Buy the most expensive raincoat in Amazon and Coupang&lt;br /&gt;
#Open the web-browser&lt;br /&gt;
&lt;br /&gt;
#Access to Amazon or Coupang&lt;br /&gt;
&lt;br /&gt;
#Search for the most expensive raincoat&lt;br /&gt;
&lt;br /&gt;
#Select the raincoat and add to cart&lt;br /&gt;
&lt;br /&gt;
#Proceed to checkout&lt;br /&gt;
&lt;br /&gt;
#Enter shipping and billing information&lt;br /&gt;
&lt;br /&gt;
#Review order summary and place order&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
내용&lt;br /&gt;
====포스터====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===관련사업비 내역서===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
내용&lt;/div&gt;</summary>
		<author><name>Com2312</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%EC%97%90%ED%94%BC%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4&amp;diff=9590</id>
		<title>에피메테우스</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%EC%97%90%ED%94%BC%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4&amp;diff=9590"/>
				<updated>2023-12-24T05:46:36Z</updated>
		
		<summary type="html">&lt;p&gt;Com2312: /* 이론적 계산 및 시뮬레이션 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : ''' 에피메테우스(LLM을 활용한 웹 기반의 업무 자동화 플랫폼)&lt;br /&gt;
&lt;br /&gt;
''' 영문 : ''' 00000000..&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
에피메테우스&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
정형구 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2023년 9월 ~ 2023년 12월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 오*영(팀장)&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 김*원&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 이*주&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 장*호&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 황*우&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
'''◇ LLM을 활용한 웹 기반의 업무 자동화 플랫폼 구축'''&lt;br /&gt;
*사용자가 제공한 업무를 실제로 실행할 수 있는 자동화 AI 플랫폼 구현이 주된 목표이다. &lt;br /&gt;
*기존 AutoGPT와 유사한 기능을 제공하도록 대형 언어 모델(LLM)을 이용해 사용자의 업무를 이루기 위한 일련의 과정을 LLM(Llama)이 생성 후 제공한다. &lt;br /&gt;
*기존 서비스와의 차이점은 AI 모델의 단점인 블랙박스 특성을 없애기 위해 업무를 수행하기 위한 각 단계에 적절한 코드를 DB에서 불러오고, 해당 코드를 실행한다는 점이다. &lt;br /&gt;
*특정 단계에 해당하는 기능이 없을 때 원하는 기능을 사용자가 직접 추가하여 실행할 수 있다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
*현재 ChatGPT의 성공에 힘입어 LLM을 이용하여 업무를 자동화하는 시도가 존재한다.&lt;br /&gt;
*LLM을 이용하여 모든 업무를 자동화하는 것은 현재 수준으로는 부족하다는 보고가 있다.&lt;br /&gt;
*이러한 배경에 힘입어 기존 서비스의 한계점을 극복하기 위해 코드 단위로 업무를 실행하는 웹 기반의 업무 자동화 플랫폼을 구현하고자 한다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
◇ Frontend&lt;br /&gt;
*접근성을 고려한 UI 개발&lt;br /&gt;
*사용자가 작성한 코드를 웹 환경에서 실행시키는 기능 개발&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ Backend&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ AI&lt;br /&gt;
*LLM(Large Language Model)을 이용하여 사용자 목표 달성을 위한 업무를 자동으로 분할하는 기능 개발&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
* 다양한 Benchmark에 대하여 여러 거대 언어 모델들의 성능을 비교&lt;br /&gt;
[[파일:Benchmark.jpg|700px]]&lt;br /&gt;
* 하지만 해당 Benchmark에는 구현하고자 하는 기능을 담고 있지 않음&lt;br /&gt;
* 해당 Benchmark에서 Llama-2(13B)을 사용&lt;br /&gt;
*특허조사 및 특허 전략 분석&lt;br /&gt;
&lt;br /&gt;
====기술 로드맵====&lt;br /&gt;
* Frontend&lt;br /&gt;
**Figma&lt;br /&gt;
**React&lt;br /&gt;
**web worker&lt;br /&gt;
*Backend&lt;br /&gt;
**Spring Boot&lt;br /&gt;
**AWS EC2&lt;br /&gt;
**AWS VPC&lt;br /&gt;
**AWS Lambda&lt;br /&gt;
**Jenkins&lt;br /&gt;
**Github Webhook&lt;br /&gt;
**MongoDB&lt;br /&gt;
**Docker&lt;br /&gt;
**AWS Route53&lt;br /&gt;
*AI&lt;br /&gt;
**Llama-13B&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
*경쟁제품 조사 비교&lt;br /&gt;
{| cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot; &amp;quot;text-align&amp;quot;=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 서비스&lt;br /&gt;
| 사용자가 요구사항을 수행하기 위해 Sub task로 분할&lt;br /&gt;
| Subtask를 실행&lt;br /&gt;
| 새로운 요구사항을 구현&lt;br /&gt;
|-&lt;br /&gt;
| ChatGPT&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| WebShop&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| ALFWorld&lt;br /&gt;
| YES &lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| AgentGPT&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| BabyAGI&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Jarvis&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Epimetheus&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
*마케팅 전략 제시&lt;br /&gt;
**코드를 작성 할 수 있는 개발자들에게 LLM을 기반으로 자동화 할 수 있는 점을 강조&lt;br /&gt;
**본 서비스에 필요로 하는 기능을 직접 추가할 수 있음을 강조&lt;br /&gt;
**AI 혹은 다른 사람이 작성해 놓은 비슷한 TASK를 기반으로 기능을 추가할 수 있음을 강조&lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
내용&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
내용&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
'''◇ (AI)오*영(팀장)'''&lt;br /&gt;
  &lt;br /&gt;
'''◇ (Back-end)김*원'''&lt;br /&gt;
&lt;br /&gt;
'''◇ (Front-end)이*주'''&lt;br /&gt;
*UI/UX&lt;br /&gt;
*플랫폼 페이지 구현&lt;br /&gt;
*Back-end와의 SSE통신코드 작성&lt;br /&gt;
'''◇ (Front-end)장*호'''&lt;br /&gt;
*컴포넌트 설계&lt;br /&gt;
*각 subtask별 실행코드 환경 구성&lt;br /&gt;
*실행코드의 실행 테스트 구현&lt;br /&gt;
'''◇ (Back-end)황*우'''&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
[[파일:에피메테우스_제품요구사항.png]]&lt;br /&gt;
====설계 사양====&lt;br /&gt;
* &amp;lt;strong&amp;gt;사용자가 요구한 업무에 대한 출력 제공&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 사용자는 원하는 업무를 text box에 입력할 수 있다.&lt;br /&gt;
** 입력을 제출(submit)하면 서버에서 1개 이상의 Step을 출력해준다.&lt;br /&gt;
** 각 Step은 요약(Title), 상세내용(Description), 코드(Code), 작성언어(Language)를 포함하고 있다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;코드 실행 가능&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 이전 Step의 출력이 다음 Step의 입력으로 제공되어야 한다.&lt;br /&gt;
** Step에 입력된 코드를 실행하여 Task에 대해서 수행한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;사용자가 직접 특정 단계의 코드 수정 가능&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 특정 Step의 Code를 수정할 수 있는 에디터를 제공한다.&lt;br /&gt;
** 새로 입력한 Code의 입출력 양식이 같은지 검사한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;이전 요청 저장&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 기존의 사용자가 입력한 Task에 대해서 기록한다.&lt;br /&gt;
** 이전 업무와 연결되는 이후의 업무를 우선적으로 제공한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;음성 인식을 통한 업무 입력 기능 제공&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 음성인식을 통해 사용자가 업무를 입력하면, 텍스트로 변환하여 text box에 자동으로 입력한다.&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
[[파일:에피메테우스_인프라도.jpg]]&lt;br /&gt;
* &amp;lt;strong&amp;gt;User 요청의 접근 과정&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Route53을 통해 S3 Bucket에 존재하는 정적 리소스에 접근한다.&lt;br /&gt;
** S3 Bucket에서 Server로 API 요청을 보낸다.&lt;br /&gt;
** Public Subnet 내의 Nginx EC2를 통해 Spring Boot EC2로 리버스 프록시가 진행된다.&lt;br /&gt;
** DB에 접근이 필요하다면 Private Subnet 내의 MongoDB EC2에서 DB 데이터를 받아온다.&lt;br /&gt;
** Llama에서 처리해야 하는 로직이 존재한다면 School Server로 요청을 보낸다.&lt;br /&gt;
** School Server에 존재하는 Llama FastAPI 서버에서 응답을 보낸다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;Developer의 배포 과정(Frontend)&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Source Code를 Main에 Merge한다.&lt;br /&gt;
** Github Webhook을 통해 API Gateway에 연결된 API를 호출한다.&lt;br /&gt;
** Lambda를 Trigger하여 Private Subnet 내의 Jenkins EC2로 Github Webhook의 Body를 전송한다.&lt;br /&gt;
** Frontend 수정 여부를 판별한다.&lt;br /&gt;
** Frontend의 배포 시에는 jenkins에서 빌드된 bundle을 S3 React Build Bucket에 보낸다.&lt;br /&gt;
** S3 Build Bucket에서 S3 Deploy Bucket으로 보내고, Client는 이쪽으로 접근할 수 있다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;Developer의 배포 과정(Backend)&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Source Code를 Main에 Merge한다.&lt;br /&gt;
** Github Webhook을 통해 API Gateway에 연결된 API를 호출한다.&lt;br /&gt;
** Lambda를 Trigger하여 Private Subnet 내의 Jenkins EC2로 Github Webhook의 Body를 전송한다.&lt;br /&gt;
** Backend 수정 여부를 판별한다.&lt;br /&gt;
** Jar 파일을 S3 Spring Bucket에 저장한다.&lt;br /&gt;
** CodeDeploy에서 파일을 가져와 Spring EC2에 실행한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;외부 접근 제한&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Build와 관련된 단위들은 외부에서 접근이 불가능하다.&lt;br /&gt;
** NAT Gateway를 통해 내부 단위들은 외부 인터넷에 접근가능하다.&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
* Task1: Turn on the song on Youtube&lt;br /&gt;
** Step 1. Open the web-browser&lt;br /&gt;
** Step 2. Access to YouTube.&lt;br /&gt;
** Step 3. Search for the song you want to play.&lt;br /&gt;
** Step 4. Click on the video you want to play.&lt;br /&gt;
&lt;br /&gt;
* Task2: Write a Personal Statement that fits the certain company's job opening&lt;br /&gt;
** Step 1. Highlight your relevant skills and experience.&lt;br /&gt;
[[파일:Task2-1.jpg]]&lt;br /&gt;
** Step 2. Demonstrate your knowledge of the company and the position.&lt;br /&gt;
[[파일:Task2-2.jpg]]&lt;br /&gt;
** Step 3. Emphasize your enthusiasm for the industry and the company.&lt;br /&gt;
[[파일:Task2-3.jpg]]&lt;br /&gt;
** Step 4. Showcase your ability to work well in a team environment.&lt;br /&gt;
[[파일:Task2-4.jpg]]&lt;br /&gt;
&lt;br /&gt;
* Task3: Buy the most expensive raincoat in Amazon and Coupang&lt;br /&gt;
** Step 1. Open the web-browser.&lt;br /&gt;
** Step 2. Access to Amazon or Coupang.&lt;br /&gt;
** Step 3. Search for the most expensive raincoat.&lt;br /&gt;
** Step 4. Select the raincoat and add to cart.&lt;br /&gt;
** Step 5. Proceed to checkout.&lt;br /&gt;
** Step 6. Enter shipping and billing information.&lt;br /&gt;
** Step 7. Review order summary and place order.&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
◇ 기능별 상세 요구사항&lt;br /&gt;
* 사용자가 요구한 업무에 대한 출력 제공&lt;br /&gt;
** 사용자는 원하는 업무를 text box에 입력할 수 있다.&lt;br /&gt;
** 입력을 제출하면 서버에서 1개 이상의 Step을 출력해준다.&lt;br /&gt;
** 각 Step은 요약(Title), 상세내용(Description), 코드(Code), 작성언어(Language)를 포함하고 있다.&lt;br /&gt;
&lt;br /&gt;
* 코드 실행 기능&lt;br /&gt;
** 이전 Step의 출력이 다음 Step의 입력으로 제공되어야 한다.&lt;br /&gt;
** Step에 입력된 코드를 실행하여 Task에 대하여 수행한다.&lt;br /&gt;
&lt;br /&gt;
* 사용자가 직접 특정 단계의 코드 수정 가능&lt;br /&gt;
** 특정 Step의 Code를 수정할 수 있는 에디터를 제공한다.&lt;br /&gt;
** 새로 입력한 Code의 입출력 양식이 같은지 검사한다.&lt;br /&gt;
&lt;br /&gt;
* 이전 요청 저장&lt;br /&gt;
** 기존의 사용자가 입력한 Task에 대해서 기록한다.&lt;br /&gt;
** 이전 업무와 연결되는 이후의 업무를 우선적으로 제공한다.&lt;br /&gt;
&lt;br /&gt;
* 음성 인식을 통한 업무 입력 기능 제공&lt;br /&gt;
** 음성인식을 통해 사용자가 업무를 입력하면, 텍스트로 변환하여 text box에 자동으로 입력한다.&lt;br /&gt;
&lt;br /&gt;
◇ System Flow Chart&lt;br /&gt;
[[파일:System Flow Chart.jpg]]&lt;br /&gt;
#Write a Task : 사용자가 Task를 작성한다.&lt;br /&gt;
#Split Task into SubTasks : 사용자가 작성한 Task를 Llama가 SubTask로 나누고 이를 서버가 파싱하여 사용자에게 SubTask로 제공한다.&lt;br /&gt;
#See the SubTasks of Task : 사용자는 서버가 분리한 SubTask들을 볼 수 있다.&lt;br /&gt;
#Click the Exec Button : 사용자가 코드 실행 버튼을 누른다.&lt;br /&gt;
#Search the Codes of each SubTasks : 서버는 각 SubTask들의 코드를 데이터베이스에서 탐색한다.&lt;br /&gt;
#Execute the Javascript Code : 서버가 탐색한 Javascript Code를 실행시킨다.&lt;br /&gt;
#Check the result of the Task : 사용자는 Task와 코드의 결과값이 일치하는지 확인한다.&lt;br /&gt;
&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
*Task 1: Turn on the song on YouTube&lt;br /&gt;
#Open the web-browser&lt;br /&gt;
[[파일:Task1-1.jpg]]&lt;br /&gt;
#Access to YouTube&lt;br /&gt;
[[파일:Task1-2.jpg]]&lt;br /&gt;
#Search for the song you want to play&lt;br /&gt;
[[파일:Task1-3.jpg]]&lt;br /&gt;
#Click on the video you want to play&lt;br /&gt;
[[파일:Task1-4.jpg]]&lt;br /&gt;
*Task 2 : Write a Personal Statement that fits the certain company's job opening.&lt;br /&gt;
#Highlight your relevant skills and experience&lt;br /&gt;
&lt;br /&gt;
#Demonstrate your knowledge of the company and the position&lt;br /&gt;
&lt;br /&gt;
#Emphasize your enthusiasm for the industry and the company&lt;br /&gt;
&lt;br /&gt;
#Showcase your ability to work well in a team environment&lt;br /&gt;
&lt;br /&gt;
*Task 3 : Buy the most expensive raincoat in Amazon and Coupang&lt;br /&gt;
#Open the web-browser&lt;br /&gt;
&lt;br /&gt;
#Access to Amazon or Coupang&lt;br /&gt;
&lt;br /&gt;
#Search for the most expensive raincoat&lt;br /&gt;
&lt;br /&gt;
#Select the raincoat and add to cart&lt;br /&gt;
&lt;br /&gt;
#Proceed to checkout&lt;br /&gt;
&lt;br /&gt;
#Enter shipping and billing information&lt;br /&gt;
&lt;br /&gt;
#Review order summary and place order&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
내용&lt;br /&gt;
====포스터====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===관련사업비 내역서===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
내용&lt;/div&gt;</summary>
		<author><name>Com2312</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Task1-4.jpg&amp;diff=9589</id>
		<title>파일:Task1-4.jpg</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Task1-4.jpg&amp;diff=9589"/>
				<updated>2023-12-24T05:45:42Z</updated>
		
		<summary type="html">&lt;p&gt;Com2312: Task1-4&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Task1-4&lt;/div&gt;</summary>
		<author><name>Com2312</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Task1-3.jpg&amp;diff=9588</id>
		<title>파일:Task1-3.jpg</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Task1-3.jpg&amp;diff=9588"/>
				<updated>2023-12-24T05:45:23Z</updated>
		
		<summary type="html">&lt;p&gt;Com2312: Task1-3&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Task1-3&lt;/div&gt;</summary>
		<author><name>Com2312</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Task1-1.jpg&amp;diff=9587</id>
		<title>파일:Task1-1.jpg</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Task1-1.jpg&amp;diff=9587"/>
				<updated>2023-12-24T05:45:00Z</updated>
		
		<summary type="html">&lt;p&gt;Com2312: Com2312님이 파일:Task1-1.jpg의 새 판을 올렸습니다&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Task1-1&lt;/div&gt;</summary>
		<author><name>Com2312</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Task1-2.jpg&amp;diff=9586</id>
		<title>파일:Task1-2.jpg</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Task1-2.jpg&amp;diff=9586"/>
				<updated>2023-12-24T05:44:45Z</updated>
		
		<summary type="html">&lt;p&gt;Com2312: Com2312님이 파일:Task1-2.jpg의 새 판을 올렸습니다&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Task1-2&lt;/div&gt;</summary>
		<author><name>Com2312</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Task1-2.jpg&amp;diff=9585</id>
		<title>파일:Task1-2.jpg</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Task1-2.jpg&amp;diff=9585"/>
				<updated>2023-12-24T05:42:10Z</updated>
		
		<summary type="html">&lt;p&gt;Com2312: Task1-2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Task1-2&lt;/div&gt;</summary>
		<author><name>Com2312</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Task1-1.jpg&amp;diff=9584</id>
		<title>파일:Task1-1.jpg</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%ED%8C%8C%EC%9D%BC:Task1-1.jpg&amp;diff=9584"/>
				<updated>2023-12-24T05:41:39Z</updated>
		
		<summary type="html">&lt;p&gt;Com2312: Task1-1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Task1-1&lt;/div&gt;</summary>
		<author><name>Com2312</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%EC%97%90%ED%94%BC%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4&amp;diff=9583</id>
		<title>에피메테우스</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%EC%97%90%ED%94%BC%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4&amp;diff=9583"/>
				<updated>2023-12-24T05:40:49Z</updated>
		
		<summary type="html">&lt;p&gt;Com2312: /* 상세설계 내용 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : ''' 에피메테우스(LLM을 활용한 웹 기반의 업무 자동화 플랫폼)&lt;br /&gt;
&lt;br /&gt;
''' 영문 : ''' 00000000..&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
에피메테우스&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
정형구 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2023년 9월 ~ 2023년 12월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 오*영(팀장)&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 김*원&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 이*주&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 장*호&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 황*우&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
'''◇ LLM을 활용한 웹 기반의 업무 자동화 플랫폼 구축'''&lt;br /&gt;
*사용자가 제공한 업무를 실제로 실행할 수 있는 자동화 AI 플랫폼 구현이 주된 목표이다. &lt;br /&gt;
*기존 AutoGPT와 유사한 기능을 제공하도록 대형 언어 모델(LLM)을 이용해 사용자의 업무를 이루기 위한 일련의 과정을 LLM(Llama)이 생성 후 제공한다. &lt;br /&gt;
*기존 서비스와의 차이점은 AI 모델의 단점인 블랙박스 특성을 없애기 위해 업무를 수행하기 위한 각 단계에 적절한 코드를 DB에서 불러오고, 해당 코드를 실행한다는 점이다. &lt;br /&gt;
*특정 단계에 해당하는 기능이 없을 때 원하는 기능을 사용자가 직접 추가하여 실행할 수 있다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
*현재 ChatGPT의 성공에 힘입어 LLM을 이용하여 업무를 자동화하는 시도가 존재한다.&lt;br /&gt;
*LLM을 이용하여 모든 업무를 자동화하는 것은 현재 수준으로는 부족하다는 보고가 있다.&lt;br /&gt;
*이러한 배경에 힘입어 기존 서비스의 한계점을 극복하기 위해 코드 단위로 업무를 실행하는 웹 기반의 업무 자동화 플랫폼을 구현하고자 한다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
◇ Frontend&lt;br /&gt;
*접근성을 고려한 UI 개발&lt;br /&gt;
*사용자가 작성한 코드를 웹 환경에서 실행시키는 기능 개발&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ Backend&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ AI&lt;br /&gt;
*LLM(Large Language Model)을 이용하여 사용자 목표 달성을 위한 업무를 자동으로 분할하는 기능 개발&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
* 다양한 Benchmark에 대하여 여러 거대 언어 모델들의 성능을 비교&lt;br /&gt;
[[파일:Benchmark.jpg|700px]]&lt;br /&gt;
* 하지만 해당 Benchmark에는 구현하고자 하는 기능을 담고 있지 않음&lt;br /&gt;
* 해당 Benchmark에서 Llama-2(13B)을 사용&lt;br /&gt;
*특허조사 및 특허 전략 분석&lt;br /&gt;
&lt;br /&gt;
====기술 로드맵====&lt;br /&gt;
* Frontend&lt;br /&gt;
**Figma&lt;br /&gt;
**React&lt;br /&gt;
**web worker&lt;br /&gt;
*Backend&lt;br /&gt;
**Spring Boot&lt;br /&gt;
**AWS EC2&lt;br /&gt;
**AWS VPC&lt;br /&gt;
**AWS Lambda&lt;br /&gt;
**Jenkins&lt;br /&gt;
**Github Webhook&lt;br /&gt;
**MongoDB&lt;br /&gt;
**Docker&lt;br /&gt;
**AWS Route53&lt;br /&gt;
*AI&lt;br /&gt;
**Llama-13B&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
*경쟁제품 조사 비교&lt;br /&gt;
{| cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot; &amp;quot;text-align&amp;quot;=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 서비스&lt;br /&gt;
| 사용자가 요구사항을 수행하기 위해 Sub task로 분할&lt;br /&gt;
| Subtask를 실행&lt;br /&gt;
| 새로운 요구사항을 구현&lt;br /&gt;
|-&lt;br /&gt;
| ChatGPT&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| WebShop&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| ALFWorld&lt;br /&gt;
| YES &lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| AgentGPT&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| BabyAGI&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Jarvis&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Epimetheus&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
*마케팅 전략 제시&lt;br /&gt;
**코드를 작성 할 수 있는 개발자들에게 LLM을 기반으로 자동화 할 수 있는 점을 강조&lt;br /&gt;
**본 서비스에 필요로 하는 기능을 직접 추가할 수 있음을 강조&lt;br /&gt;
**AI 혹은 다른 사람이 작성해 놓은 비슷한 TASK를 기반으로 기능을 추가할 수 있음을 강조&lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
내용&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
내용&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
'''◇ (AI)오*영(팀장)'''&lt;br /&gt;
  &lt;br /&gt;
'''◇ (Back-end)김*원'''&lt;br /&gt;
&lt;br /&gt;
'''◇ (Front-end)이*주'''&lt;br /&gt;
*UI/UX&lt;br /&gt;
*플랫폼 페이지 구현&lt;br /&gt;
*Back-end와의 SSE통신코드 작성&lt;br /&gt;
'''◇ (Front-end)장*호'''&lt;br /&gt;
*컴포넌트 설계&lt;br /&gt;
*각 subtask별 실행코드 환경 구성&lt;br /&gt;
*실행코드의 실행 테스트 구현&lt;br /&gt;
'''◇ (Back-end)황*우'''&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
[[파일:에피메테우스_제품요구사항.png]]&lt;br /&gt;
====설계 사양====&lt;br /&gt;
* &amp;lt;strong&amp;gt;사용자가 요구한 업무에 대한 출력 제공&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 사용자는 원하는 업무를 text box에 입력할 수 있다.&lt;br /&gt;
** 입력을 제출(submit)하면 서버에서 1개 이상의 Step을 출력해준다.&lt;br /&gt;
** 각 Step은 요약(Title), 상세내용(Description), 코드(Code), 작성언어(Language)를 포함하고 있다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;코드 실행 가능&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 이전 Step의 출력이 다음 Step의 입력으로 제공되어야 한다.&lt;br /&gt;
** Step에 입력된 코드를 실행하여 Task에 대해서 수행한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;사용자가 직접 특정 단계의 코드 수정 가능&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 특정 Step의 Code를 수정할 수 있는 에디터를 제공한다.&lt;br /&gt;
** 새로 입력한 Code의 입출력 양식이 같은지 검사한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;이전 요청 저장&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 기존의 사용자가 입력한 Task에 대해서 기록한다.&lt;br /&gt;
** 이전 업무와 연결되는 이후의 업무를 우선적으로 제공한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;음성 인식을 통한 업무 입력 기능 제공&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 음성인식을 통해 사용자가 업무를 입력하면, 텍스트로 변환하여 text box에 자동으로 입력한다.&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
[[파일:에피메테우스_인프라도.jpg]]&lt;br /&gt;
* &amp;lt;strong&amp;gt;User 요청의 접근 과정&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Route53을 통해 S3 Bucket에 존재하는 정적 리소스에 접근한다.&lt;br /&gt;
** S3 Bucket에서 Server로 API 요청을 보낸다.&lt;br /&gt;
** Public Subnet 내의 Nginx EC2를 통해 Spring Boot EC2로 리버스 프록시가 진행된다.&lt;br /&gt;
** DB에 접근이 필요하다면 Private Subnet 내의 MongoDB EC2에서 DB 데이터를 받아온다.&lt;br /&gt;
** Llama에서 처리해야 하는 로직이 존재한다면 School Server로 요청을 보낸다.&lt;br /&gt;
** School Server에 존재하는 Llama FastAPI 서버에서 응답을 보낸다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;Developer의 배포 과정(Frontend)&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Source Code를 Main에 Merge한다.&lt;br /&gt;
** Github Webhook을 통해 API Gateway에 연결된 API를 호출한다.&lt;br /&gt;
** Lambda를 Trigger하여 Private Subnet 내의 Jenkins EC2로 Github Webhook의 Body를 전송한다.&lt;br /&gt;
** Frontend 수정 여부를 판별한다.&lt;br /&gt;
** Frontend의 배포 시에는 jenkins에서 빌드된 bundle을 S3 React Build Bucket에 보낸다.&lt;br /&gt;
** S3 Build Bucket에서 S3 Deploy Bucket으로 보내고, Client는 이쪽으로 접근할 수 있다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;Developer의 배포 과정(Backend)&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Source Code를 Main에 Merge한다.&lt;br /&gt;
** Github Webhook을 통해 API Gateway에 연결된 API를 호출한다.&lt;br /&gt;
** Lambda를 Trigger하여 Private Subnet 내의 Jenkins EC2로 Github Webhook의 Body를 전송한다.&lt;br /&gt;
** Backend 수정 여부를 판별한다.&lt;br /&gt;
** Jar 파일을 S3 Spring Bucket에 저장한다.&lt;br /&gt;
** CodeDeploy에서 파일을 가져와 Spring EC2에 실행한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;외부 접근 제한&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Build와 관련된 단위들은 외부에서 접근이 불가능하다.&lt;br /&gt;
** NAT Gateway를 통해 내부 단위들은 외부 인터넷에 접근가능하다.&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
* Task1: Turn on the song on Youtube&lt;br /&gt;
** Step 1. Open the web-browser&lt;br /&gt;
** Step 2. Access to YouTube.&lt;br /&gt;
** Step 3. Search for the song you want to play.&lt;br /&gt;
** Step 4. Click on the video you want to play.&lt;br /&gt;
&lt;br /&gt;
* Task2: Write a Personal Statement that fits the certain company's job opening&lt;br /&gt;
** Step 1. Highlight your relevant skills and experience.&lt;br /&gt;
** Step 2. Demonstrate your knowledge of the company and the position.&lt;br /&gt;
** Step 3. Emphasize your enthusiasm for the industry and the company.&lt;br /&gt;
** Step 4. Showcase your ability to work well in a team environment.&lt;br /&gt;
&lt;br /&gt;
* Task3: Buy the most expensive raincoat in Amazon and Coupang&lt;br /&gt;
** Step 1. Open the web-browser.&lt;br /&gt;
** Step 2. Access to Amazon or Coupang.&lt;br /&gt;
** Step 3. Search for the most expensive raincoat.&lt;br /&gt;
** Step 4. Select the raincoat and add to cart.&lt;br /&gt;
** Step 5. Proceed to checkout.&lt;br /&gt;
** Step 6. Enter shipping and billing information.&lt;br /&gt;
** Step 7. Review order summary and place order.&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
◇ 기능별 상세 요구사항&lt;br /&gt;
* 사용자가 요구한 업무에 대한 출력 제공&lt;br /&gt;
** 사용자는 원하는 업무를 text box에 입력할 수 있다.&lt;br /&gt;
** 입력을 제출하면 서버에서 1개 이상의 Step을 출력해준다.&lt;br /&gt;
** 각 Step은 요약(Title), 상세내용(Description), 코드(Code), 작성언어(Language)를 포함하고 있다.&lt;br /&gt;
&lt;br /&gt;
* 코드 실행 기능&lt;br /&gt;
** 이전 Step의 출력이 다음 Step의 입력으로 제공되어야 한다.&lt;br /&gt;
** Step에 입력된 코드를 실행하여 Task에 대하여 수행한다.&lt;br /&gt;
&lt;br /&gt;
* 사용자가 직접 특정 단계의 코드 수정 가능&lt;br /&gt;
** 특정 Step의 Code를 수정할 수 있는 에디터를 제공한다.&lt;br /&gt;
** 새로 입력한 Code의 입출력 양식이 같은지 검사한다.&lt;br /&gt;
&lt;br /&gt;
* 이전 요청 저장&lt;br /&gt;
** 기존의 사용자가 입력한 Task에 대해서 기록한다.&lt;br /&gt;
** 이전 업무와 연결되는 이후의 업무를 우선적으로 제공한다.&lt;br /&gt;
&lt;br /&gt;
* 음성 인식을 통한 업무 입력 기능 제공&lt;br /&gt;
** 음성인식을 통해 사용자가 업무를 입력하면, 텍스트로 변환하여 text box에 자동으로 입력한다.&lt;br /&gt;
&lt;br /&gt;
◇ System Flow Chart&lt;br /&gt;
[[파일:System Flow Chart.jpg]]&lt;br /&gt;
#Write a Task : 사용자가 Task를 작성한다.&lt;br /&gt;
#Split Task into SubTasks : 사용자가 작성한 Task를 Llama가 SubTask로 나누고 이를 서버가 파싱하여 사용자에게 SubTask로 제공한다.&lt;br /&gt;
#See the SubTasks of Task : 사용자는 서버가 분리한 SubTask들을 볼 수 있다.&lt;br /&gt;
#Click the Exec Button : 사용자가 코드 실행 버튼을 누른다.&lt;br /&gt;
#Search the Codes of each SubTasks : 서버는 각 SubTask들의 코드를 데이터베이스에서 탐색한다.&lt;br /&gt;
#Execute the Javascript Code : 서버가 탐색한 Javascript Code를 실행시킨다.&lt;br /&gt;
#Check the result of the Task : 사용자는 Task와 코드의 결과값이 일치하는지 확인한다.&lt;br /&gt;
&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
*Task 1: Turn on the song on YouTube&lt;br /&gt;
#Open the web-browser&lt;br /&gt;
[[파일:Task1-1.jpg]]&lt;br /&gt;
#Access to YouTube&lt;br /&gt;
[[파일:Task1-2.jpg]]&lt;br /&gt;
#Search for the song you want to play&lt;br /&gt;
[[파일:Task1-3.jpg]]&lt;br /&gt;
#Click on the video you want to play&lt;br /&gt;
[[파일:Task1-4.jpg]]&lt;br /&gt;
*Task 2 : Write a Personal Statement that fits the certain company's job opening.&lt;br /&gt;
#Highlight your relevant skills and experience&lt;br /&gt;
&lt;br /&gt;
#Demonstrate your knowledge of the company and the position&lt;br /&gt;
&lt;br /&gt;
#Emphasize your enthusiasm for the industry and the company&lt;br /&gt;
&lt;br /&gt;
#Showcase your ability to work well in a team environment&lt;br /&gt;
&lt;br /&gt;
*Task 3 : Buy the most expensive raincoat in Amazon and Coupang&lt;br /&gt;
#Open the web-browser&lt;br /&gt;
&lt;br /&gt;
#Access to Amazon or Coupang&lt;br /&gt;
&lt;br /&gt;
#Search for the most expensive raincoat&lt;br /&gt;
&lt;br /&gt;
#Select the raincoat and add to cart&lt;br /&gt;
&lt;br /&gt;
#Proceed to checkout&lt;br /&gt;
&lt;br /&gt;
#Enter shipping and billing information&lt;br /&gt;
&lt;br /&gt;
#Review order summary and place order&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
내용&lt;br /&gt;
====포스터====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===관련사업비 내역서===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
내용&lt;/div&gt;</summary>
		<author><name>Com2312</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%EC%97%90%ED%94%BC%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4&amp;diff=9582</id>
		<title>에피메테우스</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%EC%97%90%ED%94%BC%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4&amp;diff=9582"/>
				<updated>2023-12-24T05:34:15Z</updated>
		
		<summary type="html">&lt;p&gt;Com2312: /* 상세설계 내용 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : ''' 에피메테우스(LLM을 활용한 웹 기반의 업무 자동화 플랫폼)&lt;br /&gt;
&lt;br /&gt;
''' 영문 : ''' 00000000..&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
에피메테우스&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
정형구 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2023년 9월 ~ 2023년 12월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 오*영(팀장)&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 김*원&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 이*주&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 장*호&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 황*우&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
'''◇ LLM을 활용한 웹 기반의 업무 자동화 플랫폼 구축'''&lt;br /&gt;
*사용자가 제공한 업무를 실제로 실행할 수 있는 자동화 AI 플랫폼 구현이 주된 목표이다. &lt;br /&gt;
*기존 AutoGPT와 유사한 기능을 제공하도록 대형 언어 모델(LLM)을 이용해 사용자의 업무를 이루기 위한 일련의 과정을 LLM(Llama)이 생성 후 제공한다. &lt;br /&gt;
*기존 서비스와의 차이점은 AI 모델의 단점인 블랙박스 특성을 없애기 위해 업무를 수행하기 위한 각 단계에 적절한 코드를 DB에서 불러오고, 해당 코드를 실행한다는 점이다. &lt;br /&gt;
*특정 단계에 해당하는 기능이 없을 때 원하는 기능을 사용자가 직접 추가하여 실행할 수 있다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
*현재 ChatGPT의 성공에 힘입어 LLM을 이용하여 업무를 자동화하는 시도가 존재한다.&lt;br /&gt;
*LLM을 이용하여 모든 업무를 자동화하는 것은 현재 수준으로는 부족하다는 보고가 있다.&lt;br /&gt;
*이러한 배경에 힘입어 기존 서비스의 한계점을 극복하기 위해 코드 단위로 업무를 실행하는 웹 기반의 업무 자동화 플랫폼을 구현하고자 한다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
◇ Frontend&lt;br /&gt;
*접근성을 고려한 UI 개발&lt;br /&gt;
*사용자가 작성한 코드를 웹 환경에서 실행시키는 기능 개발&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ Backend&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ AI&lt;br /&gt;
*LLM(Large Language Model)을 이용하여 사용자 목표 달성을 위한 업무를 자동으로 분할하는 기능 개발&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
* 다양한 Benchmark에 대하여 여러 거대 언어 모델들의 성능을 비교&lt;br /&gt;
[[파일:Benchmark.jpg|700px]]&lt;br /&gt;
* 하지만 해당 Benchmark에는 구현하고자 하는 기능을 담고 있지 않음&lt;br /&gt;
* 해당 Benchmark에서 Llama-2(13B)을 사용&lt;br /&gt;
*특허조사 및 특허 전략 분석&lt;br /&gt;
&lt;br /&gt;
====기술 로드맵====&lt;br /&gt;
* Frontend&lt;br /&gt;
**Figma&lt;br /&gt;
**React&lt;br /&gt;
**web worker&lt;br /&gt;
*Backend&lt;br /&gt;
**Spring Boot&lt;br /&gt;
**AWS EC2&lt;br /&gt;
**AWS VPC&lt;br /&gt;
**AWS Lambda&lt;br /&gt;
**Jenkins&lt;br /&gt;
**Github Webhook&lt;br /&gt;
**MongoDB&lt;br /&gt;
**Docker&lt;br /&gt;
**AWS Route53&lt;br /&gt;
*AI&lt;br /&gt;
**Llama-13B&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
*경쟁제품 조사 비교&lt;br /&gt;
{| cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot; &amp;quot;text-align&amp;quot;=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 서비스&lt;br /&gt;
| 사용자가 요구사항을 수행하기 위해 Sub task로 분할&lt;br /&gt;
| Subtask를 실행&lt;br /&gt;
| 새로운 요구사항을 구현&lt;br /&gt;
|-&lt;br /&gt;
| ChatGPT&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| WebShop&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| ALFWorld&lt;br /&gt;
| YES &lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| AgentGPT&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| BabyAGI&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Jarvis&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Epimetheus&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
*마케팅 전략 제시&lt;br /&gt;
**코드를 작성 할 수 있는 개발자들에게 LLM을 기반으로 자동화 할 수 있는 점을 강조&lt;br /&gt;
**본 서비스에 필요로 하는 기능을 직접 추가할 수 있음을 강조&lt;br /&gt;
**AI 혹은 다른 사람이 작성해 놓은 비슷한 TASK를 기반으로 기능을 추가할 수 있음을 강조&lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
내용&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
내용&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
'''◇ (AI)오*영(팀장)'''&lt;br /&gt;
  &lt;br /&gt;
'''◇ (Back-end)김*원'''&lt;br /&gt;
&lt;br /&gt;
'''◇ (Front-end)이*주'''&lt;br /&gt;
*UI/UX&lt;br /&gt;
*플랫폼 페이지 구현&lt;br /&gt;
*Back-end와의 SSE통신코드 작성&lt;br /&gt;
'''◇ (Front-end)장*호'''&lt;br /&gt;
*컴포넌트 설계&lt;br /&gt;
*각 subtask별 실행코드 환경 구성&lt;br /&gt;
*실행코드의 실행 테스트 구현&lt;br /&gt;
'''◇ (Back-end)황*우'''&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
[[파일:에피메테우스_제품요구사항.png]]&lt;br /&gt;
====설계 사양====&lt;br /&gt;
* &amp;lt;strong&amp;gt;사용자가 요구한 업무에 대한 출력 제공&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 사용자는 원하는 업무를 text box에 입력할 수 있다.&lt;br /&gt;
** 입력을 제출(submit)하면 서버에서 1개 이상의 Step을 출력해준다.&lt;br /&gt;
** 각 Step은 요약(Title), 상세내용(Description), 코드(Code), 작성언어(Language)를 포함하고 있다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;코드 실행 가능&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 이전 Step의 출력이 다음 Step의 입력으로 제공되어야 한다.&lt;br /&gt;
** Step에 입력된 코드를 실행하여 Task에 대해서 수행한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;사용자가 직접 특정 단계의 코드 수정 가능&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 특정 Step의 Code를 수정할 수 있는 에디터를 제공한다.&lt;br /&gt;
** 새로 입력한 Code의 입출력 양식이 같은지 검사한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;이전 요청 저장&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 기존의 사용자가 입력한 Task에 대해서 기록한다.&lt;br /&gt;
** 이전 업무와 연결되는 이후의 업무를 우선적으로 제공한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;음성 인식을 통한 업무 입력 기능 제공&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 음성인식을 통해 사용자가 업무를 입력하면, 텍스트로 변환하여 text box에 자동으로 입력한다.&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
[[파일:에피메테우스_인프라도.jpg]]&lt;br /&gt;
* &amp;lt;strong&amp;gt;User 요청의 접근 과정&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Route53을 통해 S3 Bucket에 존재하는 정적 리소스에 접근한다.&lt;br /&gt;
** S3 Bucket에서 Server로 API 요청을 보낸다.&lt;br /&gt;
** Public Subnet 내의 Nginx EC2를 통해 Spring Boot EC2로 리버스 프록시가 진행된다.&lt;br /&gt;
** DB에 접근이 필요하다면 Private Subnet 내의 MongoDB EC2에서 DB 데이터를 받아온다.&lt;br /&gt;
** Llama에서 처리해야 하는 로직이 존재한다면 School Server로 요청을 보낸다.&lt;br /&gt;
** School Server에 존재하는 Llama FastAPI 서버에서 응답을 보낸다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;Developer의 배포 과정(Frontend)&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Source Code를 Main에 Merge한다.&lt;br /&gt;
** Github Webhook을 통해 API Gateway에 연결된 API를 호출한다.&lt;br /&gt;
** Lambda를 Trigger하여 Private Subnet 내의 Jenkins EC2로 Github Webhook의 Body를 전송한다.&lt;br /&gt;
** Frontend 수정 여부를 판별한다.&lt;br /&gt;
** Frontend의 배포 시에는 jenkins에서 빌드된 bundle을 S3 React Build Bucket에 보낸다.&lt;br /&gt;
** S3 Build Bucket에서 S3 Deploy Bucket으로 보내고, Client는 이쪽으로 접근할 수 있다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;Developer의 배포 과정(Backend)&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Source Code를 Main에 Merge한다.&lt;br /&gt;
** Github Webhook을 통해 API Gateway에 연결된 API를 호출한다.&lt;br /&gt;
** Lambda를 Trigger하여 Private Subnet 내의 Jenkins EC2로 Github Webhook의 Body를 전송한다.&lt;br /&gt;
** Backend 수정 여부를 판별한다.&lt;br /&gt;
** Jar 파일을 S3 Spring Bucket에 저장한다.&lt;br /&gt;
** CodeDeploy에서 파일을 가져와 Spring EC2에 실행한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;외부 접근 제한&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Build와 관련된 단위들은 외부에서 접근이 불가능하다.&lt;br /&gt;
** NAT Gateway를 통해 내부 단위들은 외부 인터넷에 접근가능하다.&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
* Task1: Turn on the song on Youtube&lt;br /&gt;
** Step 1. Open the web-browser&lt;br /&gt;
** Step 2. Access to YouTube.&lt;br /&gt;
** Step 3. Search for the song you want to play.&lt;br /&gt;
** Step 4. Click on the video you want to play.&lt;br /&gt;
&lt;br /&gt;
* Task2: Write a Personal Statement that fits the certain company's job opening&lt;br /&gt;
** Step 1. Highlight your relevant skills and experience.&lt;br /&gt;
** Step 2. Demonstrate your knowledge of the company and the position.&lt;br /&gt;
** Step 3. Emphasize your enthusiasm for the industry and the company.&lt;br /&gt;
** Step 4. Showcase your ability to work well in a team environment.&lt;br /&gt;
&lt;br /&gt;
* Task3: Buy the most expensive raincoat in Amazon and Coupang&lt;br /&gt;
** Step 1. Open the web-browser.&lt;br /&gt;
** Step 2. Access to Amazon or Coupang.&lt;br /&gt;
** Step 3. Search for the most expensive raincoat.&lt;br /&gt;
** Step 4. Select the raincoat and add to cart.&lt;br /&gt;
** Step 5. Proceed to checkout.&lt;br /&gt;
** Step 6. Enter shipping and billing information.&lt;br /&gt;
** Step 7. Review order summary and place order.&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
◇ 기능별 상세 요구사항&lt;br /&gt;
* 사용자가 요구한 업무에 대한 출력 제공&lt;br /&gt;
** 사용자는 원하는 업무를 text box에 입력할 수 있다.&lt;br /&gt;
** 입력을 제출하면 서버에서 1개 이상의 Step을 출력해준다.&lt;br /&gt;
** 각 Step은 요약(Title), 상세내용(Description), 코드(Code), 작성언어(Language)를 포함하고 있다.&lt;br /&gt;
&lt;br /&gt;
* 코드 실행 기능&lt;br /&gt;
** 이전 Step의 출력이 다음 Step의 입력으로 제공되어야 한다.&lt;br /&gt;
** Step에 입력된 코드를 실행하여 Task에 대하여 수행한다.&lt;br /&gt;
&lt;br /&gt;
* 사용자가 직접 특정 단계의 코드 수정 가능&lt;br /&gt;
** 특정 Step의 Code를 수정할 수 있는 에디터를 제공한다.&lt;br /&gt;
** 새로 입력한 Code의 입출력 양식이 같은지 검사한다.&lt;br /&gt;
&lt;br /&gt;
* 이전 요청 저장&lt;br /&gt;
** 기존의 사용자가 입력한 Task에 대해서 기록한다.&lt;br /&gt;
** 이전 업무와 연결되는 이후의 업무를 우선적으로 제공한다.&lt;br /&gt;
&lt;br /&gt;
* 음성 인식을 통한 업무 입력 기능 제공&lt;br /&gt;
** 음성인식을 통해 사용자가 업무를 입력하면, 텍스트로 변환하여 text box에 자동으로 입력한다.&lt;br /&gt;
&lt;br /&gt;
◇ System Flow Chart&lt;br /&gt;
[[파일:System Flow Chart.jpg]]&lt;br /&gt;
#Write a Task : 사용자가 Task를 작성한다.&lt;br /&gt;
#Split Task into SubTasks : 사용자가 작성한 Task를 Llama가 SubTask로 나누고 이를 서버가 파싱하여 사용자에게 SubTask로 제공한다.&lt;br /&gt;
#See the SubTasks of Task : 사용자는 서버가 분리한 SubTask들을 볼 수 있다.&lt;br /&gt;
#Click the Exec Button : 사용자가 코드 실행 버튼을 누른다.&lt;br /&gt;
#Search the Codes of each SubTasks : 서버는 각 SubTask들의 코드를 데이터베이스에서 탐색한다.&lt;br /&gt;
#Execute the Javascript Code : 서버가 탐색한 Javascript Code를 실행시킨다.&lt;br /&gt;
#Check the result of the Task : 사용자는 Task와 코드의 결과값이 일치하는지 확인한다.&lt;br /&gt;
&lt;br /&gt;
*이론적 계산 및 시뮬레이션&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
내용&lt;br /&gt;
====포스터====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===관련사업비 내역서===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
내용&lt;/div&gt;</summary>
		<author><name>Com2312</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%EC%97%90%ED%94%BC%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4&amp;diff=9581</id>
		<title>에피메테우스</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%EC%97%90%ED%94%BC%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4&amp;diff=9581"/>
				<updated>2023-12-24T05:32:57Z</updated>
		
		<summary type="html">&lt;p&gt;Com2312: /* 상세설계 내용 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : ''' 에피메테우스(LLM을 활용한 웹 기반의 업무 자동화 플랫폼)&lt;br /&gt;
&lt;br /&gt;
''' 영문 : ''' 00000000..&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
에피메테우스&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
정형구 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2023년 9월 ~ 2023년 12월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 오*영(팀장)&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 김*원&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 이*주&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 장*호&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 황*우&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
'''◇ LLM을 활용한 웹 기반의 업무 자동화 플랫폼 구축'''&lt;br /&gt;
*사용자가 제공한 업무를 실제로 실행할 수 있는 자동화 AI 플랫폼 구현이 주된 목표이다. &lt;br /&gt;
*기존 AutoGPT와 유사한 기능을 제공하도록 대형 언어 모델(LLM)을 이용해 사용자의 업무를 이루기 위한 일련의 과정을 LLM(Llama)이 생성 후 제공한다. &lt;br /&gt;
*기존 서비스와의 차이점은 AI 모델의 단점인 블랙박스 특성을 없애기 위해 업무를 수행하기 위한 각 단계에 적절한 코드를 DB에서 불러오고, 해당 코드를 실행한다는 점이다. &lt;br /&gt;
*특정 단계에 해당하는 기능이 없을 때 원하는 기능을 사용자가 직접 추가하여 실행할 수 있다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
*현재 ChatGPT의 성공에 힘입어 LLM을 이용하여 업무를 자동화하는 시도가 존재한다.&lt;br /&gt;
*LLM을 이용하여 모든 업무를 자동화하는 것은 현재 수준으로는 부족하다는 보고가 있다.&lt;br /&gt;
*이러한 배경에 힘입어 기존 서비스의 한계점을 극복하기 위해 코드 단위로 업무를 실행하는 웹 기반의 업무 자동화 플랫폼을 구현하고자 한다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
◇ Frontend&lt;br /&gt;
*접근성을 고려한 UI 개발&lt;br /&gt;
*사용자가 작성한 코드를 웹 환경에서 실행시키는 기능 개발&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ Backend&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ AI&lt;br /&gt;
*LLM(Large Language Model)을 이용하여 사용자 목표 달성을 위한 업무를 자동으로 분할하는 기능 개발&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
* 다양한 Benchmark에 대하여 여러 거대 언어 모델들의 성능을 비교&lt;br /&gt;
[[파일:Benchmark.jpg|700px]]&lt;br /&gt;
* 하지만 해당 Benchmark에는 구현하고자 하는 기능을 담고 있지 않음&lt;br /&gt;
* 해당 Benchmark에서 Llama-2(13B)을 사용&lt;br /&gt;
*특허조사 및 특허 전략 분석&lt;br /&gt;
&lt;br /&gt;
====기술 로드맵====&lt;br /&gt;
* Frontend&lt;br /&gt;
**Figma&lt;br /&gt;
**React&lt;br /&gt;
**web worker&lt;br /&gt;
*Backend&lt;br /&gt;
**Spring Boot&lt;br /&gt;
**AWS EC2&lt;br /&gt;
**AWS VPC&lt;br /&gt;
**AWS Lambda&lt;br /&gt;
**Jenkins&lt;br /&gt;
**Github Webhook&lt;br /&gt;
**MongoDB&lt;br /&gt;
**Docker&lt;br /&gt;
**AWS Route53&lt;br /&gt;
*AI&lt;br /&gt;
**Llama-13B&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
*경쟁제품 조사 비교&lt;br /&gt;
{| cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot; &amp;quot;text-align&amp;quot;=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 서비스&lt;br /&gt;
| 사용자가 요구사항을 수행하기 위해 Sub task로 분할&lt;br /&gt;
| Subtask를 실행&lt;br /&gt;
| 새로운 요구사항을 구현&lt;br /&gt;
|-&lt;br /&gt;
| ChatGPT&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| WebShop&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| ALFWorld&lt;br /&gt;
| YES &lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| AgentGPT&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| BabyAGI&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Jarvis&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Epimetheus&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
*마케팅 전략 제시&lt;br /&gt;
**코드를 작성 할 수 있는 개발자들에게 LLM을 기반으로 자동화 할 수 있는 점을 강조&lt;br /&gt;
**본 서비스에 필요로 하는 기능을 직접 추가할 수 있음을 강조&lt;br /&gt;
**AI 혹은 다른 사람이 작성해 놓은 비슷한 TASK를 기반으로 기능을 추가할 수 있음을 강조&lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
내용&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
내용&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
'''◇ (AI)오*영(팀장)'''&lt;br /&gt;
  &lt;br /&gt;
'''◇ (Back-end)김*원'''&lt;br /&gt;
&lt;br /&gt;
'''◇ (Front-end)이*주'''&lt;br /&gt;
*UI/UX&lt;br /&gt;
*플랫폼 페이지 구현&lt;br /&gt;
*Back-end와의 SSE통신코드 작성&lt;br /&gt;
'''◇ (Front-end)장*호'''&lt;br /&gt;
*컴포넌트 설계&lt;br /&gt;
*각 subtask별 실행코드 환경 구성&lt;br /&gt;
*실행코드의 실행 테스트 구현&lt;br /&gt;
'''◇ (Back-end)황*우'''&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
[[파일:에피메테우스_제품요구사항.png]]&lt;br /&gt;
====설계 사양====&lt;br /&gt;
* &amp;lt;strong&amp;gt;사용자가 요구한 업무에 대한 출력 제공&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 사용자는 원하는 업무를 text box에 입력할 수 있다.&lt;br /&gt;
** 입력을 제출(submit)하면 서버에서 1개 이상의 Step을 출력해준다.&lt;br /&gt;
** 각 Step은 요약(Title), 상세내용(Description), 코드(Code), 작성언어(Language)를 포함하고 있다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;코드 실행 가능&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 이전 Step의 출력이 다음 Step의 입력으로 제공되어야 한다.&lt;br /&gt;
** Step에 입력된 코드를 실행하여 Task에 대해서 수행한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;사용자가 직접 특정 단계의 코드 수정 가능&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 특정 Step의 Code를 수정할 수 있는 에디터를 제공한다.&lt;br /&gt;
** 새로 입력한 Code의 입출력 양식이 같은지 검사한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;이전 요청 저장&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 기존의 사용자가 입력한 Task에 대해서 기록한다.&lt;br /&gt;
** 이전 업무와 연결되는 이후의 업무를 우선적으로 제공한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;음성 인식을 통한 업무 입력 기능 제공&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 음성인식을 통해 사용자가 업무를 입력하면, 텍스트로 변환하여 text box에 자동으로 입력한다.&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
[[파일:에피메테우스_인프라도.jpg]]&lt;br /&gt;
* &amp;lt;strong&amp;gt;User 요청의 접근 과정&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Route53을 통해 S3 Bucket에 존재하는 정적 리소스에 접근한다.&lt;br /&gt;
** S3 Bucket에서 Server로 API 요청을 보낸다.&lt;br /&gt;
** Public Subnet 내의 Nginx EC2를 통해 Spring Boot EC2로 리버스 프록시가 진행된다.&lt;br /&gt;
** DB에 접근이 필요하다면 Private Subnet 내의 MongoDB EC2에서 DB 데이터를 받아온다.&lt;br /&gt;
** Llama에서 처리해야 하는 로직이 존재한다면 School Server로 요청을 보낸다.&lt;br /&gt;
** School Server에 존재하는 Llama FastAPI 서버에서 응답을 보낸다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;Developer의 배포 과정(Frontend)&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Source Code를 Main에 Merge한다.&lt;br /&gt;
** Github Webhook을 통해 API Gateway에 연결된 API를 호출한다.&lt;br /&gt;
** Lambda를 Trigger하여 Private Subnet 내의 Jenkins EC2로 Github Webhook의 Body를 전송한다.&lt;br /&gt;
** Frontend 수정 여부를 판별한다.&lt;br /&gt;
** Frontend의 배포 시에는 jenkins에서 빌드된 bundle을 S3 React Build Bucket에 보낸다.&lt;br /&gt;
** S3 Build Bucket에서 S3 Deploy Bucket으로 보내고, Client는 이쪽으로 접근할 수 있다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;Developer의 배포 과정(Backend)&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Source Code를 Main에 Merge한다.&lt;br /&gt;
** Github Webhook을 통해 API Gateway에 연결된 API를 호출한다.&lt;br /&gt;
** Lambda를 Trigger하여 Private Subnet 내의 Jenkins EC2로 Github Webhook의 Body를 전송한다.&lt;br /&gt;
** Backend 수정 여부를 판별한다.&lt;br /&gt;
** Jar 파일을 S3 Spring Bucket에 저장한다.&lt;br /&gt;
** CodeDeploy에서 파일을 가져와 Spring EC2에 실행한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;외부 접근 제한&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Build와 관련된 단위들은 외부에서 접근이 불가능하다.&lt;br /&gt;
** NAT Gateway를 통해 내부 단위들은 외부 인터넷에 접근가능하다.&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
* Task1: Turn on the song on Youtube&lt;br /&gt;
** Step 1. Open the web-browser&lt;br /&gt;
** Step 2. Access to YouTube.&lt;br /&gt;
** Step 3. Search for the song you want to play.&lt;br /&gt;
** Step 4. Click on the video you want to play.&lt;br /&gt;
&lt;br /&gt;
* Task2: Write a Personal Statement that fits the certain company's job opening&lt;br /&gt;
** Step 1. Highlight your relevant skills and experience.&lt;br /&gt;
** Step 2. Demonstrate your knowledge of the company and the position.&lt;br /&gt;
** Step 3. Emphasize your enthusiasm for the industry and the company.&lt;br /&gt;
** Step 4. Showcase your ability to work well in a team environment.&lt;br /&gt;
&lt;br /&gt;
* Task3: Buy the most expensive raincoat in Amazon and Coupang&lt;br /&gt;
** Step 1. Open the web-browser.&lt;br /&gt;
** Step 2. Access to Amazon or Coupang.&lt;br /&gt;
** Step 3. Search for the most expensive raincoat.&lt;br /&gt;
** Step 4. Select the raincoat and add to cart.&lt;br /&gt;
** Step 5. Proceed to checkout.&lt;br /&gt;
** Step 6. Enter shipping and billing information.&lt;br /&gt;
** Step 7. Review order summary and place order.&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
◇ 기능별 상세 요구사항&lt;br /&gt;
* 사용자가 요구한 업무에 대한 출력 제공&lt;br /&gt;
** 사용자는 원하는 업무를 text box에 입력할 수 있다.&lt;br /&gt;
** 입력을 제출하면 서버에서 1개 이상의 Step을 출력해준다.&lt;br /&gt;
** 각 Step은 요약(Title), 상세내용(Description), 코드(Code), 작성언어(Language)를 포함하고 있다.&lt;br /&gt;
&lt;br /&gt;
* 코드 실행 기능&lt;br /&gt;
** 이전 Step의 출력이 다음 Step의 입력으로 제공되어야 한다.&lt;br /&gt;
** Step에 입력된 코드를 실행하여 Task에 대하여 수행한다.&lt;br /&gt;
&lt;br /&gt;
* 사용자가 직접 특정 단계의 코드 수정 가능&lt;br /&gt;
** 특정 Step의 Code를 수정할 수 있는 에디터를 제공한다.&lt;br /&gt;
** 새로 입력한 Code의 입출력 양식이 같은지 검사한다.&lt;br /&gt;
&lt;br /&gt;
* 이전 요청 저장&lt;br /&gt;
** 기존의 사용자가 입력한 Task에 대해서 기록한다.&lt;br /&gt;
** 이전 업무와 연결되는 이후의 업무를 우선적으로 제공한다.&lt;br /&gt;
&lt;br /&gt;
* 음성 인식을 통한 업무 입력 기능 제공&lt;br /&gt;
** 음성인식을 통해 사용자가 업무를 입력하면, 텍스트로 변환하여 text box에 자동으로 입력한다.&lt;br /&gt;
&lt;br /&gt;
◇ System Flow Chart&lt;br /&gt;
[[파일:System Flow Chart.jpg]]&lt;br /&gt;
#Write a Task : 사용자가 Task를 작성한다.&lt;br /&gt;
#Split Task into SubTasks : 사용자가 작성한 Task를 Llama가 SubTask로 나누고 이를 서버가 파싱하여 사용자에게 SubTask로 제공한다.&lt;br /&gt;
#See the SubTasks of Task : 사용자는 서버가 분리한 SubTask들을 볼 수 있다.&lt;br /&gt;
#Click the Exec Button : 사용자가 코드 실행 버튼을 누른다.&lt;br /&gt;
#Search the Codes of each SubTasks : 서버는 각 SubTask들의 코드를 데이터베이스에서 탐색한다.&lt;br /&gt;
#Execute the Javascript Code : 서버가 탐색한 Javascript Code를 실행시킨다.&lt;br /&gt;
#Check the result of the Task : 사용자는 Task와 코드의 결과값이 일치하는지 확인한다.&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
내용&lt;br /&gt;
====포스터====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===관련사업비 내역서===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
내용&lt;/div&gt;</summary>
		<author><name>Com2312</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%EC%97%90%ED%94%BC%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4&amp;diff=9580</id>
		<title>에피메테우스</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%EC%97%90%ED%94%BC%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4&amp;diff=9580"/>
				<updated>2023-12-24T05:32:12Z</updated>
		
		<summary type="html">&lt;p&gt;Com2312: /* 상세설계 내용 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : ''' 에피메테우스(LLM을 활용한 웹 기반의 업무 자동화 플랫폼)&lt;br /&gt;
&lt;br /&gt;
''' 영문 : ''' 00000000..&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
에피메테우스&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
정형구 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2023년 9월 ~ 2023년 12월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 오*영(팀장)&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 김*원&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 이*주&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 장*호&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 황*우&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
'''◇ LLM을 활용한 웹 기반의 업무 자동화 플랫폼 구축'''&lt;br /&gt;
*사용자가 제공한 업무를 실제로 실행할 수 있는 자동화 AI 플랫폼 구현이 주된 목표이다. &lt;br /&gt;
*기존 AutoGPT와 유사한 기능을 제공하도록 대형 언어 모델(LLM)을 이용해 사용자의 업무를 이루기 위한 일련의 과정을 LLM(Llama)이 생성 후 제공한다. &lt;br /&gt;
*기존 서비스와의 차이점은 AI 모델의 단점인 블랙박스 특성을 없애기 위해 업무를 수행하기 위한 각 단계에 적절한 코드를 DB에서 불러오고, 해당 코드를 실행한다는 점이다. &lt;br /&gt;
*특정 단계에 해당하는 기능이 없을 때 원하는 기능을 사용자가 직접 추가하여 실행할 수 있다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
*현재 ChatGPT의 성공에 힘입어 LLM을 이용하여 업무를 자동화하는 시도가 존재한다.&lt;br /&gt;
*LLM을 이용하여 모든 업무를 자동화하는 것은 현재 수준으로는 부족하다는 보고가 있다.&lt;br /&gt;
*이러한 배경에 힘입어 기존 서비스의 한계점을 극복하기 위해 코드 단위로 업무를 실행하는 웹 기반의 업무 자동화 플랫폼을 구현하고자 한다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
◇ Frontend&lt;br /&gt;
*접근성을 고려한 UI 개발&lt;br /&gt;
*사용자가 작성한 코드를 웹 환경에서 실행시키는 기능 개발&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ Backend&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ AI&lt;br /&gt;
*LLM(Large Language Model)을 이용하여 사용자 목표 달성을 위한 업무를 자동으로 분할하는 기능 개발&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
* 다양한 Benchmark에 대하여 여러 거대 언어 모델들의 성능을 비교&lt;br /&gt;
[[파일:Benchmark.jpg|700px]]&lt;br /&gt;
* 하지만 해당 Benchmark에는 구현하고자 하는 기능을 담고 있지 않음&lt;br /&gt;
* 해당 Benchmark에서 Llama-2(13B)을 사용&lt;br /&gt;
*특허조사 및 특허 전략 분석&lt;br /&gt;
&lt;br /&gt;
====기술 로드맵====&lt;br /&gt;
* Frontend&lt;br /&gt;
**Figma&lt;br /&gt;
**React&lt;br /&gt;
**web worker&lt;br /&gt;
*Backend&lt;br /&gt;
**Spring Boot&lt;br /&gt;
**AWS EC2&lt;br /&gt;
**AWS VPC&lt;br /&gt;
**AWS Lambda&lt;br /&gt;
**Jenkins&lt;br /&gt;
**Github Webhook&lt;br /&gt;
**MongoDB&lt;br /&gt;
**Docker&lt;br /&gt;
**AWS Route53&lt;br /&gt;
*AI&lt;br /&gt;
**Llama-13B&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
*경쟁제품 조사 비교&lt;br /&gt;
{| cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot; &amp;quot;text-align&amp;quot;=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 서비스&lt;br /&gt;
| 사용자가 요구사항을 수행하기 위해 Sub task로 분할&lt;br /&gt;
| Subtask를 실행&lt;br /&gt;
| 새로운 요구사항을 구현&lt;br /&gt;
|-&lt;br /&gt;
| ChatGPT&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| WebShop&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| ALFWorld&lt;br /&gt;
| YES &lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| AgentGPT&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| BabyAGI&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Jarvis&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Epimetheus&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
*마케팅 전략 제시&lt;br /&gt;
**코드를 작성 할 수 있는 개발자들에게 LLM을 기반으로 자동화 할 수 있는 점을 강조&lt;br /&gt;
**본 서비스에 필요로 하는 기능을 직접 추가할 수 있음을 강조&lt;br /&gt;
**AI 혹은 다른 사람이 작성해 놓은 비슷한 TASK를 기반으로 기능을 추가할 수 있음을 강조&lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
내용&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
내용&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
'''◇ (AI)오*영(팀장)'''&lt;br /&gt;
  &lt;br /&gt;
'''◇ (Back-end)김*원'''&lt;br /&gt;
&lt;br /&gt;
'''◇ (Front-end)이*주'''&lt;br /&gt;
*UI/UX&lt;br /&gt;
*플랫폼 페이지 구현&lt;br /&gt;
*Back-end와의 SSE통신코드 작성&lt;br /&gt;
'''◇ (Front-end)장*호'''&lt;br /&gt;
*컴포넌트 설계&lt;br /&gt;
*각 subtask별 실행코드 환경 구성&lt;br /&gt;
*실행코드의 실행 테스트 구현&lt;br /&gt;
'''◇ (Back-end)황*우'''&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
[[파일:에피메테우스_제품요구사항.png]]&lt;br /&gt;
====설계 사양====&lt;br /&gt;
* &amp;lt;strong&amp;gt;사용자가 요구한 업무에 대한 출력 제공&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 사용자는 원하는 업무를 text box에 입력할 수 있다.&lt;br /&gt;
** 입력을 제출(submit)하면 서버에서 1개 이상의 Step을 출력해준다.&lt;br /&gt;
** 각 Step은 요약(Title), 상세내용(Description), 코드(Code), 작성언어(Language)를 포함하고 있다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;코드 실행 가능&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 이전 Step의 출력이 다음 Step의 입력으로 제공되어야 한다.&lt;br /&gt;
** Step에 입력된 코드를 실행하여 Task에 대해서 수행한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;사용자가 직접 특정 단계의 코드 수정 가능&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 특정 Step의 Code를 수정할 수 있는 에디터를 제공한다.&lt;br /&gt;
** 새로 입력한 Code의 입출력 양식이 같은지 검사한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;이전 요청 저장&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 기존의 사용자가 입력한 Task에 대해서 기록한다.&lt;br /&gt;
** 이전 업무와 연결되는 이후의 업무를 우선적으로 제공한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;음성 인식을 통한 업무 입력 기능 제공&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 음성인식을 통해 사용자가 업무를 입력하면, 텍스트로 변환하여 text box에 자동으로 입력한다.&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
[[파일:에피메테우스_인프라도.jpg]]&lt;br /&gt;
* &amp;lt;strong&amp;gt;User 요청의 접근 과정&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Route53을 통해 S3 Bucket에 존재하는 정적 리소스에 접근한다.&lt;br /&gt;
** S3 Bucket에서 Server로 API 요청을 보낸다.&lt;br /&gt;
** Public Subnet 내의 Nginx EC2를 통해 Spring Boot EC2로 리버스 프록시가 진행된다.&lt;br /&gt;
** DB에 접근이 필요하다면 Private Subnet 내의 MongoDB EC2에서 DB 데이터를 받아온다.&lt;br /&gt;
** Llama에서 처리해야 하는 로직이 존재한다면 School Server로 요청을 보낸다.&lt;br /&gt;
** School Server에 존재하는 Llama FastAPI 서버에서 응답을 보낸다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;Developer의 배포 과정(Frontend)&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Source Code를 Main에 Merge한다.&lt;br /&gt;
** Github Webhook을 통해 API Gateway에 연결된 API를 호출한다.&lt;br /&gt;
** Lambda를 Trigger하여 Private Subnet 내의 Jenkins EC2로 Github Webhook의 Body를 전송한다.&lt;br /&gt;
** Frontend 수정 여부를 판별한다.&lt;br /&gt;
** Frontend의 배포 시에는 jenkins에서 빌드된 bundle을 S3 React Build Bucket에 보낸다.&lt;br /&gt;
** S3 Build Bucket에서 S3 Deploy Bucket으로 보내고, Client는 이쪽으로 접근할 수 있다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;Developer의 배포 과정(Backend)&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Source Code를 Main에 Merge한다.&lt;br /&gt;
** Github Webhook을 통해 API Gateway에 연결된 API를 호출한다.&lt;br /&gt;
** Lambda를 Trigger하여 Private Subnet 내의 Jenkins EC2로 Github Webhook의 Body를 전송한다.&lt;br /&gt;
** Backend 수정 여부를 판별한다.&lt;br /&gt;
** Jar 파일을 S3 Spring Bucket에 저장한다.&lt;br /&gt;
** CodeDeploy에서 파일을 가져와 Spring EC2에 실행한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;외부 접근 제한&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Build와 관련된 단위들은 외부에서 접근이 불가능하다.&lt;br /&gt;
** NAT Gateway를 통해 내부 단위들은 외부 인터넷에 접근가능하다.&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
* Task1: Turn on the song on Youtube&lt;br /&gt;
** Step 1. Open the web-browser&lt;br /&gt;
** Step 2. Access to YouTube.&lt;br /&gt;
** Step 3. Search for the song you want to play.&lt;br /&gt;
** Step 4. Click on the video you want to play.&lt;br /&gt;
&lt;br /&gt;
* Task2: Write a Personal Statement that fits the certain company's job opening&lt;br /&gt;
** Step 1. Highlight your relevant skills and experience.&lt;br /&gt;
** Step 2. Demonstrate your knowledge of the company and the position.&lt;br /&gt;
** Step 3. Emphasize your enthusiasm for the industry and the company.&lt;br /&gt;
** Step 4. Showcase your ability to work well in a team environment.&lt;br /&gt;
&lt;br /&gt;
* Task3: Buy the most expensive raincoat in Amazon and Coupang&lt;br /&gt;
** Step 1. Open the web-browser.&lt;br /&gt;
** Step 2. Access to Amazon or Coupang.&lt;br /&gt;
** Step 3. Search for the most expensive raincoat.&lt;br /&gt;
** Step 4. Select the raincoat and add to cart.&lt;br /&gt;
** Step 5. Proceed to checkout.&lt;br /&gt;
** Step 6. Enter shipping and billing information.&lt;br /&gt;
** Step 7. Review order summary and place order.&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
◇ 기능별 상세 요구사항&lt;br /&gt;
* 사용자가 요구한 업무에 대한 출력 제공&lt;br /&gt;
** 사용자는 원하는 업무를 text box에 입력할 수 있다.&lt;br /&gt;
** 입력을 제출하면 서버에서 1개 이상의 Step을 출력해준다.&lt;br /&gt;
** 각 Step은 요약(Title), 상세내용(Description), 코드(Code), 작성언어(Language)를 포함하고 있다.&lt;br /&gt;
&lt;br /&gt;
* 코드 실행 기능&lt;br /&gt;
** 이전 Step의 출력이 다음 Step의 입력으로 제공되어야 한다.&lt;br /&gt;
** Step에 입력된 코드를 실행하여 Task에 대하여 수행한다.&lt;br /&gt;
&lt;br /&gt;
* 사용자가 직접 특정 단계의 코드 수정 가능&lt;br /&gt;
** 특정 Step의 Code를 수정할 수 있는 에디터를 제공한다.&lt;br /&gt;
** 새로 입력한 Code의 입출력 양식이 같은지 검사한다.&lt;br /&gt;
&lt;br /&gt;
* 이전 요청 저장&lt;br /&gt;
** 기존의 사용자가 입력한 Task에 대해서 기록한다.&lt;br /&gt;
** 이전 업무와 연결되는 이후의 업무를 우선적으로 제공한다.&lt;br /&gt;
&lt;br /&gt;
* 음성 인식을 통한 업무 입력 기능 제공&lt;br /&gt;
** 음성인식을 통해 사용자가 업무를 입력하면, 텍스트로 변환하여 text box에 자동으로 입력한다.&lt;br /&gt;
&lt;br /&gt;
◇ System Flow Chart&lt;br /&gt;
[[파일:System Flow Chart.jpg]]&lt;br /&gt;
#Write a Task : 사용자가 Task를 작성한다.&lt;br /&gt;
#Split Task into SubTasks : 사용자가 작성한 Task를 Llama가 SubTask로 나누고 이를 서버가 파싱하여 사용자에게 SubTask로 제공한다.&lt;br /&gt;
3. See the SubTasks of Task : 사용자는 서버가 분리한 SubTask들을 볼 수 있다.&lt;br /&gt;
4. Click the Exec Button : 사용자가 코드 실행 버튼을 누른다.&lt;br /&gt;
5. Search the Codes of each SubTasks : 서버는 각 SubTask들의 코드를 데이터베이스에서 탐색한다.&lt;br /&gt;
6. Execute the Javascript Code : 서버가 탐색한 Javascript Code를 실행시킨다.&lt;br /&gt;
7. Check the result of the Task : 사용자는 Task와 코드의 결과값이 일치하는지 확인한다.&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
내용&lt;br /&gt;
====포스터====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===관련사업비 내역서===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
내용&lt;/div&gt;</summary>
		<author><name>Com2312</name></author>	</entry>

	<entry>
		<id>https://capstone.uos.ac.kr/cdc/index.php?title=%EC%97%90%ED%94%BC%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4&amp;diff=9579</id>
		<title>에피메테우스</title>
		<link rel="alternate" type="text/html" href="https://capstone.uos.ac.kr/cdc/index.php?title=%EC%97%90%ED%94%BC%EB%A9%94%ED%85%8C%EC%9A%B0%EC%8A%A4&amp;diff=9579"/>
				<updated>2023-12-24T05:31:58Z</updated>
		
		<summary type="html">&lt;p&gt;Com2312: /* 상세설계 내용 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
==프로젝트 개요==&lt;br /&gt;
=== 기술개발 과제 ===&lt;br /&gt;
''' 국문 : ''' 에피메테우스(LLM을 활용한 웹 기반의 업무 자동화 플랫폼)&lt;br /&gt;
&lt;br /&gt;
''' 영문 : ''' 00000000..&lt;br /&gt;
&lt;br /&gt;
===과제 팀명===&lt;br /&gt;
에피메테우스&lt;br /&gt;
&lt;br /&gt;
===지도교수===&lt;br /&gt;
정형구 교수님&lt;br /&gt;
&lt;br /&gt;
===개발기간===&lt;br /&gt;
2023년 9월 ~ 2023년 12월 (총 4개월)&lt;br /&gt;
&lt;br /&gt;
===구성원 소개===&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 오*영(팀장)&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 김*원&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 이*주&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 장*호&lt;br /&gt;
&lt;br /&gt;
서울시립대학교 컴퓨터과학부 20189200** 황*우&lt;br /&gt;
&lt;br /&gt;
==서론==&lt;br /&gt;
===개발 과제의 개요===&lt;br /&gt;
&lt;br /&gt;
====개발 과제 요약====&lt;br /&gt;
'''◇ LLM을 활용한 웹 기반의 업무 자동화 플랫폼 구축'''&lt;br /&gt;
*사용자가 제공한 업무를 실제로 실행할 수 있는 자동화 AI 플랫폼 구현이 주된 목표이다. &lt;br /&gt;
*기존 AutoGPT와 유사한 기능을 제공하도록 대형 언어 모델(LLM)을 이용해 사용자의 업무를 이루기 위한 일련의 과정을 LLM(Llama)이 생성 후 제공한다. &lt;br /&gt;
*기존 서비스와의 차이점은 AI 모델의 단점인 블랙박스 특성을 없애기 위해 업무를 수행하기 위한 각 단계에 적절한 코드를 DB에서 불러오고, 해당 코드를 실행한다는 점이다. &lt;br /&gt;
*특정 단계에 해당하는 기능이 없을 때 원하는 기능을 사용자가 직접 추가하여 실행할 수 있다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 배경====&lt;br /&gt;
*현재 ChatGPT의 성공에 힘입어 LLM을 이용하여 업무를 자동화하는 시도가 존재한다.&lt;br /&gt;
*LLM을 이용하여 모든 업무를 자동화하는 것은 현재 수준으로는 부족하다는 보고가 있다.&lt;br /&gt;
*이러한 배경에 힘입어 기존 서비스의 한계점을 극복하기 위해 코드 단위로 업무를 실행하는 웹 기반의 업무 자동화 플랫폼을 구현하고자 한다.&lt;br /&gt;
&lt;br /&gt;
====개발 과제의 목표 및 내용====&lt;br /&gt;
◇ Frontend&lt;br /&gt;
*접근성을 고려한 UI 개발&lt;br /&gt;
*사용자가 작성한 코드를 웹 환경에서 실행시키는 기능 개발&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ Backend&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
◇ AI&lt;br /&gt;
*LLM(Large Language Model)을 이용하여 사용자 목표 달성을 위한 업무를 자동으로 분할하는 기능 개발&lt;br /&gt;
&lt;br /&gt;
===관련 기술의 현황===&lt;br /&gt;
====관련 기술의 현황 및 분석(State of art)====&lt;br /&gt;
* 다양한 Benchmark에 대하여 여러 거대 언어 모델들의 성능을 비교&lt;br /&gt;
[[파일:Benchmark.jpg|700px]]&lt;br /&gt;
* 하지만 해당 Benchmark에는 구현하고자 하는 기능을 담고 있지 않음&lt;br /&gt;
* 해당 Benchmark에서 Llama-2(13B)을 사용&lt;br /&gt;
*특허조사 및 특허 전략 분석&lt;br /&gt;
&lt;br /&gt;
====기술 로드맵====&lt;br /&gt;
* Frontend&lt;br /&gt;
**Figma&lt;br /&gt;
**React&lt;br /&gt;
**web worker&lt;br /&gt;
*Backend&lt;br /&gt;
**Spring Boot&lt;br /&gt;
**AWS EC2&lt;br /&gt;
**AWS VPC&lt;br /&gt;
**AWS Lambda&lt;br /&gt;
**Jenkins&lt;br /&gt;
**Github Webhook&lt;br /&gt;
**MongoDB&lt;br /&gt;
**Docker&lt;br /&gt;
**AWS Route53&lt;br /&gt;
*AI&lt;br /&gt;
**Llama-13B&lt;br /&gt;
====시장상황에 대한 분석====&lt;br /&gt;
*경쟁제품 조사 비교&lt;br /&gt;
{| cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot; &amp;quot;text-align&amp;quot;=&amp;quot;center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 서비스&lt;br /&gt;
| 사용자가 요구사항을 수행하기 위해 Sub task로 분할&lt;br /&gt;
| Subtask를 실행&lt;br /&gt;
| 새로운 요구사항을 구현&lt;br /&gt;
|-&lt;br /&gt;
| ChatGPT&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| WebShop&lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| ALFWorld&lt;br /&gt;
| YES &lt;br /&gt;
| NO&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| AgentGPT&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| BabyAGI&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Jarvis&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| NO&lt;br /&gt;
|-&lt;br /&gt;
| Epimetheus&lt;br /&gt;
| YES &lt;br /&gt;
| YES&lt;br /&gt;
| YES&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
*마케팅 전략 제시&lt;br /&gt;
**코드를 작성 할 수 있는 개발자들에게 LLM을 기반으로 자동화 할 수 있는 점을 강조&lt;br /&gt;
**본 서비스에 필요로 하는 기능을 직접 추가할 수 있음을 강조&lt;br /&gt;
**AI 혹은 다른 사람이 작성해 놓은 비슷한 TASK를 기반으로 기능을 추가할 수 있음을 강조&lt;br /&gt;
&lt;br /&gt;
===개발과제의 기대효과===&lt;br /&gt;
====기술적 기대효과====&lt;br /&gt;
내용&lt;br /&gt;
====경제적, 사회적 기대 및 파급효과====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===기술개발 일정 및 추진체계===&lt;br /&gt;
====개발 일정====&lt;br /&gt;
내용&lt;br /&gt;
====구성원 및 추진체계====&lt;br /&gt;
'''◇ (AI)오*영(팀장)'''&lt;br /&gt;
  &lt;br /&gt;
'''◇ (Back-end)김*원'''&lt;br /&gt;
&lt;br /&gt;
'''◇ (Front-end)이*주'''&lt;br /&gt;
*UI/UX&lt;br /&gt;
*플랫폼 페이지 구현&lt;br /&gt;
*Back-end와의 SSE통신코드 작성&lt;br /&gt;
'''◇ (Front-end)장*호'''&lt;br /&gt;
*컴포넌트 설계&lt;br /&gt;
*각 subtask별 실행코드 환경 구성&lt;br /&gt;
*실행코드의 실행 테스트 구현&lt;br /&gt;
'''◇ (Back-end)황*우'''&lt;br /&gt;
&lt;br /&gt;
==설계==&lt;br /&gt;
===설계사양===&lt;br /&gt;
====제품의 요구사항====&lt;br /&gt;
[[파일:에피메테우스_제품요구사항.png]]&lt;br /&gt;
====설계 사양====&lt;br /&gt;
* &amp;lt;strong&amp;gt;사용자가 요구한 업무에 대한 출력 제공&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 사용자는 원하는 업무를 text box에 입력할 수 있다.&lt;br /&gt;
** 입력을 제출(submit)하면 서버에서 1개 이상의 Step을 출력해준다.&lt;br /&gt;
** 각 Step은 요약(Title), 상세내용(Description), 코드(Code), 작성언어(Language)를 포함하고 있다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;코드 실행 가능&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 이전 Step의 출력이 다음 Step의 입력으로 제공되어야 한다.&lt;br /&gt;
** Step에 입력된 코드를 실행하여 Task에 대해서 수행한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;사용자가 직접 특정 단계의 코드 수정 가능&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 특정 Step의 Code를 수정할 수 있는 에디터를 제공한다.&lt;br /&gt;
** 새로 입력한 Code의 입출력 양식이 같은지 검사한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;이전 요청 저장&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 기존의 사용자가 입력한 Task에 대해서 기록한다.&lt;br /&gt;
** 이전 업무와 연결되는 이후의 업무를 우선적으로 제공한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;음성 인식을 통한 업무 입력 기능 제공&amp;lt;/strong&amp;gt;&lt;br /&gt;
** 음성인식을 통해 사용자가 업무를 입력하면, 텍스트로 변환하여 text box에 자동으로 입력한다.&lt;br /&gt;
&lt;br /&gt;
===개념설계안===&lt;br /&gt;
[[파일:에피메테우스_인프라도.jpg]]&lt;br /&gt;
* &amp;lt;strong&amp;gt;User 요청의 접근 과정&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Route53을 통해 S3 Bucket에 존재하는 정적 리소스에 접근한다.&lt;br /&gt;
** S3 Bucket에서 Server로 API 요청을 보낸다.&lt;br /&gt;
** Public Subnet 내의 Nginx EC2를 통해 Spring Boot EC2로 리버스 프록시가 진행된다.&lt;br /&gt;
** DB에 접근이 필요하다면 Private Subnet 내의 MongoDB EC2에서 DB 데이터를 받아온다.&lt;br /&gt;
** Llama에서 처리해야 하는 로직이 존재한다면 School Server로 요청을 보낸다.&lt;br /&gt;
** School Server에 존재하는 Llama FastAPI 서버에서 응답을 보낸다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;Developer의 배포 과정(Frontend)&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Source Code를 Main에 Merge한다.&lt;br /&gt;
** Github Webhook을 통해 API Gateway에 연결된 API를 호출한다.&lt;br /&gt;
** Lambda를 Trigger하여 Private Subnet 내의 Jenkins EC2로 Github Webhook의 Body를 전송한다.&lt;br /&gt;
** Frontend 수정 여부를 판별한다.&lt;br /&gt;
** Frontend의 배포 시에는 jenkins에서 빌드된 bundle을 S3 React Build Bucket에 보낸다.&lt;br /&gt;
** S3 Build Bucket에서 S3 Deploy Bucket으로 보내고, Client는 이쪽으로 접근할 수 있다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;Developer의 배포 과정(Backend)&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Source Code를 Main에 Merge한다.&lt;br /&gt;
** Github Webhook을 통해 API Gateway에 연결된 API를 호출한다.&lt;br /&gt;
** Lambda를 Trigger하여 Private Subnet 내의 Jenkins EC2로 Github Webhook의 Body를 전송한다.&lt;br /&gt;
** Backend 수정 여부를 판별한다.&lt;br /&gt;
** Jar 파일을 S3 Spring Bucket에 저장한다.&lt;br /&gt;
** CodeDeploy에서 파일을 가져와 Spring EC2에 실행한다.&lt;br /&gt;
* &amp;lt;strong&amp;gt;외부 접근 제한&amp;lt;/strong&amp;gt;&lt;br /&gt;
** Build와 관련된 단위들은 외부에서 접근이 불가능하다.&lt;br /&gt;
** NAT Gateway를 통해 내부 단위들은 외부 인터넷에 접근가능하다.&lt;br /&gt;
===이론적 계산 및 시뮬레이션===&lt;br /&gt;
* Task1: Turn on the song on Youtube&lt;br /&gt;
** Step 1. Open the web-browser&lt;br /&gt;
** Step 2. Access to YouTube.&lt;br /&gt;
** Step 3. Search for the song you want to play.&lt;br /&gt;
** Step 4. Click on the video you want to play.&lt;br /&gt;
&lt;br /&gt;
* Task2: Write a Personal Statement that fits the certain company's job opening&lt;br /&gt;
** Step 1. Highlight your relevant skills and experience.&lt;br /&gt;
** Step 2. Demonstrate your knowledge of the company and the position.&lt;br /&gt;
** Step 3. Emphasize your enthusiasm for the industry and the company.&lt;br /&gt;
** Step 4. Showcase your ability to work well in a team environment.&lt;br /&gt;
&lt;br /&gt;
* Task3: Buy the most expensive raincoat in Amazon and Coupang&lt;br /&gt;
** Step 1. Open the web-browser.&lt;br /&gt;
** Step 2. Access to Amazon or Coupang.&lt;br /&gt;
** Step 3. Search for the most expensive raincoat.&lt;br /&gt;
** Step 4. Select the raincoat and add to cart.&lt;br /&gt;
** Step 5. Proceed to checkout.&lt;br /&gt;
** Step 6. Enter shipping and billing information.&lt;br /&gt;
** Step 7. Review order summary and place order.&lt;br /&gt;
&lt;br /&gt;
===상세설계 내용===&lt;br /&gt;
◇ 기능별 상세 요구사항&lt;br /&gt;
* 사용자가 요구한 업무에 대한 출력 제공&lt;br /&gt;
** 사용자는 원하는 업무를 text box에 입력할 수 있다.&lt;br /&gt;
** 입력을 제출하면 서버에서 1개 이상의 Step을 출력해준다.&lt;br /&gt;
** 각 Step은 요약(Title), 상세내용(Description), 코드(Code), 작성언어(Language)를 포함하고 있다.&lt;br /&gt;
&lt;br /&gt;
* 코드 실행 기능&lt;br /&gt;
** 이전 Step의 출력이 다음 Step의 입력으로 제공되어야 한다.&lt;br /&gt;
** Step에 입력된 코드를 실행하여 Task에 대하여 수행한다.&lt;br /&gt;
&lt;br /&gt;
* 사용자가 직접 특정 단계의 코드 수정 가능&lt;br /&gt;
** 특정 Step의 Code를 수정할 수 있는 에디터를 제공한다.&lt;br /&gt;
** 새로 입력한 Code의 입출력 양식이 같은지 검사한다.&lt;br /&gt;
&lt;br /&gt;
* 이전 요청 저장&lt;br /&gt;
** 기존의 사용자가 입력한 Task에 대해서 기록한다.&lt;br /&gt;
** 이전 업무와 연결되는 이후의 업무를 우선적으로 제공한다.&lt;br /&gt;
&lt;br /&gt;
* 음성 인식을 통한 업무 입력 기능 제공&lt;br /&gt;
** 음성인식을 통해 사용자가 업무를 입력하면, 텍스트로 변환하여 text box에 자동으로 입력한다.&lt;br /&gt;
&lt;br /&gt;
◇ System Flow Chart&lt;br /&gt;
[[파일:System Flow Chart.jpg]]&lt;br /&gt;
#Write a Task : 사용자가 Task를 작성한다.&lt;br /&gt;
2. Split Task into SubTasks : 사용자가 작성한 Task를 Llama가 SubTask로 나누고 이를 서버가 파싱하여 사용자에게 SubTask로 제공한다.&lt;br /&gt;
3. See the SubTasks of Task : 사용자는 서버가 분리한 SubTask들을 볼 수 있다.&lt;br /&gt;
4. Click the Exec Button : 사용자가 코드 실행 버튼을 누른다.&lt;br /&gt;
5. Search the Codes of each SubTasks : 서버는 각 SubTask들의 코드를 데이터베이스에서 탐색한다.&lt;br /&gt;
6. Execute the Javascript Code : 서버가 탐색한 Javascript Code를 실행시킨다.&lt;br /&gt;
7. Check the result of the Task : 사용자는 Task와 코드의 결과값이 일치하는지 확인한다.&lt;br /&gt;
&lt;br /&gt;
==결과 및 평가==&lt;br /&gt;
===완료 작품의 소개===&lt;br /&gt;
====프로토타입 사진 혹은 작동 장면====&lt;br /&gt;
내용&lt;br /&gt;
====포스터====&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===관련사업비 내역서===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===완료작품의 평가===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===향후계획===&lt;br /&gt;
내용&lt;br /&gt;
&lt;br /&gt;
===특허 출원 내용===&lt;br /&gt;
내용&lt;/div&gt;</summary>
		<author><name>Com2312</name></author>	</entry>

	</feed>