🚀 엔지니어 · 온보딩 · 개발 · L04

AI Agent 연동

작성일자 2026-07-24  ·  수정일자 2026-07-24  ·  강의차수 L04  ·  예상소요 8분

목표 요약 페이지에 LLM 처리를 붙이되, 호출이 반드시 standarda_core.llm 팩토리를 경유하게 한다.

1. 지금 상태

앞 강의(기능 개발)에서 요약 페이지의 겉모습(폼·뷰·템플릿)만 만들었다. 요약 자체는 LLM 이 처리해야 하는데 아직 붙지 않아, 입력을 넣어도 실제 요약은 나오지 않는다. 이번 강의에서 여기에 실제 OpenAI 호출을 연결한다.


2. AI Agent 연동 요청

프로젝트 루트에서 Claude Code 를 켜고, 요약 처리를 OpenAI 로 붙여 달라고 요청한다. 앞 강의에서 .env 에 넣은 것이 OpenAI 키이므로 OpenAI 를 지정한다.

# 🖥️ 서버 터미널
gildong@ip-172-31-39-132:~$ cd ~/my_project/src
gildong@ip-172-31-39-132:~/my_project/src$ claude
요약 페이지의 요약을 OpenAI 로 처리해줘

자연어로 위임해도 되지만, 결과 코드가 지켜야 하는 불변 규칙을 알고 있어야 리뷰할 수 있다.

  • LLM 호출은 반드시 standarda_core.llm 의 팩토리를 경유한다: get_openai_llm() / get_anthropic_llm() / get_google_llm(). 이번 예제는 OpenAI 이므로 get_openai_llm().

```python from standarda_core.llm import get_openai_llm

llm = get_openai_llm() # 모델·키·temperature 는 .env 에서 읽음 response = llm.invoke(prompt) # LangChain 인터페이스 summary = response.content ```

  • OpenAI() / ChatOpenAI() / ChatAnthropic() / ChatGoogleGenerativeAI() 를 직접 인스턴스화하지 않는다. 직접 만들면 LangSmith 트레이싱이 누락된다. 팩토리는 LangChain 래퍼를 반환하므로 트레이싱이 자동으로 붙고, 모델명·키·temperature 를 .env(OPENAI_MODEL·OPENAI_API_KEY·OPENAI_TEMPERATURE)에서 일관되게 읽는다. (CLAUDE.md ## LLM Calls)
  • 팩토리는 API 키가 없으면 None 을 반환한다. 요약이 안 나오면 이 지점부터 의심한다.

프로젝트 ## Code Patterns 에 이 규칙이 이미 들어 있어 /develop·자연어 요청 모두 이 팩토리로 코드를 낸다. 자연어로 맡기더라도 결과 diff 가 위 규칙을 따르는지 확인한다.


3. 확인

  1. dev 도메인(https://my-project-dev.popupstudio.ai)의 요약 페이지를 연다.
  2. 긴 글을 붙여넣는다.
  3. 3줄 요약이 반환되면 연동 성공이다.
  4. LangSmith 대시보드에 이 호출 트레이스가 남는지도 확인한다(팩토리 경유의 실효 검증).

마무리

  • 핵심 정리: 요약 처리를 get_openai_llm() 경유로 붙였다. 팩토리를 쓰는 이유는 LangSmith 트레이싱 자동화와 .env 기반 설정 일관성이다. SDK 직접 인스턴스화는 금지다.
  • 주의 사항: 요약이 안 나오면 (1) src/.env 의 OPENAI_API_KEY 유무·오타, (2) 코드가 팩토리 대신 SDK 를 직접 부르진 않는지, (3) runserver 로그의 traceback 을 순서대로 본다.
  • 다음 시간: GitHub 업로드.
이 강의를 학습하셨나요?