ویرگول
ورودثبت نام
ict.security
ict.securityدر مورد ای‌تی و روزمرگی می‌نویسم و همچنین تجربه زندگی و کار ممنون میشم نظرتون برام بنویسید
ict.security
ict.security
خواندن ۳ دقیقه·۳ ماه پیش

راه اندازی چت بات لینوکسی با DockerوLLM


فهرست مطالب
.1مقدمه
.2معماری کلی سیستم
.3پیشنیازها
.4دریافت ایمیجها
Docker Compose . پیکربندی با5
.6اجرای سرویسها
.7نصب مدلLLM
.8مزایا و ویژگی ها
.9نکات امنیتی و بهینه سازی


.1مقدمه
چتباتها به یکی از اجزای کلیدی در دنیای نرمافزار تبدیل شدهاند؛ از پشتیبانی مشتریان گرفته تا
اتوماسیون DevOpsاما داشتن یک چتبات محلی ) (On-Premiseکه روی سرور لینوکسی شما
بدون وابستگی به سرویسهای ابری اجرا شود، هم امنیت دادهها را بالا میبرد و هم آزادی بیشتری برای
شخصیسازی فراهم میکند.


راه اندازی یک چت بات لینوکسی با Docker + Ollama + Open-WebUIبه شما این امکان را
میدهد که بدون وابستگی به سرویسهای خارجی، یک دستیار هوش مصنوعی محلی و امن داشته
باشید. این ساختار به راحتی قابل توسعه است و میتوانید آن را برای نیازهای سازمانی یا شخصی
خود سفارشی کنید.


.2معماری کلی سیستم
این معماری شامل سه لایه اصلی است:
Open-WebUI .1
Ollama .2
Docker & Docker Compose .3

• یک رابط وب سبک و قدرتمند برای تعامل با مدلهای هوش مصنوعی
• درگاه ارتباطی کاربر با LLM
• موتور مدیریت و اجرای مدلهای زبانی بزرگ ()LLM
• امکان اجرای مدلهایی مثل Mistral ،LLaMAو Gemmaروی سرور محلی
• ابزار کانتینرسازی برای جداسازی سرویسها
• مدیریت ساده و مقیاسپذیر اجزا
• Portainerنرمافزار گرافیکی مانیتورینگ و مدیریت کانتینرها برای تسهیل کنترل سرویسها

.3پیشنیازها
(Ubuntu/Debian/CentOS)✓ یک سرور لینوکسی
Docker Compose وDocker ✓ نصب بودن
✓ منابع سختافزاری مناسب ( GPUاختیاری، اما توصیه میشود برای سرعت بالاتر)


.4دریافت ایمیج ها
ابتدا ایمیجهای لازم را از Docker Hubدریافت میکنیم:


docker pull dyrnq/open-webui

این سرویس روی پورت 3000میزبان اجرا شده و با متغیر محیطی زیر به سرویس Ollamaمتصل
میشود. این بخش امکان ارسال سوالات به مدل و دریافت پاسخها را از طریق رابط کاربری وب فراهم
میکند.


docker pull ollama/ollama

سپس کانتینری به نام ollamaایجاد و پورت 11434را به سیستم میزبان متصل نمایید. داده های مدل
روی مسیر محلی ./chat-bot/ollama_data/modelsذخیره میشوند. این کانتینر مسئول پاسخ به
درخواستهای پردازش زبان طبیعی است.


docker pull portainer

مدیریت کانتینرها با : Portainerپورتینر داشبورد گرافیکی برای مدیریت داکر است که بدون
نیاز به خط فرمان پیچیده، تمامی کانتینرها، لاگها و منابع را قابل مشاهده و کنترل میکند. این
سرویس روی پورت 9000فعال میشود و با سیاست امنیتی no-new-privileges:true
اجرا میگردد تا از افزایش مجوزهای ناخواسته جلوگیری کند.


در صورت داشتن فایل ایمیجها به صورت لوکال:


docker load -i open-webui
docker load -i ollama

Docker Compose. پیکربندی با5

یک فایل docker-compose.ymlمشابه زیر ایجاد کنید:


version: '3.9'
services:
ollama:
image: ollama/ollama:latest
container_name: ollama
ports:
- "11434:11434"
volumes:
- ./chat-bot/ollama_data/models:/data
environment:
- MODEL=meta-llama/Llama-3-70b-chat-hf
- MAX_NUM_SEQS=128
- TRUST_REMOTE_CODE=true
- VLLM_USE_MULTIGPU=true
restart: always


networks:
- app-tire
open-webui:
image: dyrnq/open-webui:latest
container_name: open-webui
depends_on:
- ollama
ports:
- "3000:3000"
volumes:
- ./chat-bot/openwebui_data:/data
environment:
- OLLAMA_BASE_URL=http://ollama:11434
extra_hosts:
- "host.docker.internal:host-gateway"
restart: always
networks:
- app-tire
portainer:
image: portainer/portainer-ce:2.14.1-alpine
container_name: portainer
restart: unless-stopped
security_opt:

- no-new-privileges:true
volumes:
- /etc/localtime:/etc/localtime:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./chat-bot/portainer:/data
ports:
- 9000:9000
networks:
- app-tire
networks:
app-tire:
driver: bridge


.6اجرای سرویسها
:Docker composeاین ابزار این امکان را میدهد که می توانید کانفیگ containerهایی که
به هم مرتبط هستند را در یک فایل ymlمشخص کنید که به صورت docker-compose.yml
میباشد.


docker compose up –d

بعد از بالا آمدن کانتینرها، رابط کاربری در مرورگر در دسترس خواهد بود:


http://localhost:3000

و همچنین میتوانید با استفاده از پورتینر ( )portainerکه یک رابط گرافیکی تحت وب برای
dockerاست، کانتینرها را مدیریت و مانتیورینگ یا نگهداری کنید، در مرورگر با پورت 9000
میتوانید به پورتینر دسترسی پیدا کنید؛


http://localhost:9000

.7نصب مدلLLM
برای بارگذاری مدل (مثلا :)LLaMA 3.2


ollama pull llama3.2

حالا میتوانید مدل را داخل Open-WebUIاستفاده کنید.

.8مزایا و ویژگیها
✓ → Privacyدادههای شما داخل سرور باقی میماند.
.)LLaMA, Mistral, Gemma( → انتخاب آزادانه مدلهای مختلفFlexibility ✓
✓ → Scalabilityامکان افزودن سرویسهای جانبی مثل دیتابیس، حافظه بلندمدت ( Vector
،)DBیا اتصال به APIهای خارجی.
.CI/CD ، امکانDocker Compose → مدیریت ساده باDevOps Friendly ✓


.9نکات امنیتی و بهینه سازی
✓ استفاده از شبکه داخلی Dockerبرای کاهش دسترسی غیرمجاز
✓ محدود کردن دسترسی Portainerفقط به IPهای مجاز
✓ مانیتور مصرف حافظه و CPUمدل برای جلوگیری از اختلل سرویس
✓ پشتیبانگیری منظم از دادهها و مدلها
✓ بهروزرسانی منظم ایمیجها و رفع آسیبپذیریهای امنیتی


dockerچت باتداکر
۱
۰
ict.security
ict.security
در مورد ای‌تی و روزمرگی می‌نویسم و همچنین تجربه زندگی و کار ممنون میشم نظرتون برام بنویسید
شاید از این پست‌ها خوشتان بیاید