인생책장 서비스의 AI 서버 레포지토리
-
flows (AI 로직)
- autobiographies
- standard
- generate_autobiography (유지)
- standard
- interviews
- chat
- interview_chat_v2 (Redis 세션 + 신규 알고리즘)
- standard
- generate_interview_questions_v2 (질문 생성 유틸)
- chat
- autobiographies
-
serve (API 서버)
- session_manager.py (Redis 세션 관리)
- autobiographies
- generate_autobiography (유지)
- interviews
- interview_chat_v2 (Redis 기반 세션 관리)
- generate_correction (교정/교열 기능 불필요)
- generate_chapter (덩어리 묶음방식 채택)
- generate_interview_question (메인 질문 미리 생성 방식 미채택)
- interview_chat_v1 (현재 사용 알고리즘 아님)
- 지능형 인터뷰: AI가 사용자의 답변을 분석하여 맞춤형 질문 생성
- 세션 기반 대화: Redis를 활용한 지속적인 대화 상태 관리
- 자동 자서전 생성: 인터뷰 내용을 바탕으로 완성된 자서전 작성
- 다양한 주제 지원: 가족, 학업, 직업, 취미 등 다양한 삶의 영역 커버
- 6W 분석: 누가/언제/어디서/무엇을/왜/어떻게 축으로 체계적 질문 구성
- 모듈화된 아키텍처: Flows(로직) + Serve(API) 분리 구조
- 비동기 처리: FastAPI + async/await로 동시 요청 처리
- 지능형 매칭: LLM 기반 소재 자동 매칭 및 분석
- Python 3.9 이상
- Redis Server (6.0 이상)
- OpenAI API Key 또는 Azure OpenAI API Key
Python (3.9 이상)을 설치합니다.
Prompt Flow Extension을 설치합니다.
OpenAI API Key 발급에서 API Key를 발급받습니다.
Azure OpenAI API Key 발급에서 API Key를 발급받습니다.
AZure OpenAI를 활용하는 경우, https://learn.microsoft.com/ko-kr/legal/cognitive-services/openai/limited-access 에서 Azure OpenAI 서비스에 대한 엑세스를 신청해야 할 수 있습니다.
git clone git@github.com:life-librarians/life-bookshelf-ai.gitcd life-bookshelf-aicode flows/[개발할 플로우 디렉토리]개발할 플로우의 디렉토리를 열기
python3 -m venv .venvrequired python3 ≥ Python 3.9.x (3.9.x 권장)
source .venv/bin/activatepip install -r requirements.txtpip install --upgrade pipVSCode에서 인터프리터도 변경해주어야 합니다.
Prompt Flow Extension에서 Connection을 설정해줍니다.
connection 이름을 설정하고 Create Connection 클릭합니다. (다른건 수정 X)
터미널에서 api_key를 입력하면 connection 등록이 완료됩니다.
name의 값을 open_ai_connection 으로 설정해야 합니다.
[실행을 원하는 플로우 경로]/flow.dag.yaml 파일을 열어 Visual Editor를 실행해줍니다.
Test Run을 실행해줍니다.
터미널에서 결과를 확인할 수 있습니다.
또한 제공되는 링크를 열어 웹에서도 결과를 확인할 수 있습니다.
Batch Run을 실행해줍니다. Batch Run은 미리 준비한 데이터를 이용하여 여러번의 Test Run을 실행하는 것입니다.
Local File을 선택합니다.
data.json 파일을 선택합니다.
Batch Run을 실행합니다.
웹에서 결과를 확인할 수 있습니다.
Python (3.9 이상)을 설치합니다.
git clone git@github.com:life-librarians/life-bookshelf-ai.gitcd life-bookshelf-aicode serve개발할 serve 디렉토리를 열기
python3 -m venv .venvrequired python3 ≥ Python 3.9.x (3.9.x 권장)
source .venv/bin/activatepip install -r requirements.txtcp .env.example .env.development.env.development 파일을 생성합니다.
DEBUG=True
LOG_LEVEL=DEBUG
# Azure OpenAI의 API Key를 사용하는 경우
# AZURE_OPENAI_API_KEY=your-api-key
# AZURE_OPENAI_API_BASE=https://your-api-base.openai.azure.com
# AZURE_OPENAI_API_TYPE=azure
# OpenAI의 API Key를 사용하는 경우
AZURE_OPENAI_API_KEY=sk-your-api-key
LIFE_BOOKSHELF_AI_JWT_SECRET_KEY=0190ab45-7e42-7a3f-9dec-726ddf778076
자신의 API Key를 입력합니다.
python -m uvicorn main:app --env-file .env.development --port 30003000 포트에서 fastapi 서버를 실행합니다.
서버가 정상적으로 실행되었을 경우 위와 같은 로그가 출력됩니다. (실제 로그는 3000포트로 출력됩니다.)
http://localhost:3000/docs 에서 API 문서를 확인할 수 있습니다. (사용 방법 참고: Life Bookshelf Server)
# Windows (Chocolatey)
choco install redis-64
redis-server
# 또는 Docker
docker run -d -p 6379:6379 redis:alpineSwagger UI에서 다음 주요 엔드포인트들을 테스트할 수 있습니다:
POST /interviews/start- 인터뷰 세션 시작POST /interviews/chat- 인터뷰 대화 진행POST /interviews/end- 인터뷰 세션 종료POST /autobiographies/generate/{autobiography_id}- 자서전 생성
개요: 사용자와의 대화를 통해 점진적으로 삶의 이야기를 수집하고, AI가 답변을 분석하여 다음 질문을 지능적으로 생성하는 시스템입니다.
주요 특징:
- 사용자 답변 내용 자동 분석 및 소재 매칭
- 6W 축(Who/When/Where/What/Why/How) 기반 체계적 질문
- 대화 맥락을 고려한 자연스러운 질문 전개
- Redis 기반 세션 지속성 보장
flows/interviews/chat/interview_chat_v2/
- flow.dag.yaml # 단일 노드 플로우
- __init__.py # 통합 엔진 (Redis 연동)
- engine/ # 질문 생성 알고리즘 엔진
- core.py # 기존 알고리즘 + 모델
- utils.py # 기존 유틸 + V2 추가
- generators.py # V2 질문 생성
- data/
- material.json, theme.json
serve/
- session_manager.py # Redis 세션 관리
- interviews/interview_chat_v2/
- router/__init__.py # API 엔드포인트
- dto/__init__.py # 요청/응답 스키마
개요: 인터뷰를 통해 수집된 사용자의 이야기를 바탕으로 완성된 자서전을 자동 생성하는 시스템입니다.
주요 특징:
- 테마와 카테고리 기반 맞춤형 자서전 생성
- 자동 제목 생성 및 내용 구성
- 비동기 처리로 빠른 응답 속도
- 사용자 정보와 인터뷰 내용을 유기적으로 결합
| 기능 | 엔드포인트 | 설명 |
|---|---|---|
| 인터뷰 시작 | POST /interviews/start |
새로운 인터뷰 세션 시작 |
| 인터뷰 대화 | POST /interviews/chat |
사용자 답변 처리 및 다음 질문 생성 |
| 인터뷰 종료 | POST /interviews/end |
세션 종료 및 최종 데이터 반환 |
| 자서전 생성 | POST /autobiographies/generate/{id} |
인터뷰 기반 자서전 생성 |
자세한 API 사용법 및 명세는 TEST_GUIDE.md 참고
- API 테스트 가이드 - Swagger UI를 활용한 전체 API 테스트 시나리오
- 폐기된 API 목록 - v2.0.0에서 제거된 API 목록 및 대체 방안
- 변경 내역 - 버전별 주요 변경사항 및 업데이트 내역
- 위의 "개발 환경 설정" 섹션 따라 환경 구성
ai/dev브랜치에서 작업 시작- 기능 개발 후
ai/prod로 PR 생성
- 코드 스타일: PEP 8 파이썬 코딩 컨벤션 준수
- 테스트: 새로운 기능 추가 시 반드시 테스트 코드 작성
- 문서화: API 변경 시 관련 문서 업데이트 필수
- 커밋 메시지: 프로젝트 루트의 COMMIT_CONVENTION.md 준수










