Repository navigation
Releases: apehuman/Meeting_Notes_AI
Releases · apehuman/Meeting_Notes_AI
Release list
v1. Retrospective
SW Architecture
| Before | After |
|---|---|
| pure REST API | MSA or serverless/CSR(2-tier) |
![]() |
Option1. Full-stack (SSR) Service + REST API server ![]() |
| Option2. Only Python Front -- Streamlit: 2-tier (CSR) |
-
[장점] 순수 back으로 만들면, 서버만 돌리면 어디서든 바로 REST API 기능 붙여서 이용 가능하다. (Library/API Server)
-
[단점] 순수 back으로 전체 Web 서비스 구현하는 것은 손이 많이 간다: Framework에서 제공하는 기능이 적다. (대신 구현 자유도가 높다)
- Project File 구조 직접 만들어야 한다
- DB도 직접 원하는걸 선택해서 붙여줘야 한다. => 다만 python은 DB 붙여서 사용할 때, ORM으로 주로 SQLAlchemy를 de facto Standard Library로 사용하므로 배워두면 계속해서 써먹을 수 있다
- User Table 따로 만들어서 직접 관리해야 한다
-
Conclusion: Service-based
- 기존 Service는, Web Serivce 핵심 기능을 모두 갖춘 Django(Full-stack)로 쉽고 빠르게 개발 가능 (User, DB-ORM, Security 모두 Internal하게 제공하여 내가 직접 관리할 필요가 없다)
- 그 외 독립적인 서비스/기능들은 REST API로 분리하여 제공
- 외부 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
- Languages & Framework (Front & Back) => Fluency/Experienced/familiar
- Communication: PM, Docs/Diagrams, Messenger/Meeting => Notion
- 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: 요약, 번역
- 요약 - meeting note: meeting note 형식에 적합한 요약 가능하도록 ai_text 함수 수정 및 API URL 추가 (/summarize-meeting)
- Overall summary
- Acition items
- Next Meeting Topics
- 번역 - 언어 감지: 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="")
- minor errata fix (comments, typo)




