30 lines
2.5 KiB
Plaintext
30 lines
2.5 KiB
Plaintext
# Ollama 기반 자연어 처리(LLM) 백엔드 마이그레이션 계획
|
|
|
|
기존에 직접 로드하여 무겁고 답변 품질이 떨어졌던 `mistral-inference` 라이브러리를 제거하고, 빠르고 최신 모델 적용이 쉬운 **Ollama REST API**를 사용하도록 파이썬 백엔드 구조를 개편합니다.
|
|
|
|
## ⚠️ User Review Required (검토 및 확인 필요)
|
|
|
|
> [!IMPORTANT]
|
|
> 백엔드 코드를 수정하기 전에 아래 3가지 사항을 확인하시고 답변(승인) 부탁드립니다.
|
|
>
|
|
> 1. **Ollama 모델 이름**: Ollama에서 사용하실(다운로드 받아두신) 모델 이름이 무엇인가요? (예: `llama3.1`, `qwen2`, `gemma2`, `mistral` 등)
|
|
> * 한국어 지시와 JSON 추출에는 `llama3.1` 또는 `qwen2`를 추천합니다.
|
|
> 2. **Ollama 실행 위치**: Ollama 프로그램이 파이썬 서버가 돌고 있는 동일한 우분투 서버(`localhost:11434`)에서 실행 중이 맞으신가요?
|
|
> 3. **라이브러리 설치 필요**: 파이썬 코드에서 HTTP 통신을 하기 위해 `requests` 라이브러리를 사용하려고 합니다. (우분투 환경에서 `pip install requests` 필요)
|
|
|
|
## 🛠️ Proposed Changes (제안하는 코드 변경 사항)
|
|
|
|
### `backend/main.py` 전면 수정
|
|
* **[DELETE] Mistral 종속성 및 모델 로딩 제거**:
|
|
* `mistral_inference` 관련 `import` 문을 모두 삭제합니다.
|
|
* 서버 시작 시 메모리를 갉아먹던 `Transformer.from_folder(...)` 로직을 제거합니다. (서버 부팅 속도가 1초 이내로 대폭 빨라지며 메모리가 절약됩니다.)
|
|
* **[NEW] `ask_ollama` 함수 추가**:
|
|
* 파이썬의 `requests` 모듈을 사용하여 `http://localhost:11434/api/generate` 로 프롬프트를 전송하는 함수를 새로 만듭니다.
|
|
* Ollama가 지원하는 강력한 기능인 **`"format": "json"` 옵션**을 활성화하여, LLM이 헛소리를 하지 않고 반드시 완벽한 JSON 포맷(`{"machine_name": "...", "color": "...", "action": "..."}`)으로만 대답하도록 강제합니다.
|
|
* **[MODIFY] 의도 분석 함수 (`analyze_intent_with_llm`)**:
|
|
* 프롬프트를 Ollama 입력 포맷에 맞게 문자열(String) 형태로 합쳐서 전송하고, JSON 파싱을 수행하도록 로직을 간소화합니다.
|
|
|
|
## ✅ Verification Plan (검증 계획)
|
|
* 사용자로부터 **모델명**을 전달받아 `main.py` 코드 내에 반영합니다.
|
|
* API 수정 후, 서버를 재시작하고 동일한 자연어 제어 요청을 보냈을 때 Ollama가 의도를 정확히 파악하여 응답하는지 확인합니다.
|