원문 캡처 · ollama-mock.kinduff.com
원문 캡처 · ollama-mock.kinduff.com

Ollama Mock은 모델을 실행하지 않고도 Ollama와 같은 API와 포트에서 요청을 시험할 수 있는 가짜 서버다. 브라우저에서 바로 체험하거나 로컬에 설치해 사용할 수 있으며, 응답은 결정론적이지만 도구 호출·이미지·JSON·임베딩 등 여러 형태를 흉내 낸다.

브라우저 체험판은 WebAssembly로 컴파일된 모의 서버가 현재 탭에서 요청에 응답한다. qwen3:8b, llama3.2, gemma3:4b, nomic-embed-text, kev, qwen2.5-coder:7b가 설치된 상태이며, 자료에 따르면 요청 데이터는 외부로 전송되지 않는다. 이미지 기능은 실제 이미지를 살펴보지 않고 이미지 수만 세므로, 생성되는 설명은 실제 이미지 내용과 무관하다.

같은 질문을 새 채팅에서 다시 하면 같은 답변이 나오며, 도구 기능에서는 날씨 질문에 get_weather를 호출해 임의의 결과를 돌려준다. JSON 모드는 전달된 스키마에 맞는 답변을 생성한다. 임베딩은 단어를 공유하는 텍스트를 더 가깝게 배치하고, 코드 채우기 기능은 코드의 두 부분 사이를 완성한다. 가져오지 않은 모델을 요청하거나 지원되지 않는 조합을 쓰면 Ollama 자체 오류를 반환한다.

설치와 사용

Go로 설치한 뒤 실행하면 Ollama처럼 127.0.0.1:11434에서 수신한다. 따라서 기존 코드와 ollama CLI를 바꾸지 않고 연결할 수 있다.

go
 go install github.com/kinduff/ollama-mock/cmd/ollama-mock@latest
ollama-mock -models qwen3:8b,llama3.2,nomic-embed-text

CI에서는 -latency 0을 설정해 대기 시간을 없앨 수 있다. Go에서는 mock.New(mock.Options{...})가 httptest용 http.Handler를 반환한다.

bash
curl -N localhost:11434/api/chat -d '{
 "model": "qwen3:8b",
 "messages": [{"role": "user", "content": "How do I keep a sourdough starter alive?"}]
}'

지원 엔드포인트는 다음과 같다.

경로기능
/api/*Ollama 기본 API: 채팅, 생성, 임베딩, 모델 가져오기·조회·생성·복사·삭제, 실행 중인 프로세스 조회
/v1/*OpenAI 호환 API: 채팅 완성, 완성, 임베딩, 모델
/v1/systemonekev 같은 의사결정 모델을 위한 유형 지정 의사결정
/_mock/*테스트용 상태·요청 조회, 오류 주입, 초기화

브라우저 체험과 설치 방법, 나머지 동작은 GitHub README에서 확인할 수 있다.