From 8e22b7f024f6abd75b3b2468ae2e743762e26359 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=B4=BA?= Date: Mon, 13 Jan 2025 23:08:52 +0800 Subject: [PATCH] feat: Add LocalAI (#2944) --- localai/2.25.0/data.yml | 10 +++++++++ localai/2.25.0/docker-compose.yml | 34 ++++++++++++++++++++++++++++++ localai/README.md | 19 +++++++++++++++++ localai/data.yml | 19 +++++++++++++++++ localai/logo.png | Bin 0 -> 8293 bytes 5 files changed, 82 insertions(+) create mode 100644 localai/2.25.0/data.yml create mode 100644 localai/2.25.0/docker-compose.yml create mode 100644 localai/README.md create mode 100644 localai/data.yml create mode 100644 localai/logo.png diff --git a/localai/2.25.0/data.yml b/localai/2.25.0/data.yml new file mode 100644 index 000000000..426fa78c6 --- /dev/null +++ b/localai/2.25.0/data.yml @@ -0,0 +1,10 @@ +additionalProperties: + formFields: + - default: 8080 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: Port + labelZh: 端口 + required: true + rule: paramPort + type: number diff --git a/localai/2.25.0/docker-compose.yml b/localai/2.25.0/docker-compose.yml new file mode 100644 index 000000000..921691b79 --- /dev/null +++ b/localai/2.25.0/docker-compose.yml @@ -0,0 +1,34 @@ +services: + localai: + image: localai/localai:v2.25.0-aio-cpu + container_name: ${CONTAINER_NAME} + # For Nvidia GPUs decomment one of the following (cuda11 or cuda12): + # image: localai/localai:v2.25.0-aio-gpu-nvidia-cuda-11 + # image: localai/localai:v2.25.0-aio-gpu-nvidia-cuda-12 + # Decomment the following piece if running with Nvidia GPUs + # deploy: + # resources: + # reservations: + # devices: + # - driver: nvidia + # count: 1 + # capabilities: [gpu] + restart: always + networks: + - 1panel-network + ports: + - ${PANEL_APP_PORT_HTTP}:8080 + environment: + - DEBUG=true + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:8080/readyz"] + interval: 1m + timeout: 20m + retries: 5 + volumes: + - ./data:/build/models:cached + labels: + createdBy: "Apps" +networks: + 1panel-network: + external: true diff --git a/localai/README.md b/localai/README.md new file mode 100644 index 000000000..8a16a70df --- /dev/null +++ b/localai/README.md @@ -0,0 +1,19 @@ +# LocalAI + +**LocalAI** 是免费的开源 OpenAI 替代品。LocalAI 可作为替代 REST API,与 OpenAI(Elevenlabs、Anthropic……)API 规范兼容,用于本地 AI 推理。它允许您在本地或使用消费级硬件运行 LLM、生成图像、音频(不止于此),支持多种模型系列。不需要 GPU。 + +## 主要功能: + +- 使用 GPT 生成文本(llama.cpp、transformers、vllm 等等) +- 文本转音频 +- 音频转文本(带音频转录 whisper.cpp) +- 图像生成 +- 类似 OpenAI 的工具 API +- 向量数据库的嵌入生成 +- 受限语法 +- 直接从 Huggingface 下载模型 +- 视觉 API +- 重新排序 API +- P2P 推理 +- 语音活动检测(Silero-VAD 支持) +- 集成 WebUI! \ No newline at end of file diff --git a/localai/data.yml b/localai/data.yml new file mode 100644 index 000000000..a3667a339 --- /dev/null +++ b/localai/data.yml @@ -0,0 +1,19 @@ +name: LocalAI +tags: + - AI / 大模型 +title: 免费的开源 OpenAI 替代品 +description: 免费的开源 OpenAI 替代品 +additionalProperties: + key: localai + name: LocalAI + tags: + - AI + shortDescZh: 免费的开源 OpenAI 替代品 + shortDescEn: The free, Open Source OpenAI alternative + type: tool + crossVersionUpdate: false + limit: 0 + recommend: 0 + website: https://localai.io/ + github: https://github.com/mudler/LocalAI/ + document: https://localai.io/ diff --git a/localai/logo.png b/localai/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..72c715006b1086b534828159f914065492e484b9 GIT binary patch literal 8293 zcmbVw2UJt*^6$ppQ0WQ+(xiiQmEt)EsR7hL0wfe6gdTd4rbmyUbO95D9N^G}gboQ1 zkb9IOgd&6l(om{&By?2#$9wL2_uhBkeQUipd+l$2-^}cp*|WZHul>#U@$Vmj^OmL- zrT`BQ0Pt`x;QJKMxP`H?>mBfIQwuATzZCBPE*-fF0H}bl5U|-VmmM5omydt^>xmya zH$-UA5B^_>>vx;>!#e;_RR4?3|4n?-0~w0o8hqy7vLW2y+++p0SkUV)tndT7|Ah^H z;K;C`Fs{v=A2`GgY|OrFWCKGFd``AhkXjy#sK9X{v*~8`jPP&WB|mL%TI9c zOF$?92F!q8e!M?-&ZWR20JydV0EeIdQ|6un0K|9zxWM?QO!f}|IQIkq2t)sr{j(-P zZXs@ecXxz49`f`A08Tjo@Hzs3zH_JN%d2E^}3vxOoL~FE79!KmwNm3m^bM z0BT&M30ws<0Nw9Qz!(rbdyfAcuOR<HFUR zz7squJSvBIq=7?xJcs#szIOtm+;Si0`LPiH7acxw^w6;%I^*-eA)doLM~@yke(cE6 zqdyD|9p*X0f0R!^S`#d#^^1GRF+mv(A?=^<20zY_HRi6zOyNg`^|$P@>W1ZXAVq)v z2*CCIzXjkq#0_zbt5f6S;YQ#FJA4E<{#Sgij*tI{fV76@&r-kK1q;e(xgE8Alu
$Ei+OA(i5fs!b_Nfv^9pW2Tqj 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