랭그래프를 활용한 AI 노트 계획

목표 설정

‎​1. 프로젝트 배경 및 필요성

  • 마켓 리서치 업무를 담당하다보면 다양한 자료들을 긁어 모으게 됨

  • "수집 -> 정리 -> 아웃풋"의 단계를 거쳐야만 함

  • "정리" 단계에서 상당히 시간이 많이 소요되는데, AI에이전트를 통해 생략할 수 있다면 좋겠다고 생각함

2. 프로젝트 목표 및 개요

  • 이번 프로젝트에서는 "수집 -> 아웃풋" 단계로 이어질 수 있도록 최소한의 기능으로 구현하여 이전 마켓 리서치 업무 보다 시간을 단축시키는 것을 목표로 함

3. 세부 구현 계획

1주차: 프로젝트 기초 설정

  • 프로젝트 구조 설계

    • WHAT:

      • 프로젝트 루트 디렉토리: C:/Dev/sticky_note/

      • Git 저장소: GitHub 프라이빗 레포지토리 생성

      • HOW:

        • 모듈별 디렉토리 구조화 (ui/, services/, etc.)

        • README.md 작성 (프로젝트 설명, 설치 방법, 사용 방법)

        • .gitignore 설정 (가상환경, API 키 등 제외)

  • 개발 환경 준비 (VS code, 파이썬, PyQt6 GUI, Git)

    • WHAT:

      1. VS Code 설정

        • Python Extension

        • Git Extension

        • Code Runner Extension

      2. Python 환경

        • Python 3.9+ 설치

        • 가상환경 생성: python -m venv venv

      3. 필수 라이브러리

        • PyQt6 (GUI 프레임워크)

        • LangChain (OpenAI 통합용)

        • python-dotenv (환경변수 관리)

2주차: 핵심 기능 구현

  • PyQt6의 QMainWindow를 상속받아 커스텀 윈도우를 구현 (스티커 노트 특성 구현)

    • WHERE: ui/note_window.py, ui/chat_window.py

    • WHAT:

      1. 스티커 노트 윈도우

        • 프레임 없는 투명 창

        • 드래그 가능한 타이틀바

        • 우측 상단 컨트롤 버튼 (최소화, 닫기)

      2. 대화 창

        • 채팅 인터페이스

        • 결과 복사 버튼

  • LangChain을 활용하여 OpenAI GPT 모델과의 통신을 관리

    • WHERE: services/ai_service.py

    • WHAT:

      1. LangChain 설정

        • OpenAI GPT-4 모델 연동

        • 프롬프트 템플릿 설정

        • 응답 형식 정의

      2. 비동기 처리

        • 텍스트 처리 최적화

        • UI 응답성 유지

3주차: 통합 및 최적화

  • 성능 최적화를 위해 메모리 관리와 비동기 처리를 개선

    • WHERE: 전체 애플리케이션

    • WHAT:

      1. 메모리 관리

        • 대용량 텍스트 처리 최적화

        • 메모리 누수 방지

      2. 비동기 처리

        • API 호출 최적화

        • UI 스레드 관리


클로드의 도움으로 전반의 기획을 대략 작성해보았으나 개발 경험이 전무하여 많이 부족합니다!
보완해야할 점이 있다면, 어떤 내용이든 피드백 부탁드립니다 !! 감사합니다 🙂

3
2개의 답글

👉 이 게시글도 읽어보세요