Skip to content

Releases: apehuman/Meeting_Notes_AI

v1. Retrospective

Choose a tag to compare

@apehuman apehuman released this 29 May 20:23
f26dad8

SW Architecture

Before After
pure REST API MSA or serverless/CSR(2-tier)
image Option1. Full-stack (SSR) Service + REST API server image
Option2. Only Python Front -- Streamlit: 2-tier (CSR)
  • [장점] 순수 back으로 만들면, 서버만 돌리면 어디서든 바로 REST API 기능 붙여서 이용 가능하다. (Library/API Server)

  • [단점] 순수 back으로 전체 Web 서비스 구현하는 것은 손이 많이 간다: Framework에서 제공하는 기능이 적다. (대신 구현 자유도가 높다)

    1. Project File 구조 직접 만들어야 한다
    2. DB도 직접 원하는걸 선택해서 붙여줘야 한다. => 다만 python은 DB 붙여서 사용할 때, ORM으로 주로 SQLAlchemy를 de facto Standard Library로 사용하므로 배워두면 계속해서 써먹을 수 있다
    3. User Table 따로 만들어서 직접 관리해야 한다
  • Conclusion: Service-based

    1. 기존 Service는, Web Serivce 핵심 기능을 모두 갖춘 Django(Full-stack)로 쉽고 빠르게 개발 가능 (User, DB-ORM, Security 모두 Internal하게 제공하여 내가 직접 관리할 필요가 없다)
    2. 그 외 독립적인 서비스/기능들은 REST API로 분리하여 제공
    3. 외부 REST API 사용하는 경우에도 분리하여 제공

    => Full-stack Web Service/App + REST API server (MSA): 즉 기존 Web serivce는 Full-stack으로 쉽고 빠르게 개발 가능, 거기에 REST API로 서비스 별로 분리해서 개발하는 형태가 Best (다만 Django 사용할 경우, REST API Framework를 따로 설치해야 서로 붙일 수 있다)


CSR vs. SSR

CSR SSR
On-device Cloud Server

Python Framework: Django vs. Flask / FastAPI

Support: Internal vs. External Django Flask / FastAPI
Template Full Stack (SSR) Back + Jinja
REST API △: + Django REST Framework O
DB & ORM Internal (only RDBMS) SQLAlchemy + any DB
Security / User Access Management O X: OAuth2

FastAPI Development Process/Pattern


Risk = Time: Learning Curve & Teamwork

  1. Languages & Framework (Front & Back) => Fluency/Experienced/familiar
  2. Communication: PM, Docs/Diagrams, Messenger/Meeting => Notion
  3. Code Coop: Git/GitHub

Incompetence

  • Web Development Experience
  • DB & ORM
  • Framework: Security (OAuth2 & Session), User Management
  • PM

Ending Credit

Tools (Tech Stack): Python Web + AI

AI Audio: Vito API
Text: OpenAI API GPT 3.5 turbo
Front Vue -> Streamlit
Back FastAPI
Deployment AWS & GitHub Action

Team

  • 임범준: AI-Audio
    • STT (file upload or 음성인식 두가지 방식으로 사용 가능)
    • 화자 구분
  • 장우재: AI-Text, Back + Front
    • Folder & Note CRU
    • User Log in/out
    • AI-Text
      • translation (prompt engineering 통해 src_lang 없이 target_lang만 주어져도 번역 가능)
      • summary (3줄요약 or 회의록 요약 두가지 형태로 제공; 일관적인 응답 나오도록 parameter 조정)
      • chatbot
    • FastAPI에서 OpenAI API로부터 응답 받아 원하는 형태로 가공하여 REST API 서빙
    • Streamlit에서 서버 API 기능 시각화하여 테스트
  • 허소영: Front + Back
    • 메인 화면 설계 및 구현
    • AI-Audio 화면과 Note 생성 화면 연결
    • 최초 계정 생성 시 default 폴더 생성하여 접근할 수 있도록 로직 변경
    • Note Delete 로직 구현
  • 김민찬: Deployment
    • GitHub Action을 통해 수정사항 자동으로 AWS에서 build하여 배포

v0.2: AI Text - Update: 요약, 번역

Choose a tag to compare

@apehuman apehuman released this 10 May 20:58
90f515b
  1. 요약 - meeting note: meeting note 형식에 적합한 요약 가능하도록 ai_text 함수 수정 및 API URL 추가 (/summarize-meeting)
    1. Overall summary
    2. Acition items
    3. Next Meeting Topics
  2. 번역 - 언어 감지: Text (source language) -> target language
    • 번역할 text에 target language만 주어져도, ChatGPT가 알아서 source language를 감지하여 번역할 수 있도록 API 호출 방식 추가
    # 기존 호출: 반드시 src_lang이 주어져야 함
    translated_text = translate(text, src_lang, trg_lang) 
    # 추가된 호출: keyword argument 사용하여 tar_lang만 제대로 지정하고, src_lang은 empty string으로 지정
    translated_text = translate(text, trg_lang="영어", src_lang="") 
  3. minor errata fix (comments, typo)

2
스크린샷 2024-05-10 221536

v0.1: AI Text - 요약, 번역, Chatbot

Choose a tag to compare

@apehuman apehuman released this 10 May 21:11
  • 요약: 3줄 요약 (/summarize)
  • 번역: Text + source language -> target language로 번역
  • Chatbot: 현재 stream 방식이 아닌, batch style로 한 번에 응답하는 형태

merge_from_ofoct