AI 기반 콘텐츠 생성 및 관리 시스템
Act 1: Entertainment는 LangGraph와 LangChain을 활용한 AI 기반 콘텐츠 생성 및 관리 시스템입니다. 이 프로젝트는 다양한 형태의 콘텐츠를 자동으로 생성하고 관리할 수 있는 도구를 제공합니다.
- AI 기반 콘텐츠 생성
- 페르소나 기반 콘텐츠 최적화
- LangGraph를 활용한 Workflow 관리
- Python 3.11 이상
- uv (의존성 관리)
- ruff (코드 품질 검사, 코드 포맷팅, import 문 정렬)
$ git clone https://github.com/Proact0/Act1-Entertainment.git
$ cd Act1-Entertainment
$ uv venv
전체 패키지를 전부 설치하고 싶을 때
$ uv sync --all-packages
- pyproject.toml의 [tool.uv.workspace] 설정을 참고하여 PACKAGE NAME에 기입
$ uv sync --package <PACKAGE NAME>
ex) text의 경우
$ uv sync --package text
- langgraph.json에 노드 수정 (예:Text만 설치할 경우)
{
"dependencies": ["."],
"graphs": {
"main": "./agents/workflow.py:main_workflow",
"text": "./agents/text/workflow.py:text_workflow"
// "music": "./agents/music/workflow.py:music_workflow", <- 사용하지 않는 패키지는 삭제해주세요. JSON에서는 주석이 안됩니다.
// "image": "./agents/image/workflow.py:image_workflow" <- 사용하지 않는 패키지는 삭제해주세요. JSON에서는 주석이 안됩니다.
},
"env": ".env"
}
$ uvx --from "langgraph-cli[inmem]" --with-editable . langgraph dev
- API: http://127.0.0.1:2024
- Studio UI: https://smith.langchain.com/studio/?baseUrl=http://127.0.0.1:2024
- API 문서: http://127.0.0.1:2024/docs
참고: 이 서버는 개발 및 테스트용으로 설계된 인메모리 서버입니다. 프로덕션 환경에서는 LangGraph Cloud를 사용하는 것이 권장됩니다.
실행 화면
- 변수에 따른 값 입력 후 실행
- 각 Agent 별
State
에 정의된 Attribute에 따라 변수를 입력합니다. GraphState
는agents/{agent_type}/modules/state.py:{state_name}
에서 개별 관리됩니다.
- 터미널에서 종료
- window:
ctrl + c
, macOS:cmd + c
프로젝트는 pre-commit을 사용하여 코드 스타일과 품질을 관리합니다. 다음 툴들이 자동으로 실행됩니다:
- ruff: 코드 품질 검사, 코드 포맷팅, import 문 정렬
- uv-lock: 의존성 파일 동기화
- pre-commit 초기화:
$ uv run pre-commit install
- 모든 파일에 대해 수동으로 실행:
$ uv run pre-commit run --all-files
- 커밋 시 자동 실행:
$ git commit -m "your commit message"
참고:
- pre-commit은 커밋 전에 자동으로 실행되며, 검사에 실패하면 커밋이 중단됩니다. 모든 검사를 통과해야만 커밋이 완료됩니다.
- VSCode나 Cursor의 Git Graph를 사용하여 커밋할 때도 pre-commit이 자동으로 실행됩니다.
- Git 클라이언트와 관계없이 모든 커밋 시점에서 pre-commit이 동작합니다.