자율 분석가
🧠 개요
Autonomous Analyst는 다음을 수행하는 로컬 에이전트 AI 파이프라인입니다.
- 표 형식의 데이터를 분석합니다
- 마할라노비스 거리를 이용한 이상 감지
- 해석 요약을 생성하기 위해 로컬 LLM(Ollama를 통한 llama3.2:1b)을 사용합니다.
- 의미적 회수를 위해 ChromaDB에 결과를 기록합니다.
- MCP(Model Context Protocol)를 통해 완벽하게 조율됩니다.
⚙️ 특징
요소 | 설명 |
---|
FastAPI 웹 UI | 합성 또는 업로드된 데이터 세트를 위한 사용자 친화적 대시보드 |
MCP 도구 오케스트레이션 | 각 프로세스 단계는 호출 가능한 MCP 도구로 노출됩니다. |
이상 감지 | 마할라노비스 거리 기반 이상치 감지 |
시각적 출력 | 내부값과 외부값의 저장된 산점도 |
지역 LLM 요약 | Ollama를 통해 llama3.2:1b 사용하여 생성된 통찰력 |
벡터 스토어 로깅 | 요약은 영구 메모리를 위해 ChromaDB에 저장됩니다. |
에이전트 계획 도구 | 전담 LLM 도구( autonomous_plan )는 데이터 세트 컨텍스트를 기반으로 다음 단계를 결정합니다. |
에이전트 흐름 | LLM + 기억 + 도구 사용 + 자동 추론 + 상황 인식 |
🧪 도구 정의(MCP를 통해)
도구 이름 | 설명 | LLM 사용됨 |
---|
generate_data | 합성 표형 데이터(가우스 + 범주형) 생성 | ❌ |
analyze_outliers | 마할라노비스 거리를 사용하여 행에 레이블을 지정합니다. | ❌ |
plot_results | 인라이어와 아웃라이어를 시각화하는 플롯 저장 | ❌ |
summarize_results | llama3.2:1b 사용하여 이상치 분포를 해석하고 설명합니다. | ✅ |
summarize_data_stats | llama3.2:1b 사용하여 데이터 세트 추세를 설명합니다. | ✅ |
log_results_to_vector_store | 나중에 참조할 수 있도록 ChromaDB에 요약을 저장합니다. | ❌ |
search_logs | 벡터 검색을 사용하여 관련 과거 세션 검색(선택적 LLM 사용) | ⚠️ |
autonomous_plan | 전체 파이프라인을 실행하고 LLM을 사용하여 다음 작업을 자동으로 권장합니다. | ✅ |
🤖 에이전트 기능
- 자율성 : LLM 기반 실행 경로 선택
autonomous_plan
포함) - 도구 사용 : LLM 추론을 통해 등록된 MCP 도구를 동적으로 호출합니다.
- 추론 : 데이터 세트 조건 및 이상치 분석으로부터 기술적 통찰력을 생성합니다.
- 메모리 : ChromaDB 벡터 검색을 사용하여 지식을 지속하고 회상합니다.
- LLM :
llama3.2:1b
(온도 = 0.1, 결정적)를 탑재한 Ollama 기반
🚀 시작하기
1. 복제 및 설정
지엑스피1
2. MCP 서버 시작
mcp run server.py --transport streamable-http
3. 웹 대시보드 시작
uvicorn web:app --reload --port 8001
그런 다음 http://localhost:8000을 방문하세요.
🌐 대시보드 흐름
- 1단계: 자신의 데이터 세트를 업로드하거나
Generate Synthetic Data
클릭하세요. - 2단계: 시스템은
feature_1
과 feature_2
에 대해 이상 감지를 실행합니다. - 3단계: 이상치의 시각적 플롯이 생성됩니다.
- 4단계: 요약은 LLM을 통해 생성됩니다.
- 5단계: 결과는 선택적으로 회수를 위해 벡터 저장소에 기록됩니다.
📁 프로젝트 레이아웃
📦 autonomous-analyst/
├── server.py # MCP server
├── web.py # FastAPI + MCP client (frontend logic)
├── tools/
│ ├── synthetic_data.py
│ ├── outlier_detection.py
│ ├── plotter.py
│ ├── summarizer.py
│ ├── vector_store.py
├── static/ # Saved plot
├── data/ # Uploaded or generated dataset
├── requirements.txt
├── .gitignore
└── README.md
📚 기술 스택
- MCP SDK:
mcp
- LLM 추론: Ollama가
llama3.2:1b
실행 중입니다. - UI 서버: FastAPI + Uvicorn
- 메모리: ChromaDB 벡터 데이터베이스
- 데이터:
pandas
, matplotlib
, scikit-learn
✅ .gitignore 추가
__pycache__/
*.pyc
*.pkl
.env
static/
data/
🙌 감사의 말
오픈소스 커뮤니티의 놀라운 노고가 없었다면 이 프로젝트는 불가능했을 것입니다. 특별히 감사드립니다.
💡 이 프로젝트를 사용하신다면, 이 프로젝트를 가능하게 하는 업스트림 도구에 별점을 주거나 기여해 주시기 바랍니다.
이 저장소는 llama3.2:1b를 사용하는 로컬 rag-llm의 도움으로 생성되었습니다.