diff --git a/dasha/.claude/settings.json b/dasha/.claude/settings.json new file mode 100644 index 0000000..e53cd2a --- /dev/null +++ b/dasha/.claude/settings.json @@ -0,0 +1,10 @@ +{ + "$schema": "https://json.schemastore.org/claude-code-settings.json", + "env": { + "ANTHROPIC_BASE_URL": "http://localhost:4000", + "ANTHROPIC_MODEL": "qwen3-8b", + "ANTHROPIC_DEFAULT_SONNET_MODEL": "qwen3-8b", + "ANTHROPIC_DEFAULT_OPUS_MODEL": "gemma3-27b", + "ANTHROPIC_DEFAULT_HAIKU_MODEL": "qwen3-4b" + } +} diff --git a/dasha/.claude/settings.local.json.example b/dasha/.claude/settings.local.json.example new file mode 100644 index 0000000..3c61a95 --- /dev/null +++ b/dasha/.claude/settings.local.json.example @@ -0,0 +1,5 @@ +{ + "env": { + "ANTHROPIC_AUTH_TOKEN": "dummy" + } +} diff --git a/dasha/.gitignore b/dasha/.gitignore new file mode 100644 index 0000000..37505ac --- /dev/null +++ b/dasha/.gitignore @@ -0,0 +1,2 @@ +.claude/settings.local.json +.env diff --git a/dasha/README.md b/dasha/README.md new file mode 100644 index 0000000..49c0139 --- /dev/null +++ b/dasha/README.md @@ -0,0 +1,25 @@ +# Dasha Compute · red de Macs Apple-silicon (alpha) + +[Dasha Compute](https://www.getdasha.com/compute) es una red de Macs reales que sirven modelos locales detrás de una API OpenAI-compatible. No expone endpoint Anthropic nativo: se intercala LiteLLM como proxy traductor (ver `_docs/proxies.md`). + +- **Base URL (OpenAI-compat)**: `https://www.getdasha.com/compute/api/v1` +- **Guest key (24h, sin registro)**: `curl -X POST https://www.getdasha.com/compute/api/guest-keys` → el campo `api_key` de la respuesta (`dgk_...`) +- **Modelos**: la red sirve un conjunto pequeño y cambiante (al escribir esto: `qwen3-4b`, `qwen3-8b`, `gemma3-12b`, `gemma3-27b`); la lista viva está en `GET /compute/api/v1/models` +- **Estado**: alpha. La disponibilidad varía con los Macs conectados; no hay SLA. +- **Docs**: + +## Uso + +```bash +pip install 'litellm[proxy]' +export DASHA_GUEST_KEY=dgk_... # la key que devuelve /compute/api/guest-keys +litellm --config litellm-config.yaml --port 4000 +cp .claude/settings.local.json.example .claude/settings.local.json +claude +``` + +El `model_name` de cada entrada del config de LiteLLM coincide con los valores `ANTHROPIC_MODEL` / `ANTHROPIC_DEFAULT_*` de `.claude/settings.json` (mapeo por tamaño: haiku → qwen3-4b, sonnet → qwen3-8b, opus → gemma3-27b). Cambia los nombres si la lista viva de modelos cambia. + +## Costo + +La guest key es gratuita (24h, chat + lista de modelos). Es una red comunitaria en alpha: sirve para probar el flujo, no para producción. diff --git a/dasha/litellm-config.yaml b/dasha/litellm-config.yaml new file mode 100644 index 0000000..58b31d7 --- /dev/null +++ b/dasha/litellm-config.yaml @@ -0,0 +1,27 @@ +# Dasha Compute via LiteLLM (proxy traductor - ver _docs/proxies.md) +# 1) Mint a 24h guest key: curl -X POST https://www.getdasha.com/compute/api/guest-keys +# (response field: api_key, prefix dgk_) +# 2) export DASHA_GUEST_KEY=dgk_... +# 3) litellm --config litellm-config.yaml --port 4000 +# Live model list: https://www.getdasha.com/compute/api/v1/models +model_list: + - model_name: qwen3-4b + litellm_params: + model: openai/qwen3-4b + api_base: https://www.getdasha.com/compute/api/v1 + api_key: os.environ/DASHA_GUEST_KEY + - model_name: qwen3-8b + litellm_params: + model: openai/qwen3-8b + api_base: https://www.getdasha.com/compute/api/v1 + api_key: os.environ/DASHA_GUEST_KEY + - model_name: gemma3-12b + litellm_params: + model: openai/gemma3-12b + api_base: https://www.getdasha.com/compute/api/v1 + api_key: os.environ/DASHA_GUEST_KEY + - model_name: gemma3-27b + litellm_params: + model: openai/gemma3-27b + api_base: https://www.getdasha.com/compute/api/v1 + api_key: os.environ/DASHA_GUEST_KEY