Skip to content

SEP-proj/AI

Repository files navigation

Meta Training: 메타인지 향상을 위한 글쓰기 보조 AI

🎥 시연 영상 보러가기(Click!)

📙 발표자료 보러가기(Click!)

목차


💼 팀원 소개


AI AI AI 서버 서버 서버 기획 기획 기획
김나래 원예찬 이승현 이정민 전태현 진용민 김시애나 변지민 최영수

🤝 융합 구조도


👨‍💻 AI 팀 역할

김나래 최신 이슈 반영, 주제의 카테고리 분류, 자유 대화 챗봇
원예찬 질문 챗봇, 글 제목 추천, 글 피드백
이승현 주제 추천, 링크 추천, 학습데이터 DB구축

💡 프로젝트 소개

✏️ 메타인지 소개

🧠 주제 선정 배경

출처: 전교 1등은 알고 있는 ‘공부에 대한 공부’


✍ 주요 기능 소개


1️⃣ 글 작성 전

  1. 최신 이슈가 반영된 주제 5개 추천 👩‍💻김나래 👨‍💻이승현

    • 작동 조건: USER가 카테고리를 클릭할 때

    • 이슈 및 해결과정

        * 질문에 번호가 자동으로 부여되어 출력됨
      
            ➡️ 프롬프트 재작성
      
        * gpt4에 최신이슈가 반영되지 않는 문제 발생
      
            * solution 1. 웹 크롤링을 통한 LDA
      
                ➡️ 키워드가 너무 광범위하며 선택과정에 개발자의 의견이 들어가게 됨.
      
            * solution 2. google bard를 이용한 추출
      
                ➡️ 2023년 08월까지 반영되어 있어 적절한 주제를 추천받을 수 있음
                ➡️ **But** API가 session token으로 되어 있어 일정 시간이 지나면 업데이트 되어 지속적으로 사용하기 적절치 않음.
                ➡️ 달마다 업데이트 되는 방식을 채택하여 csv 파일로 변환하는 방식으로 진행하고자 함.
      
  2. 직접 작성된 주제의 카테고리 분류 👩‍💻김나래

    • 작동 조건: 운영자가 제공하는 '오늘의 주제'이거나 USER가 '직접 입력'한 경우

    • 분류 기준: 일상, 사회, 과학, 스포츠, 문화/예술, 환경

    • 이슈 및 해결과정

        * prompt 결과에 `"`(따옴표)가 중복으로 적용되어 출력됨.
      
            ➡️ `replace`함수로 전처리 과정을 거침.
      

