FAQ & status

FAQ · 현황

Where Gemstone stands

Gemstone 의 현재 위치

Every capability with its status, and how to help move it forward.

모든 기능과 그 상태, 그리고 앞으로 나아가게 돕는 방법.

Status현황

Capability기능State상태
Streaming chat over WebSocketWebSocket 스트리밍 채팅implemented
Reasoning display, tool calling추론 표시, 도구 호출implemented
Single transformers-based engine (Qwen 3 0.6B) on upstream PyTorch; on torchnative 0.1.0b6 generation does not work yet (#177)transformers 기반 단일 엔진 (Qwen 3 0.6B), upstream PyTorch 위. torchnative 0.1.0b6 에서는 아직 생성이 동작하지 않음 (#177)partial
Continuous batching with a paged KV cache (concurrent requests; a request that waits too long gets 503 / 1013; a faster paged-attention kernel is planned, #74)페이지드 KV 캐시를 쓰는 연속 배칭 (동시 요청, 너무 오래 기다리면 503 / 1013. 더 빠른 paged-attention 커널은 계획, #74)partial
Several resident models, eviction, keep_alive여러 상주 모델, 축출, keep_alivepartial
OpenAI-compatible API (tool calls passed through; no n > 1, logprobs or embeddings)OpenAI 호환 API (도구 호출은 클라이언트로 전달, n > 1 · logprobs · embeddings 없음)partial
Ollama-compatible API (chat, generate, tags, show, pull, delete, ps, copy, create, embed; no push, Modelfile or template)Ollama 호환 API (chat, generate, tags, show, pull, delete, ps, copy, create, embed. push · Modelfile · template 없음)partial
Security defaults (127.0.0.1 bind, origin checks, API key)보안 기본값 (127.0.0.1 바인드, 오리진 검사, API 키)implemented
Android, desktop and web clients; the model list is read from the serverAndroid, 데스크톱, 웹 클라이언트. 모델 목록은 서버에서 읽음implemented
iOS client (builds for the simulator; not yet run)iOS 클라이언트 (시뮬레이터용으로 빌드됨, 아직 실행해 보지 않음)partial
Session API (errors are non-2xx with a JSON detail)세션 API (오류는 2xx 가 아닌 상태와 JSON detail)implemented
Chat list and history, saved on the device, not encrypted (#43)대화 목록과 기록, 기기에 저장, 암호화하지 않음 (#43)implemented
Automated tests (Python incl. a real model, Kotlin network layer; UI untested)자동화된 테스트 (실제 모델을 쓰는 Python, Kotlin 네트워크 계층. UI 는 테스트 없음)partial
Native desktop executable (GraalVM): Windows x64 build path, not yet run네이티브 데스크톱 실행 파일 (GraalVM): Windows x64 빌드 경로가 있고 아직 실행해 보지 않음planned
GPU (CUDA) inference as a cuda extra (#164)cuda extra 로 GPU(CUDA) 추론 (#164)planned
4-bit weights, GGUF (#67)4비트 가중치, GGUF (#67)planned
Settings dialog: server address and API key, the key in secure storage (#166)설정 대화상자: 서버 주소와 API 키, 키는 보안 저장소에 (#166)implemented
On-device inference (#42), offline mode, cross-device sync (#167)온디바이스 추론 (#42), 오프라인 모드, 기기 간 동기화 (#167)planned

“implemented” and “partial” mean what the specification says; the Python server is tested, including with a real model (SmolLM2-135M) in CI, while the client UI is not. “partial” items work, with the gaps listed.

“implemented” 와 “partial” 은 스펙의 표기를 따릅니다. Python 서버는 CI 에서 실제 모델(SmolLM2-135M)로도 테스트되지만 클라이언트 UI 는 테스트가 없습니다. “partial” 항목은 동작하며, 빠진 부분을 함께 적었습니다.

Questions질문

Does Gemstone work offline?Gemstone 은 오프라인으로 동작하나요?

Not yet. Today every chat goes through the Python server. That server runs on your own machine without internet, except for the tools that look things up online. Fully offline, in-app inference is planned (#42).

아직은 아닙니다. 지금은 모든 채팅이 Python 서버를 거칩니다. 그 서버는 인터넷 없이 내 머신에서 돕니다. 다만 온라인 조회를 하는 도구는 예외입니다. 완전한 오프라인, 앱 내 추론은 계획 단계입니다(#42).

Where are my chats stored?대화는 어디에 저장되나요?

In the client's memory, for as long as it runs. The client writes nothing to disk and sends nothing anywhere except your server. The server logs prompts and answers only when GEMSTONE_LOG_LEVEL=DEBUG is set.

실행되는 동안 클라이언트의 메모리에만 있습니다. 클라이언트는 디스크에 쓰지 않고 내 서버 말고는 어디에도 보내지 않습니다. 서버는 GEMSTONE_LOG_LEVEL=DEBUG 를 설정했을 때만 프롬프트와 답변을 로그에 남깁니다.

What hardware do I need?어떤 하드웨어가 필요한가요?

No GPU is needed, and none is used yet: the engine runs on the CPU. GPU (CUDA) support is planned (#164). The default model, Qwen 3 0.6B, is small enough for that.

GPU 는 필요 없고 아직 쓰지도 않습니다. 엔진은 CPU 에서 돕니다. GPU(CUDA) 지원은 계획 단계입니다(#164). 기본 모델인 Qwen 3 0.6B 는 그걸로 충분할 만큼 작습니다.

Can I use OpenAI or Anthropic models?OpenAI 나 Anthropic 모델을 쓸 수 있나요?

No. Gemstone runs open-weight models locally. Whether remote providers belong in the project at all is an open question for the maintainers.

아니요. Gemstone 은 공개 가중치 모델을 로컬에서 돌립니다. 원격 제공자가 이 프로젝트에 들어올지 자체가 메인테이너의 열린 질문입니다.

Contributing기여하기

Gemstone runs on intent → spec → test → code:

Gemstone 은 의도 → 스펙 → 테스트 → 코드 로 운영합니다:

  1. The intent says what the project is for. A change outside it starts as a conversation, not a pull request.
  2. 의도는 프로젝트가 무엇을 위한 것인지 말합니다. 그 밖의 변경은 풀 리퀘스트가 아니라 대화로 시작합니다.
  3. A behaviour change first updates the spec, with a status: implemented, partial or planned.
  4. 동작 변경은 먼저 스펙을 상태(구현 · 부분 · 계획)와 함께 갱신합니다.
  5. Write the test from the spec and watch it fail before you write the code.
  6. 스펙에서 테스트를 쓰고, 코드를 쓰기 전에 실패하는 것을 확인합니다.
  7. Make it pass. Use LF line endings, and keep each pull request to one concern.
  8. 통과시킵니다. 줄바꿈은 LF 로, 풀 리퀘스트 하나에는 관심사 하나만.

The intent and spec live on the develop branch: INTENT · SPEC. Report bugs and propose ideas in issues.

의도와 스펙은 develop 브랜치에 있습니다: INTENT · SPEC. 버그와 제안은 이슈로 남겨 주세요.