로컬 LLM을 오프라인으로 실행하기 위한 데스크톱 채팅 앱을 만들었습니다
요약
사용자가 여러 AI 채팅 UI를 오가는 번거로움을 해결하기 위해 Ollama와 연동되는 로컬 LLM 전용 데스크톱 채팅 앱인 Openbench를 개발했습니다. 이 앱은 멀티 모델 비교, Markdown 및 LaTeX 지원, Ollama 모델 관리 기능을 통해 오프라인 환경에서 효율적인 모델 테스트를 지원합니다.
핵심 포인트
- Ollama와 연동하여 로컬 환경에서 데이터 유출 걱정 없이 LLM 실행 가능
- 동일한 프롬프트에 대해 여러 모델의 응답을 실시간으로 비교하는 멀티 모델 채팅 기능 제공
- Tauri, Zustand, SQLite, ollama-rs를 활용한 경량화된 기술 스택 구성
- Markdown, LaTeX 지원 및 게스트 모드 등 사용자 편의 기능 포함
- 향후 OpenAI 호환 API 지원을 통한 확장 가능성 보유
몇 달 전, 저는 다른 모델을 테스트하고 싶을 때마다 ChatGPT, Claude, 그리고 수십 개의 다른 AI 채팅 UI 사이를 왔다 갔다 하는 것에 지쳤습니다. 생산성이라는 것이 만약 탭 과부하와 끊임없는 컨텍스트 스위칭 (Context Switching)을 의미하는 것이라면, 그것은 생산성처럼 느껴졌습니다. 또한, JSON 형식을 묻는 질문 하나를 하기 위해 데이터를 다른 사람의 서버로 보내지 않고 모든 것을 로컬 (Local)에서 실행하고 싶었습니다. 그래서 저는 Openbench AI를 만들었습니다.
이것은 무엇인가
OpenBench는 Ollama에 연결하여 Docker, Python 환경, 또는 "왜 이 포트가 또 작동하지 않지"와 같은 디버깅 (Debugging) 세션의 일반적인 의식 없이 로컬 LLM (Large Language Models)과 대화할 수 있게 해주는 데스크톱 채팅 앱입니다. 설치하고, 열고, 채팅하면 됩니다. 그게 전부입니다.
주요 기능
- 멀티 모델 채팅 (Multi-model chat, 나란히 비교): 여러 모델을 동시에 실행하고 동일한 프롬프트 (Prompt)에 대해 실시간으로 응답하는 것을 관찰할 수 있습니다. 어떤 모델이 가장 좋은지 추측하는 대신, 모델이 얼마나 일관성이 없는지를 가끔씩 드러내는 약간 과학적인 실험처럼 동일한 조건 하에서 직접 비교할 수 있습니다.
- Markdown + LaTeX 지원: KaTeX를 통한 전체 렌더링 (Rendering)을 지원합니다. 따라서 모델이 방정식이나 구조화된 설명을 작성할 때, 실제로 사람이 기꺼이 읽을 만한 모습으로 보입니다.
- 게스트 모드 (Guest mode): 앱을 닫으면 사라지는 임시 채팅입니다. 저장 공간 없음, 계정 없음, 메모리 오버헤드 (Memory overhead) 없음. 약속 없는 빠른 실험을 위한 것입니다.
- Ollama 모델 관리: 터미널 명령어를 다루며 처음부터 모든 것을 정확하게 입력했기를 바라는 대신, 앱 내부에서 직접 모델을 설치할 수 있습니다.
- 대화 도구:
- 채팅 아카이브 (Archive chats)
- 시스템 프롬프트 (System prompt) 프리셋
- 사용자 정의 시스템 프롬프트
- 불필요한 혼란이 없는 깔끔한 인터페이스
기술 스택 (Tech stack)
- Tauri
- Zustand
- MUI
- SQLite
- ollama-rs
내가 바꿀 점
만약 제가 다시 만든다면, 첫날부터 OpenAI 호환 API 지원을 추가할 것입니다. 현재는 Ollama와만 작동하지만, 아키텍처 (Architecture)는 이미 추가 제공업체를 지원할 수 있습니다. 우선순위라는 개념이 허구이기 때문에 아직 연결하지 않았을 뿐입니다.
오픈 소스 (Open source) 이 프로젝트는 오픈 소스이며, 직접 컴파일할 필요 없이 사용해보고 싶다면 릴리스 빌드 (release builds)를 이용할 수 있습니다. Openbench GitHub 맺음말 (Closing note) 멀티 모델 스트리밍 (multi-model streaming)을 구축하는 것과 Rust 이벤트 브리지 (event bridges)를 디버깅하는 것 사이의 어딘가에서, 저는 세상에 또 다른 채팅 UI가 반드시 필요하지는 않다는 사실을 깨달았습니다. 그럼에도 불구하고 저는 하나를 만들었습니다. 참고로 말씀드리자면, 이 앱은 훨씬 더 많은 자금과 낙관주의를 가진 대부분의 도구들보다 더 잘 작동합니다. 그리고 네, 도구 파편화 (tool fragmentation)로 인해 정신을 잃지 않으면서 여러 AI 모델을 다루려고 애쓰는 게이 개발자에게도 아주 잘 작동합니다. 이는 아마 대부분의 소프트웨어 문서가 법적으로 포함할 수 있는 수준보다 더 솔직한 표현일 것입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기