Metadata-Version: 2.5
Name: jupyter-omni-agent
Version: 0.1.0
Summary: Multi-provider AI Agent & IPython/Jupyter Magic (OpenAI, Anthropic, Gemini, OpenRouter, Ollama, DeepSeek, Groq) that writes and executes Python code directly in your local Jupyter Notebook.
Project-URL: Homepage, https://github.com/cdsassj00/jupyter-omni-agent
Project-URL: Issues, https://github.com/cdsassj00/jupyter-omni-agent/issues
Author-email: Antigravity Lab <cdsassj00@gmail.com>
License: MIT
Keywords: ai-agent,anthropic,code-interpreter,gemini,ipython,jupyter,ollama,openai,openrouter
Classifier: Development Status :: 4 - Beta
Classifier: Framework :: IPython
Classifier: Framework :: Jupyter
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Python: >=3.10
Requires-Dist: ipython>=8.0.0
Requires-Dist: requests>=2.28.0
Description-Content-Type: text/markdown

# 🚀 `jupyter-omni-agent`

**로컬 Jupyter Notebook에 다양한 AI 서비스 API 키(OpenAI, Anthropic Claude, Google Gemini, OpenRouter, DeepSeek, Groq, Upstage Solar) 및 로컬 Ollama를 연결하여, 자연어 명령만으로 내 로컬 커널에서 파이썬 코드를 자동 작성·실행·자가수정(Self-Healing)해주는 올인원 AI 에이전트 라이브러리**입니다.

---

## ✨ 핵심 기능

1. **멀티 프로바이더 통합 지원 (Zero-SDK 경량 구조)**:
   - **상용 AI API**: OpenAI (`gpt-4o`, `o3-mini`), Anthropic (`claude-3-7-sonnet`), Google Gemini (`gemini-2.5-pro`, `gemini-2.5-flash`), DeepSeek, Groq, Upstage Solar
   - **OpenRouter 통합 키**: `openrouter` 설정 하나로 수백 개의 최신 모델(`anthropic/claude-3.7-sonnet`, `deepseek/deepseek-r1`, `meta-llama/llama-3.3-70b-instruct` 등) 즉시 호출
   - **로컬 Ollama 완벽 지원**: API 키 없이 `http://localhost:11434`의 로컬 LLM(`qwen2.5-coder`, `llama3.3` 등) 연결
2. **내 로컬 Jupyter 커널 변수 자동 인식 & 직접 실행**:
   - 현재 노트북 메모리에 떠 있는 `pandas.DataFrame`의 행/열/컬럼명과 `numpy` 배열, 변수들을 자동으로 스캔해 프롬프트 컨텍스트에 주입합니다.
   - AI가 생성한 파이썬 코드를 내 로컬 `user_ns` 네임스페이스에서 즉시 실행하여 새로운 변수나 차트를 바로 생성합니다.
3. **자가 수정 (Self-Healing Execution Loop)**:
   - 실행 중 에러(Traceback)가 발생하면 AI가 자동으로 에러 로그를 읽고 수정된 코드를 재실행합니다.

---

## 📦 설치 방법

```bash
pip install jupyter-omni-agent
```

또는 로컬 소스에서 설치:
```bash
pip install -e .
```

---

## 💻 Jupyter Notebook 사용법 (`%%ai` 매직 명령어)

### 1. 익스텐션 로드 및 API 키 등록
```python
%load_ext jupyter_omni_agent

# 원하는 서비스의 API 키 등록 (환경변수로 설정해도 자동 인식됩니다)
%ai_key openrouter sk-or-v1-xxxxxxxxxxxxxxxxxxxx
%ai_key openai sk-proj-xxxxxxxxxxxxxxxxxxxx
%ai_key gemini AIzaSyXXXXXXXXXXXXXXXXXXXX
```

### 2. 사용할 프로바이더 & 모델 선택
```python
# OpenRouter 사용 시
%ai_config openrouter anthropic/claude-3.7-sonnet

# 로컬 Ollama 사용 시 (API 키 불필요)
%ai_config ollama qwen2.5-coder:7b
```

### 3. 셀에서 자연어로 로컬 파이썬 코드 생성 & 즉시 실행 (`%%ai`)
```python
%%ai
현재 메모리에 있는 df 데이터프레임의 결측치를 평균값으로 채우고,
카테고리별 매출 합계를 구해서 파생변수 summary_df로 저장하고 출력해줘.
```

---

## 🐍 일반 Python 스크립트에서 사용하기

```python
import pandas as pd
from jupyter_omni_agent import OmniNotebookAgent

df = pd.DataFrame({"product": ["A", "B", "C"], "sales": [120, 340, 260]})

agent = OmniNotebookAgent(
    provider="openrouter",
    model="anthropic/claude-3.7-sonnet",
    api_key="sk-or-v1-...",
    user_ns=locals(),
)

res = agent.run("df에서 sales가 200 이상인 행만 필터링해서 high_sales 변수에 저장하고 출력해줘")
print(res.stdout)
```
