어떤 로컬 llmfit(https://github.com/AlexsJones/llmfit) 을 사용하면 내 하드웨어에 맞는 최고의 모델이 무엇인지알 수 있다.
ollama 로컬 llm 구동하자.
lmstudio-community/Qwen3-Coder-30B-A3B-Instruct-MLX-4bit 은 ollama 에서는 qwen3-coder 모델로 다운받을 수 있다.
ollama pull qwen3-coder:latest
ollama ls
ollama run qwen3-coder
ollama ps
opencode.json > provider > ollama 에 다음과 같이 설정한다.
{
"provider": {
"ollama": {
"npm": "@ai-sdk/openai-compatible",
"name": "Ollama (local)",
"options": {
"baseURL": "http://localhost:11434/v1"
},
"models": {
"qwen3-coder:latest": {
"name": "Qwen3 Coder 30.5B"
},
"llama3.2:latest": {
"name": "Llama 3.2 3B"
}
}
}
}
}
opencode 에서 로컬 llm 사용 결과
claude code 에서는 openAI api 호환이 되지 않아 중간에 litellm(proxy) 서버를 둬야 한다.
참고로 litellm[proxy] 로 기본 + 프록시 실행에 필요한 추가 패키지들(backoff, uvicorn, fastapi 등)을 함께 설치해야 한다.
uv pip install 'litellm[proxy]' --system
litellm 프록시 서버 구동
litellm --model qwen-coder3 --api_base http://localhost:11434/v1 --port 8001
이제 다음 환경변수를 .local_llm_env_for_claude_code 등의 파일로 저장하자.
# 로컬 llm URL
export ANTHROPIC_BASE_URL="http://localhost:8001"
# 더미값으로 설정하면 된다.(sk:SecretKey)
export ANTHROPIC_API_KEY="sk-dummy-key"
# Claude Code의 외부 통신을 최소화하기 위해 다음 환경변수도 설정하자.
# 텔레메트리(사용 통계 수집)를 비활성화
export CLAUDE_CODE_ENABLE_TELEMETRY=0
# 핵심 API 호출 외의 불필요한 네트워크 트래픽 차단
export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1
# API 요청 시 Claude Code가 보내는 attribution 헤더(어떤 클라이언트에서 요청했는지 식별하는 정보)를 비활성화
export CLAUDE_CODE_ATTRIBUTION_HEADER=0
이제 다음과 같이 실행한다.
source .local_llm_env_for_claude_code; claude --model qwen3-coder
실행 후 api key 사용을 선택
오른쪽: 로컬 llm(qwen3-coder) 사용한 경우
사용해보니 ollama 자체앱을 사용하면 빠르게 답변을 주는데 모델에 상관 없이 opencode/claudecode 에서 연결해 사용하면 단순 질문도 gpu 100% 이 되면서 느려지는 경우도 생겨서 좀 불편했다.
comments:
댓글 쓰기