Jupyter AI로 노트북 중심 AI 워크플로우 확장하기
이 글에서는 Jupyter AI를 활용해 Jupyter Notebook 환경을 생성형 AI 플레이그라운드로 확장하는 방법을 소개합니다. 설치 방법부터 채팅 인터페이스 활용, 주요 슬래시(/) 명령어와 %%ai 매직 명령어 사용까지, 기본 기능을 단계별로 정리했습니다.
 
    목차
1. Jupyter AI란?
데이터 과학자와 개발자들은 Jupyter Notebook을 통해 실험, 분석, 문서화를 동시에 수행해 왔습니다.
하지만 코드 작성, 문서 요약, 데이터 시각화 같은 작업은 여전히 수작업이 많고, AI 기능을 활용하려면 별도의 툴이나 웹사이트를 열어야 하는 번거로움이 있었습니다.
Jupyter AI는 이러한 한계를 해결합니다. 노트북 환경 자체를 생성형 AI 플레이그라운드로 확장하여,
- 코드 자동 생성 및 오류 수정
- 데이터 분석 및 시각화 지원
- 문서 기반 질의응답
 까지 한 곳에서 처리할 수 있게 해줍니다.
 즉, Jupyter AI는 단순한 확장 프로그램이 아니라, “AI-First Notebook 환경” 으로의 전환을 가능하게 하는 핵심 도구입니다.
주요 특징:
- %%aimagic 명령어로 AI 모델과 상호작용
- IPython 커널을 사용하는 모든 환경에서 작동 (JupyterLab, Jupyter Notebook, Google Colab, VSCode 등)
- JupyterLab의 기본 채팅 UI로 대화형 AI 도우미 사용 가능
- 다양한 AI 모델 provider 지원 (Anthropic, OpenAI, Google, Hugging Face 등)
시스템 요구사항:
- Python 3.9 - 3.12
- JupyterLab 4 또는 Notebook 7
- 모델 provider API 키
2. 시스템 요구사항 및 설치
※ 참고: PAASUP DIP 플랫폼을 사용한다면 Kubeflow 카탈로그를 통해 별도의 설치 과정 없이 바로 Jupyter AI를 사용할 수 있습니다.
# 전체 기능 설치 (%%ai magic + JupyterLab 확장)
pip install 'jupyter-ai[all]'
# 참고: magic 명령어만 설치하는 경우
#pip install 'jupyter-ai-magics[all]'
설치 후 JupyterLab을 재시작하세요.
3. 채팅 인터페이스 사용법
기본 채팅
- 
JupyterLab 왼쪽 패널에 있는 "채팅" 아이콘 클릭하여 채팅 인터페이스를 엽니다. 
  
- 
언어 모델과 API 키 설정 
 Language 모델과 Embedding 모델에 대한 설정을 완료합니다. (채팅 인터페이스 우상단 설정 아이콘을 클릭하여 설정)- Language 모델: 사용자 메시지에 대한 응답 생성
- Embedding 모델: 로컬 데이터를 학습하고 질문 시 사용
 
- 
예시: 
  - Ollama의 default Base API URL은127.0.0.1:11434(로컬 포트:11434)이고, 다른 IP나 포트 번호를 사용하는 Ollama 서버를 사용하려면Base API URL (optional)에 구성해야 합니다.
 
- Ollama의 default 
- 하단 메시지 상자에 질문 입력
 채팅 인터페이스 하단의 텍스트 상자에 메세지를 입력하고 전송하면, Jupyter AI 챗봇인 Jupyternaut의 응답을 확인할 수 있습니다.
- 예시: Write a function in Python that multiplies two numbers.
  
- 추가 질문
- 예시: Expand the function to take more numbers as inputs.
  
노트북 내용 기반 질문
- 노트북의 특정 부분을 드래그하여 선택
- 채팅 패널에 메시지 입력
- "Send message with selection" 클릭

4. 슬래시(/) 명령어
| 명령어 | 설명 | 
|---|---|
| /generate | 프롬프트로 새 노트북 생성 | 
| /learn | 로컬 데이터 학습 | 
| /ask | 학습한 데이터 기반 질문 | 
| /export | 채팅 기록 내보내기 | 
| /fix | 오류가 있는 코드 셀 수정 | 
| /clear | 대화 초기화 | 
/generate
텍스트 프롬프트에서 전체 노트북을 생성할 수 있습니다.
- 예시:
/generate Create a new Jupyter Notebook that plots a histogram of 100 random numbers from a normal distribution and overlays a density curve.

요청한 내용으로 새로운 노트북 파일을 자동 생성합니다.

/learn
로컬 데이터를 학습시켜 질문에 답변할 때 해당 데이터를 포함할 수 있도록 합니다.
# 기본 사용
/learn <directory>             # <directory> 폴더 학습
/learn **/*.ipynb              # 모든 노트북 파일 학습
# chunk size of 500, and chunk overlap of 50
/learn -c 500 -o 50 <directory>
/learn --chunk-size 500 --chunk-overlap 50 <directory>
# 학습된 데이터 삭제
/learn -d                      # /learn 명령으로 학습한 모든 정보를 삭제
- 
지원 파일 형식: .py,.md,.R,.Rmd,.jl,.sh,.ipynb,.js,.ts,.jsx,.tsx,.txt,.html,.pdf,.tex
- 
예시: 
/learn docs/

/ask
/learn을 통해 학습된 로컬 데이터에 대해 구체적인 질문을 할 수 있습니다.
- 예시:
/ask What are the core technical features of PAASUP?

/export
현재 세션의 채팅 기록을 markdown 파일로 내보냅니다.
/export                # 기본 파일명(chat_history-YYYY-MM-DD-HH-mm-ss.md)으로 내보내기
/export {file_name}    # 사용자 지정 파일명
/fix
Jupyter 노트북 파일에서 오류 출력이 있는 코드 셀을 수정하는 데 사용할 수 있습니다.
- 채팅 입력란에 /fix입력
- notebook 파일에서 오류가 발생한 셀을 선택
- 전송 버튼 클릭
- 예시:
  
/clear
새로운 대화를 시작하고 모델의 메모리를 재설정합니다.
5. Magic 명령어 (%%ai)
JupyterLab, Jupyter Notebook, Google Colab, Visual Studio Code 등 IPython 커널을 사용하는 모든 곳에서 %%ai magic 동작(※ 자세한 사용법은 Jupyter AI 문서 참조)
기본 사용법
# 확장 프로그램 로드
%load_ext jupyter_ai
# 도움말 보기
%ai help

API 키 설정
%env ANTHROPIC_API_KEY=your_api_key_here
등록된 모델 확인:
%ai list anthropic-chat
# %ai list ← 사용 가능한 모든 provider 및 모델 목록을 출력

모델 alias 등록
%ai register {ALIAS} {provider:model}
- 예시:
%ai register mychat anthropic-chat:claude-3-5-sonnet-20241022
AI 모델과 대화
- 예시:
%%ai mychat
Write a Python function that takes a string and converts it to uppercase, then show an example by printing the result to the console.
# 또는
%%ai anthropic-chat:claude-3-5-sonnet-20241022
Write a Python function that takes a string and converts it to uppercase, then show an example by printing the result to the console.

%%ai명령의 출력은 기본적으로 마크다운 형식으로 지정되고, -f 또는 --format 옵션으로 출력 형식을 지정할 수 있습니다.
- 지원 형식:
- code- 코드 블록
- markdown- 마크다운 (기본값)
- text- 일반 텍스트
- html- HTML
- json- JSON
- math- 수학 표현식
- image- 이미지 (Hugging Face 텍스트-이미지 모델용)
 
- 예시:
%%ai mychat --format code
Generate Python code that defines a function to calculate the least common multiple of two integers and includes test cases.
  
# 또는
%%ai anthropic-chat:claude-3-5-sonnet-20241022 --format code
Generate Python code that defines a function to calculate the least common multiple of two integers and includes test cases.

6. 결론
Jupyter AI는 단순히 코드 몇 줄을 대신 작성해주는 도구가 아닙니다.
노트북 환경에 AI를 깊이 통합함으로써, 연구와 개발 워크플로우 전반을 혁신합니다.
- 데이터 과학자는 복잡한 분석 파이프라인을 빠르게 프로토타입할 수 있고,
- 연구자는 방대한 문서를 학습시켜 곧바로 질의응답이 가능하며,
- 개발자는 SQL 쿼리나 API 클라이언트 코드 같은 반복 작업을 AI에게 맡길 수 있습니다.
결국 Jupyter AI는 Jupyter Notebook을 “AI와 협업하는 생산성 허브”로 탈바꿈시킵니다.
앞으로 RAG, 팀 협업, 데이터 플랫폼과의 결합까지 고려하면 그 잠재력은 훨씬 더 커질 것입니다.