2️⃣ 글 작성 중

  1. 의도 분류 챗봇 👨‍💻이승현

    • 작동 조건: USER가 채팅창에 입력한 경우

    • 분류 기준: 배경지식, 자유대화

    • 이슈 및 해결과정

        * 중복 응답이 발생
            ➡️ langchain의 memory 기능을 이용하여 중복 응답 발생을 최소화 함.
      
  2. 배경지식과 관련된 링크 추천 👨‍💻이승현

    • 작동 조건: USER가 배경지식이라고 의도를 분류한 경우

    • 분류 기준: 배경지식, 자유대화

    • 이슈 및 해결과정

        * 할루시네이션 발생, 잘 생성한 것처럼 보이지만 링크로 이동하면 없는 페이지(404)라고 나오거나 관련 없는 페이지가 나오는 문제가 발생함.
      
            ➡️ 마이크로소프트의 Bing Chat이 인터넷 검색을 통해 정확한 링크를 제공하는 방식을 관찰하여 링크를 직접 생성하는 대신 적절한 검색어를 생성하여 검색 결과를 크롤링하는 방식으로 구현
      
        * 링크를 수집하던 중 한글로 이루어진 링크들이 수집 과정에서 변형되어 기능을 상실하는 문제 발생
      
            ➡️ urllib의 `unquote_plus()` 함수를 통해 url을 재가공하여 해결
      
  3. 글쓰기를 간접적으로 도와줄 수 있는 자유 대화 챗봇 👩‍💻김나래

    • 작동 조건: USER가 자유대화라고 의도를 분류한 경우

    • 이슈 및 해결과정

        ☝️Point! USER가 챗봇의 결과를 그대로 복붙하지 않고 직접 쓸 수 있게 해야 한다.
      
        1. SYSTEM 기본설정
      
        - USER는 14세 이상 20세 미만의 1인 청소년이다. 대상에 맞춰 쉽게 설명해야 한다.
        - SYSTEM은 USER가 글쓰는 행위를 중단하는 제안을 해서는 안된다.
        - USER의 현재 진행중인 글은 리스트 안에 주제와 내용으로 표현되어 있다.
        - SYSTEM은 USER가 현재 쓰고 있는 글을 기반으로 답변해야 한다.
        
        2. USER 상황 가정
      
        - SYSTEM이 주제와 관련된 답변을 해야 하는 경우
           - 리스트의 정보에 포함된 정보는 제외하고 답변해야 한다.
           - 긴 문장이 아닌 번호 리스트 또는 질문으로 표현해야 한다.
      
        - USER가 글쓰기를 어려워하고, 하기 싫어하는 경우
           - 격려의 말로 시작하며, 주제와 관련한 방향성을 3가지 이내로 제안 또는 질문해야 한다.
      
        - USER가 글을 써 달라고 직접적으로 요청하거나 SYSTEM에게 주제와 관련한 생각이나 의견을 구체적으로 묻는 경우
           - 정중하게 거절한 후 다양한 방향성을 5가지 이내로 제안 도는 질문해야 한다.
           - USER가 요청하기 전까지 거절 답변을 해서는 안된다.
      
  4. 글쓰기 활동을 유지하도록 도와주는 질문 챗봇 👨‍💻원예찬

    • 작동 조건: USER가 챗봇 아이콘을 클릭하는 경우

    • 이슈 및 해결과정

        - 추천 받는 상황은 두 가지로 나누어짐
      
            1. USER가 내용을 입력 하였을때
            2. USER가 아무런 내용을 입력하지 않았을때
            
            따라서 입력값을 (주제+내용) 한꺼번에 넣어서 처리
            
            1. USER가 내용을 입력 하였을때 -> 주제기반 추천 
            2. USER가 아무런 내용을 입력하지 않았을때 -> 주제 + 내용 기반 추천
      

3️⃣ 글 작성 후

  1. 완성된 글의 제목 추천 👨‍💻원예찬

    • 작동 조건 :

      1. USER가 글을 다 쓰고 결과 페이지로 넘어올 경우 (자동)
      2. USER가 제목추천 재요청할 경우 (수동)
    • 이슈 및 해결과정

        2️⃣-4번과 동일하게 입력값을 (주제+내용) 한꺼번에 넣어서 처리
      
  2. 전체적인 글의 피드백 👨‍💻원예찬

    • 작동 조건: USER가 Feedback 버튼을 눌렀을 경우

    • 이슈 및 해결과정

        AI 기술 슬로건 = 사용자가 글을 쓸수 있게 도와주는 어시스던트
        따라서 사용자 글을 대신 적어주면 안됨!! -> 사용자의 글에서 어색한 부분을 알려주고 방향성만 제시
        
        0.사용자의 글을 대신 수정, 작성하지 않을 것
        
        글에 대한 평가 조건을 다음과 같이 나눔
        
        1.반말,존댓말
        2.연결 접속사
        3.흐름에 맞지않는 단어, 맥락
        
        완성도를 위해 System과 Few-shot learning을 설정하다 보니 최대토큰을 사용(4096 token)-> DB구축의 필요성이 생김
      
  3. 학습 데이터 DB 구축 👨‍💻이승현

    • 발표 전 서비스의 시뮬레이션을 한 결과 OpenAI의 API를 사용했을 때 사용자가 글 하나를 완성하는데 드는 비용은 평균 300 ~ 400원 정도로 나타남.
      ➡️ 비용부담이 상당할 것으로 예상되어 지속적인 서비스와 맞춤형 서비스로 구체화 하기 위해서는 자체적인 LLM을 구축하여 서비스해야 하는 것이 장기적으로 유리하다고 판단.
    • 프롬프트, 사용자 입력, 대화 내역, 출력 등을 수집하고 DB에 저장함.

🪄 서버와의 통신



⚒️ AI 기술 스택

Python  ChatGPT  Langchain  GoogleBard  FastAPI  SQLite  Beautifulsoup


👫 협업 툴

👥 회의

📆 간트 차트

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages