Skip to content

Kendi Sunucunuza Yerleştirebileceğiniz Yapay Zeka Sohbet Botu

Bu makalede

Bilgi

Kendi sunucunuza yerleştirdiğiniz yapay zeka sohbet botu, birçok açık kaynaklı bileşenin bir araya gelmesiyle oluşan yerel bir çözümdür. Bu sistemin kalbi Ollama'dır; bu, yerel hesaplama kaynaklarına büyük ölçekli dil modelleri (LLM) başlatmak ve yönetmek için tasarlanmış bir mimari çerçevedir. Belirlenen LLM'lerin indirilip dağıtılmasını sağlar. Görevlendirilen modele sorunsuz etkileşim için Open Web UI, grafik bir arayüz kullanır; bu web uygulaması kullanıcıların metinsel sorular göndermesini ve dil modellerinin ürettiği yanıtları almasını sağlar. Bu bileşenlerin entegrasyonu, açık kaynak kod tabanlı gelişmiş dil modelleri yerleştirmek için tamamen otonom ve yerel bir çözüm oluştururken veri bütünlüğünü ve sistem performansını tam kontrol altında tutmanızı sağlar.

Temel Özellikler

  • Web Arayüzü: Open Web UI, Ollama deposundaki yerel AI dil modellerini merkezi bir şekilde kontrol etme ve etkileşim yeteneklerini genişletme konusunda kullanıcı dostu bir web arayüzü sunar. Bu, farklı seviyelerde beceriye sahip kullanıcılar için modeli kullanmayı önemli ölçüde kolaylaştırır.
  • Birçok Dil Modeline Entegrasyon: Ollama, size birçok ücretsiz dil modelinin erişimini sağlayarak, elinizdeki doğal dil işleme (NLP) yeteneklerini artırır. Ayrıca özelleştirilmiş modellerinizi de entegre edebilirsiniz.
  • Görevler: Kullanıcılar sohbetlerde bulunabilir, sorulara cevap alabilir, veri setlerini analiz edebilir, çeviri yapabilir ve LLMs'nin yardımıyla kendi chatbotlarını veya AI destekli uygulamalarını geliştirebilir.
  • Açık Kaynak Kod: Ollama açık kaynaklı bir projedir, bu da kullanıcıların platformu özel ihtiyaçlarına göre özelleştirmelerine ve değiştirmelerine olanak tanır.
  • Web Kazıma ve İç Doküman Arama (RAG): OpenWebUI aracılığıyla, metin dosyaları, PDF'ler, PowerPoint sunumları, web siteleri ve YouTube videoları gibi çeşitli belge türlerinde arama yapabilirsiniz.

Not

Ollama'nın temel ayarları ve Open WebUI belgeleri hakkında daha fazla bilgi için Ollama geliştirici dokümantasyonu ve Open WebUI dokümantasyonu başvurun.

Çalıştırma Özellikleri

ID Uyumlu OS VM BM VGPU GPU Min CPU (Çekirdekler) Min RAM (GB) Min HDD/SSD (GB) Aktif
117 Ubuntu 22.04 - - + + 4 16 - Evet
  • OS ve sunucunun birlikte kurulum süresi 15 ila 30 dakika arasında değişir.
  • Ollama Sunucusu, LLM'yi bellekte indiriyor ve başlatıyor, böylece dağıtım süreçleri hızlandırılıyor.
  • Open WebUI, Ollama Sunucusuyla bağlantı kuran bir web uygulaması olarak çalışır.
  • Kullanıcılar, Ollama Server ile Open WebUI'nin web arayüzünden LLaMA 3 ile etkileşime geçerek sorular gönderip yanıtlar alır.
  • Tüm hesaplamalar ve veri işlemeleri sunucuda yerel olarak yapılır, bu da gizlilik ve bilgi akışı kontrolü sağlar. Sistem yöneticileri, OpenWebUI tarafından sağlanan özellikler aracılığıyla sistemi özelleştirmek için LLM'yi kişiselleştirme seçeneğine sahiptir.
  • Sistem gereksinimleri, optimal performans için en az 16 GB RAM gerektirir.

Kurulum sürecini tamamladıktan sonra kullanıcılar sunucularına şu URL aracılığıyla erişmek zorundadır: https:ollama<Server_ID_from_Invapi>.hostkey.in.

Dağıtılmış AI Chatbotunuzla Başlayın

Sipariş ve ödeme işleminiz tamamlandıktan sonra, sunucunun çalışmaya hazır olduğunun teyit edildiği e-posta adresinize bir bildirim gönderilecektir. Bu iletişimde, bağlantı amaçları için VPS IP adresi ve giriş bilgiler bulunur. Şirketimizin ekip yönetimi ekibi sunucular ve API'ler için kontrol panelimizi kullanır - özellikle de Invapi '.

webpanel etiket bağlantısına tıkladığınızda bir giriş penceresi belirir.

Open WebUI web arayüzünün ve yönetim paneline erişmek için giriş bilgileriniz aşağıdadır:

  • Yönetim paneline ve Open WebUI'nin web arayüzüne erişim URL: webpanel etiketi aracılığıyla. Hangi adres olduğunu Invapi'den aldığınız sunucu ID numarası ile https://ollama<Server_ID_from_Invapi>.hostkey.in formatında tespit edin, ve teslim edilen e-postada belirtildiği gibi.

Bu bağlantıya tıkladıktan sonra Open WebUI içinde bir kimlik (kullanıcı adı) ve şifre oluşturmanız gerekecektir.

Dikkat

İlk kullanıcı kaydı sırasında, sistem otomatik olarak onlara yönetici rolü verir. Güvenlik ve kayıt işleminin kontrolünü sağlamak için, tüm sonraki kayıt başvuruları, bir hesabı kullanan yönetici tarafından onaylanması gereken adımları gerektirir.

OpenWebUI Başlangıç Ekranı

Başlangıç ​​ekranı, sistemin yeteneklerini göstermek için birkaç örnek giriş (soru) metni ile birlikte bir sohbet arayüzü sunar. Chatbot ile etkileşime geçmek için kullanıcıların mevcut seçeneklerden tercih ettikleri dil modelini seçmeleri gerekir. Bu durumda LLaMA 3, çeşitli sorulara yanıt üretme konusunda geniş bilgi ve yeteneklere sahip olduğu için önerilir.

Bir modeli seçtikten sonra, kullanıcılar girdi alanına ilk sorularını yazabilir ve sistem, girilen metnin analizine göre bir yanıt üretir. Başlangıç ​​ekranında sunulan örnekler, chatbot'un ele alabileceği konuların çeşitliliğini göstererek kullanıcıların yetenekleriyle tanışmalarını sağlar.

AçıkWebUI Çalışma Alanınızı Konfigüre Edin

Soğutucu sohbet deneyiminizi daha da kişiselleştirmek için Workspace bölümüne gidin. Burada, çeşitli özelleştirme seçeneklerine erişebilirsiniz:

  • Models - Bu bölüm size özel ihtiyaçlarınız için mevcut modellerin ince ayarını yapmanızı sağlar. Sistem önerileri, parametreler, belgeler veya bilgi tabanları bağlamak, araçlar, filtreler veya eylemler tanımlamak gibi seçenekleri sunar.
  • Knowledge - Bu bölüm, belgelerinize dayalı bilgi tabanı (RAG) konfigürasyonunu yapılandırır.
  • Prompts - Sohbet robotu ile etkileşim için daha etkili bir şekilde çalışmak üzere kendi önerilerinizi (giriş talepleri) bu bölümde oluşturabilir, düzenleyebilir ve yönetebilirsiniz.
  • Tools - LLM'nin bir talebi sırasında sunulması gereken özelleştirilmiş Python scriptlerini bağlayın. Araçlar, LLM'nin eylemler gerçekleştirmesini ve ek bağlam elde etmesini sağlar. Hazırlanmış topluluk araçları web sitesinde görüntülenebilir.
  • Functions - Buraya modüler işlemler bağlayın. Fonksiyonlar, kullanıcıların AI'nin yeteneklerini genişletmek için belirli mantık veya eylemleri doğrudan iş akışlarına yerleştirerek kullanmalarını sağlar. Araçlardan farklı olarak fonksiyonlar OpenWebUI ortamında çalışır ve veri işleme, görselleştirme ve etkileşimli iletişim gibi görevleri gerçekleştirir. Hazırlanmış fonksiyon örnekleri web sitesinde görüntülenebilir.

Model Eklenmesi ve Çıkartılması

Ollama, varsayılan olanın ötesinde geniş bir yelpazede dil modellerini yükleyip kullanma imkanı sunar. Yeni modeller yüklemeden önce sunucunuzun yapılandırmasının seçilen modelin bellekteki kullanımına ve hesaplama kaynaklarına ilişkin gereksinimlerini karşıladığından emin olun.

OpenWebUI Arayüzü aracılığıyla Model Yükleme

OpenWebUI arayüzü aracılığıyla modeller yüklemek için şu adımları izleyin:

  1. Ollama kütüphanesi içindeki istediğiniz modeli seçin ve adına tıklayarak sayfalar arasında gezinin. Model türünü ve boyutunu (gerekirse) seçin. En uygun "boyut" varsayılan olarak sunulacaktır. Ardından, ollama run <model_name> gibi komutu sol taraftaki iki kare simgesiyle gösteren ikona tıklayın ve kurulum dizesini kopyalayın.

  2. OpenWebUI sohbet robotu penceresinin üst sol köşesindeki model adına tıklayın ve kopyalanan komutu Search a model alanına yapıştırın.

  3. Pull "ollama run " from Ollama.com dizesine tıklayın.

  4. Başarılı bir indirme ve kurulum sonrası, model açılır menüde görünür ve seçilebilir hale gelir.

Komut Satırı ile Model Yükleme

Yeni modeller yüklemek için SSH kullanarak sunucunuza bağlanmanız ve bu makalede belirtilen komutu kullanarak işlemi gerçekleştirmeniz gerekir.

Model Çıkartma

OpenWebUI arayüzü üzerinden modellerden çıkarmak için, pencerenin sağ üst köşesindeki Settings simgesine tıklayıp Admin Panel >> Model'i seçin. Açılır menüde silmek istediğiniz modeli seçin ve yanında bulunan ikonuna tıklayın:

Komut satırı kullanılarak (root olarak) bir modeli çıkarmak için şu komutu kullanın:

ollama rm <model_name>

Bilgi Tabanına Belgeler Eklemek (RAG)

Knowledge seçeneği, bilgi tabanları (RAG) oluşturmanıza ve PDF, metin dosyaları, Word belgeleri, PowerPoint sunumları gibi çeşitli formatlardaki belgeleri yüklemenize olanak sağlar. Bu belgeler analiz edilir ve chatbot ile tartışılabilir hale gelir. Bu özellikle karmaşık dokümanları incelemek ve anlamak, sunumlara veya toplantılara hazırlanmak, veri ve raporları analiz etmek, yazılmış çalışmaları gramer hataları, stil ve mantık açısından kontrol etmek, hukuki ve finansal belgelerle çalışmak ve çeşitli alanlarda araştırma yapmak için özellikle yararlıdır. Chatbot, belge içeriğini anlamak, özetlemek, önemli noktaları vurgulamak, soruları yanıtlamak, ek bilgiler sağlamak ve önerilerde bulunarak size yardımcı olabilir.

Belgelerle çalışmak için en az bir bilgi tabanı oluşturmanız gerekir. Bunu yapmak için Workspace >> Knowledge bölümüne gidin ve üst sağ köşedeki düğmesine tıklayın. Bilgi tabanının adı ve içeriği hakkında bilgileri doldurun ve Bilgi Oluştur düğmesiyle oluşturun.

Bilgi tabanı bölümünde, solda bilgi tabanına yüklenen dosyaların listesi, sağda ise içerikleri veya belgelerin sürükleme ve bırakma için kullanabileceğiniz yer bulunur.

Ayrıca, Search Collection arama çubuğunun yanında düğmesine tıklayarak şunları yapabilirsiniz:

  • Bilgi tabanına dosya yükle (Upload files)
  • Bilgi tabanına tüm bir klasör yükleyin (Upload directory)
  • Bilgi tabanında ve dizindeki dosyalar ve içerikleri senkronize edin (Sync directory). Bu seçenek, bilgi tabanı güncellemenizi sağlar.
  • Ollama'nın yerleşik editörü aracılığıyla bilgi tabanına içerik ekleyin (Add text content)

Bilgi tabanından herhangi bir dosyayı seçerek ve beliren X işaretine tıklayarak silebilirsiniz.

Dikkat

Seçilen model ve sunucudaki GPU gücü dikkate alındığında, belge ayarlarında gömülme oluşturmak dakikalarca sürer.

Belge ayarlarını yönetmek için User Name >> Settings >> Admin Settings >> Documents bölümüne gidin.

İşte yapılandırabileceğiniz şeyler:

  1. Embedding Model Engine - Gömülmeleri oluşturan motor. Varsayılan olarak SentenceTransformers kullanılır, ancak bu amaçla Ollama'dan gelen gömülme modelleri yükleyebilir ve kullanabilirsiniz.
  2. Hybrid Search - Hibrit arama. Aktif olduğunda, bilgi tabanları ve belgeler için arama kalitesi artar ancak çalışma hızı önemli ölçüde azalabilir.
  3. Embeding Models - Gömülme modeli. Bu alanı iyileştirilmiş modele sentence-transformers/all-MiniLM-L12-v2 ayarlamanız ve sağındaki yükleyi düğmesine tıklamanız önerilir.
  4. Engine - İçerik özütüleme motoru. Varsayılan değeri kullanın.
  5. Query Params: Bu bölüm, yüklediğiniz dokümanlara yönelik sorulara ve chatbot'un yanıt oluşturma şekline etki eden parametreler konfigüre eder.
    • Top K - Top K ayarlama, görüntülenen en iyi arama sonuçlarının sayısını belirler. Örneğin, Top K = 5 olarak ayarlanırsa, en uygun 5 belge veya metin parçası yanıtta gösterilir.
    • RAG Template - RAG (Retrieval Augmented Generation), sistemin önce bir dizi belgeden ilgili metin parçalarını çıkarıp, bunları bir dil modeli yardımıyla cevap oluştururken kullandığı bir yöntemdir. RAG Şablonu, bu yöntemi kullanırken dil modeline gönderilen talep şablonunu ayarlar. Farklı kullanım senaryolarında daha yüksek kaliteli yanıtlar almak için RAG Şablonunun biçimlendirilebilmesi özelliği faydalıdır.
  6. Chunk Params - Bu bölüm, yüklediğiniz dokümanları parçalara ayırmak için kullanılan parametrelerin yapılandırmasına olanak sağlar. Parçalama, büyük dokümanları daha kolay işleme imkanı sağlayan küçük parçalara bölmek anlamına gelir. Burada, parçaların maksimum boyutunu sembollerde belirleyebilirsiniz: Chunk Size ve parçaların birbirine ne kadar örtüşebileceğini belirleyebilirsiniz: Chunk Overlap. Önerilen değerler sırasıyla 1500 ve 100'dür.

Bu bölümde, PDF Ekstraksiyonu Görüntüleri (OCR) seçeneğini etkinleştirmeyi de seçebilirsiniz. Bu, PDF dosyalarından görüntüleri tanımayı ve bu görüntülerdeki metni tanımayı sağlayan bir teknoloji olan OCR'yi kullanır. OCR etkinleştirildiğinde, sistem PDF dosyalarındaki görüntüyü alır ve bu görüntüdeki herhangi bir metni tanımlamak için OCR kullanır.

  1. Files - Bu bölümde, yüklenen dosyanın maksimum boyutunu ve toplam sayısını ayarlayabilirsiniz.

Reset Upload Directory ve Reset Vector Storage/Knowledge düğmeleri altında bulunan düğmeler, yüklü belge dosyalarının dizinini temizler ve kaydedilen vektör depolama / bilgi tabanını (hepsini) sıfırlar. Bunları yalnızca gerçekten gerekli olduğunda kullanın ve belgeleri ve bilgi tabanlarını Workspace aracılığıyla silin.

Belgeler yüklendikten sonra, sohbet modunda onlarla çalışabilirsiniz. Bunu yapmak için, sohbet satırına # sembolü ile başlayan bir mesaj gönderin ve açılan listede istediğiniz belge veya bilgi tabanı seçin. Sonrasında gelen yanıt istenen sorunun verildiği belgeye göre oluşturulur. Bu özellik, yüklenen bilgileri temel alan bağlamı içeren cevaplar almanızı sağlar ve müşteri hizmetleri, veri analizi ve belgeler temelinde karar verme gibi çeşitli görevler için faydalıdır:

Not

# sembolünü web siteleri veya YouTube videoları eklemek için kullanabilirsiniz. Bu sayede LLM, bunları da arama sonuçlarına dahil edebilir.

OpenWebUI ile RAG Çalışırken İpuçları

  • Gömülme Modeliyle yapılan her manipülasyon, vektör veritabanına belgeleri tekrar silmeyi ve yüklemeyi gerektirir. RAG parametreleri değiştirildiğinde bu gerekmez.
  • Belgeler eklerken veya kaldırırken, özel modeli (varsa) ve belge koleksiyonunu güncellediğinizden emin olun. Aksi takdirde, onlara arama yapmak düzgün çalışmayabilir.
  • OpenWebUI pdf, csv, rst, xml, md, epub, doc, docx, xls, xlsx, ppt, pptx, txt formatlarını tanımlar ancak metin dosyaları yüklenmesi önerilir.
  • Hibrit arama sonuçları iyileştirir ancak çok fazla kaynağa ihtiyaç duyar ve güçlü bir GPU bile yanıt süresini 20–40 saniyeye kadar çıkarabilir.

Chatbot Güncellemesi

Yeni modeller kullanılabilir hale geldiğinde veya AI chatbot'ının hatalarını düzeltmek ve işlevselliğini artırmak için, iki bileşenini güncellemeniz gerekir: Ollama ve Open WebUI.

Ollama'yı Güncelleme

  1. Ollama'yı güncellemek için SSH aracılığıyla root olarak sunucuya giriş yapın ve aşağıdaki komutu çalıştırın:
curl -fsSL https://ollama.com/install.sh | sh
  1. Bir tarayıcı açın ve API aracılığıyla Ollama'nın kullanılabilirliğini <sunucu IP>:11434 adresini girerek kontrol edin.

"Ollama çalışıyor" mesajını almalısınız.

  1. API'ye erişiminiz yoksa, /etc/systemd/system/ollama.service dosyasındaki [Service] bölümüne aşağıdaki satırları eklemeniz gerekebilir:

Environment="OLLAMA_HOST=0.0.0.0" 
Environment="OLLAMA_ORIGINS=*"
ve hizmeti aşağıdaki komutlarla yeniden başlatın:

systemctl daemon-reload
service ollama restart

Open WebUI'yi Güncelleme

Open WebUI'yi güncellemek için SSH aracılığıyla root olarak sunucuya giriş yapın ve aşağıdaki komutu çalıştırın:

docker run --rm --volume /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --run-once open-webui 

Watchtower güncellemesi işe yaramazsa aşağıdaki komutları çalıştırın:

docker stop open-webui
docker rm open-webui
docker run -d -p 8080:8080 --gpus all --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:cuda

Dikkat

Open WebUI'nin endpoint API dokümantasyonuna erişmek istiyorsanız, konteynerı ENV=dev ortam değişkeniyle çalıştırmanız gerekir:

docker run -p 8080:8080 --gpus all --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui -e ENV='dev' --restart always ghcr.io/open-webui/open-webui:cuda

Pratik Makaleler ve İpuçları

Daha fazla faydalı bilgi blog yazılarımızda bulabilirsiniz:

Ollama sunucusu API aracılığıyla sipariş verme

Bu yazılımı API kullanarak kurmak için bu talimatları takip edin