Ana içeriğe geç

Kendi Sunucunuzda Barındırılan AI Sohbet Botu

Bilgi

Kendi Sunucunuzda Barındırılan AI Sohbet Botu, birçok açık kaynak bileşeni birleştiren yerel bir çözümdür. Bu sistemin çekirdeği Ollama'dır; yerel hesaplama kaynaklarında büyük dil modellerini (LLM) başlatmak ve yönetmek için tasarlanmış bir mimari çerçeve. Seçilen LLM'lerin indirilmesini ve dağıtılmasını kolaylaştırır. Dağıtılan modelle sorunsuz etkileşim için Open Web UI, grafiksel bir arayüz kullanır; bu web uygulaması, kullanıcıların metinsel sorgular göndermesini ve dil modelleri tarafından oluşturulan yanıtları almasını sağlar. Bu bileşenlerin entegrasyonu, açık kaynak kod tabanlarına sahip son teknoloji dil modellerini dağıtmak için tamamen özerk, yerel bir çözüm doğururken veri bütünlüğü ve sistem performansı üzerinde tam kontrolü korur.

Temel Özellikler

  • Web Arayüzü: Open Web UI, Ollama deposundaki yerel AI dil modelleriyle kontrolü merkezileştiren ve etkileşim yeteneklerini genişleten sezgisuel bir web arayüzü sağlar, bu da farklı yetkinlik seviyelerindeki kullanıcılar için model kullanımını önemli ölçüde basitleştirir.
  • Sayısız Dil Modeliyle Entegrasyon: Ollama, ücretsiz dil modellerinin geniş bir yelpazesine erişim sağlar, böylece kullanımınıza gelişmiş doğal dil işleme (NLP) yetenekleri sunar. Ayrıca özelleştirilmiş modellerinizi entegre edebilirsiniz.
  • Görevler: Kullanıcılar, LLM'lerin yardımıyla sohbetlerde bulunabilir, sorulara cevaplar alabilir, veri setlerini analiz edebilir, çeviriler yapabilir ve kendi sohbet botlarını veya AI destekli uygulamalarını geliştirebilir.
  • Açık Kaynak Kodu: Ollama bir açık kaynak projesidir, kullanıcıların platformu belirli gereksinimlerine göre özelleştirmesine ve değiştirmesine olanak tanır.
  • Web Kazıyıcı ve İç Belge Araması (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 ana ayarları ve Open WebUI dokümantasyonu hakkında daha fazla bilgi için Ollama geliştirici dokümantasyonuna ve Open WebUI dokümantasyonuna başvurun.

Çalıştırma Özellikleri

ID Yazılım Adı Uyumlu OS VM BM VGPU GPU Min CPU (Çekirdekler) Min RAM (GB) Min HDD/SSD (GB) Özel Alan Adı Aktif
117 AI Chatbot Ubuntu 22.04 + + + + 4 16 - Hayır SİPARİŞ VER
  • İşletim sistemi ve sunucunun toplam kurulum süresi 15 ila 30 dakika arasında değişir.
  • Ollama Sunucusu, LLM'yi belleğe indirir ve başlatır, dağıtım süreçlerini basitleştirir.
  • Open WebUI, Ollama Sunucusuyla bağlantı kuran bir web uygulaması olarak çalışır.
  • Kullanıcılar, yanıtlar almak için sorgular göndererek Open WebUI'nin web arayüzü aracılığıyla LLaMA 3 ile etkileşime girer.
  • Tüm hesaplamalar ve veri işlemleri sunucuda yerel olarak yürütülür, bu da gizliliği ve bilgi akışı üzerindeki kontrolü sağlar. Sistem yöneticileri, OpenWebUI içinde sağlanan işlevler aracılığıyla LLM'yi özel görevler için özelleştirme esnekliğine sahiptir.
  • Sistem gereksinimleri, optimal performansı sağlamak için en az 16 GB RAM öngörür.

Kurulum sürecinin tamamlanmasının ardından, kullanıcıların sunucularına şu URL üzerinden erişmeleri gerekir: https://ollama<Server_ID_from_Invapi>.hostkey.in.

Not

Aksi belirtilmedikçe, varsayılan olarak geliştiricinin web sitesinden veya işletim sistemi depolarından yazılımın en son sürümünü kurarız.

AI Chatbot Dağıtımından Sonra Başlangıç

Siparişin ödenmesinin ardından, kayıtlı e-posta adresinize sunucunun çalışmaya hazır olduğuna dair bir bildirim alacaksınız. Bu bildirim, VPS'nin IP adresini ve sunucuya SSH üzerinden bağlanmak için giriş bilgilerini (kullanıcı adı ve şifre) içerecektir. Şirketimizin müşterileri ekipmanları sunucu kontrol paneli ve APIInvapi aracılığıyla yönetir.

Dikkat

E-postanıza gönderilen şifre, SSH bağlantısı ve root kullanıcısı olarak işletim sistemine giriş için gereklidir ve sohbet botunun web arayüzü için geçerli değildir! OpenWebUI'ye ilk bağlandığınızda sohbet botu için bir yönetici kullanıcısı ve şifre belirlemeniz gerekir.

Sohbet botunun web arayüzüne erişim bağlantısı: webpanel etiketinde. Sunucu teslim edildiğinde e-postada da https://ollama<Server_ID_from_Invapi>.hostkey.in biçiminde tam bağlantı gönderilir.

webpanel etiketindeki bağlantıya tıkladıktan sonra, sohbet botunuz için bir yönetici adı, e-posta adresi ve şifre oluşturmanız gereken Get started with Open WebUI giriş penceresi açılır, ardından Create Admin Account düğmesine tıklayın:

Dikkat

İlk kullanıcı kaydedildikten sonra, sistem otomatik olarak ona yönetici rolü atar. Güvenliği ve kayıt süreci üzerindeki kontrolü sağlamak için, sonraki tüm kayıt istekleri OpenWebUI'de yönetici hesabından onaylanmalıdır.

OpenWebUI Başlangıç Ekranı

Başlangıç ekranı, sistemin yeteneklerini göstermek için bir sohbet arayüzü ve birkaç örnek girdi istemi (sorgu) sunar. Sohbet botuyla etkileşimi başlatmak için kullanıcılar, mevcut seçeneklerden tercih ettikleri dil modelini seçmelidir. Bu durumda, çeşitli sorgulara yanıt oluşturma konusunda geniş bilgi ve yeteneklere sahip olan LLaMA 3 önerilir.

Bir model seçildikten sonra, kullanıcılar girdi alanına ilk sorgularını girebilir ve sistem, girilen metnin analizine dayanarak bir yanıt oluşturur. Başlangıç ekranında sunulan örnek istemler, sohbet botunun başa çıkabileceği konuların ve görevlerin çeşitliliğini sergiler, kullanıcıların yetenekleriyle kendilerini yönlendirmelerine yardımcı olur.

OpenWebUI Çalışma Alanınızı Yapılandırma

Sohbet deneyiminizi daha da özelleştirmek için Workspace bölümüne gidin. Burada özelleştirme için birkaç seçenek bulacaksınız:

  • Models - Bu bölüm, mevcut modelleri belirli ihtiyaçlarınıza göre ince ayamanıza olanak tanır. Sistem istemlerini, parametreleri ayarlayabilir, belgeleri veya bilgi tabanlarını bağlayabilir, araçları, filtreleri veya eylemleri tanımlayabilirsiniz.
  • Knowledge - Bu bölüm, belgeleriniz temelinde bilgi tabanını (RAG) yapılandırır.
  • Prompts - Sohbet botuyla daha etkili etkileşim için kendi istemlerinizi (girdi taleplerinizi) bu bölümde oluşturun, düzenleyin ve yönetin.
  • Tools - Talep sırasında LLM'ye sağlanan özel Python betiklerini buradan bağlayın. Araçlar, LLM'nin eylemler gerçekleştirmesine ve sonuç olarak ek bağlam elde etmesine olanak tanır. Hazır topluluk araçları web sitesinde görüntülenebilir.
  • Functions - Kullanıcıların belirli mantığı veya eylemleri iş akışlarına doğrudan gömerek AI'nın yeteneklerini genişletmesine izin veren modüler işlemleri buradan bağlayın. Dış yardımcı programlar olarak çalışan araçların aksine, işlevler OpenWebUI ortamı içinde çalışır ve veri işleme, görselleştirme ve etkileşimli iletişim gibi görevleri yönetir. Hazır işlev örnekleri web sitesinde görüntülenebilir.

Modelleri Ekleme ve Kaldırma

Ollama, yalnızca varsayılan olan değil, geniş bir yelpazede dil modellerini kurma ve kullanma imkanı sunar. Yeni modelleri kurmadan önce, sunucu yapılandırmanızın seçilen modelin bellek kullanımı ve hesaplama kaynakları konusundaki gereksinimlerini karşıladığından emin olun.

OpenWebUI Arayüzü Üzerinden Model Kurulumu

OpenWebUI arayüzü üzerinden modelleri kurmak için şu adımları izleyin:

  1. İstediğiniz modeli Ollama kütüphanesinden seçin ve adına tıklayarak sayfasına gidin. Modelin türünü ve boyutunu seçin (gerekirse). En uygun "boyut" varsayılan olarak sunulacaktır. Ardından, ollama run <model_name> gibi bir komutun solundaki iki kare simgesine tıklayarak kurulum satırını panonuza kopyalayın.

  2. OpenWebUI sohbet botu penceresinin sol üst 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 satırına tıklayın.

  4. Başarılı bir indirme ve kurulumdan sonra, model açılır listede görünecek ve seçim için kullanılabilir hale gelecektir.

Komut Satırı Üzerinden Model Kurulumu

Yeni modelleri kurmak için sunucunuza SSH kullanarak bağlanmanız ve bu makalede açıklandığı gibi ilgili komutu çalıştırmanız gerekir.

Bir Modeli Kaldırma

OpenWebUI arayüzünden modelleri silmek için web arayüzü ayarlarına gidin: Sağ üst köşedeki Kullanıcı simgesi >> Settings >> Admin Panel >> Models.

Ardından, model yönetim penceresini açmak için Manage Models düğmesine tıklayın.

Burada, Delete a model açılır listesinden silinecek modeli seçin ve yanındaki simgesine tıklayın:

Komut satırını kullanarak ( root olarak) bir modeli kaldırmak için:

ollama rm <model_name>

Bilgi Tabanına (RAG) Belgeler Ekleme

Knowledge seçeneği, bilgi tabanları (RAG) oluşturma ve PDF, metin dosyaları, Word belgeleri, PowerPoint sunumları ve diğerleri gibi çeşitli formatlarda belgeleri yükleme imkanı sunar. Bu belgeler daha sonra analiz edilir ve sohbet botuyla tartışılabilir. Bu, karmaşık belgeleri incelemek ve anlamak, sunumlar veya toplantılar için hazırlanmak, verileri ve raporları analiz etmek, yazılı çalışmaları dilbilgisi hataları, stil ve mantık açısından kontrol etmek, yasal ve finansal belgelerle çalışmak ve çeşitli alanlarda araştırma yapmak için özellikle yardımcıdır. Sohbet botu, belge içeriğini anlamanıza, özetlemenize, ana noktaları vurgulamanıza, soruları yanıtlamanıza, ek bilgi sağlamaya ve öneriler sunmaya 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 sağ üst köşedeki (Artı) simgesine tıklayın. Bilgi tabanının adı ve içeriği hakkında bilgileri doldurun ve Create Knowledge düğmesiyle oluşturun.

Bilgi tabanı bölümünün içinde, solda bilgi tabanına yüklenen dosyaların listesi, sağda ise içerikleri veya dosyaları yüklemek için sürükleyip bırakabileceğiniz alan yer alır.

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

  • Bilgi tabanına dosya yükleme (Upload files)
  • Tüm bir dosya dizinini yükleme (Upload directory)
  • Bilgi tabanı ve dizin arasında dosyaları ve içeriklerini senkronize etme (Sync directory). Bu seçenek, bilgi tabanını güncellemenize olanak tanır.
  • Open WebUI'nin yerleşik düzenleyicisi aracılığıyla bilgi tabanına içerik ekleme (Add text content)

Bilgi tabanından herhangi bir dosyayı seçerek ve ortaya çıkan çarpı işaretine tıklayarak silebilirsiniz.

Dikkat

Seçilen modele ve sunucudaki GPU gücüne bağlı olarak, belge ayarlarında gömme (embedding) oluşturma işlemi onlarca saniyeden onlarca dakikaya kadar sürebilir.

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

Burada şunları yapılandırabilirsiniz:

  1. Embedding Model Engine - Gömme oluşturmak için motor. Varsayılan olarak SentenceTransformers kullanılır, ancak bu amaçla Ollama'dan gömme modelleri yükleyip kullanabilirsiniz.
  2. Hybrid Search - Hibrit arama. Etkinleştirildiğinde, bilgi tabanları ve belgeler için arama kalitesi artacak, ancak çalışma hızı önemli ölçüde azalabilir.
  3. Embedding Models - Gömme için model. Bu alanı geliştirilmiş sentence-transformers/all-MiniLM-L12-v2 modeline ayarlamanızı ve sağındaki yükleme düğmesine tıklamanızı öneririz.
  4. Engine - İçerik çıkarıcı motor. Varsayılan değeri kullanın.
  5. Query Params: Bu bölüm, yüklenen belgelere yapılan sorguları ve sohbet botunun yanıtları oluşturma şeklini etkileyen parametreleri yapılandırır.
    • Top K - Bu ayar, görüntülenecek en iyi arama sonuçlarının sayısını belirler. Örneğin, Top K = 5 olarak ayarlanırsa, yanıtta en alakalı 5 belge veya metin parçası gösterilecektir.
    • RAG Template - RAG (Retrieval Augmented Generation), sistemin önce bir belge kümesinden ilgili metin kısımlarını çıkardığı ve ardından bir dil modeli yardımıyla bir yanıt oluşturmak için bunları kullandığı bir yöntemdir. RAG Şablonu, bu yöntem kullanılırken dil modeline yapılan talebi oluşturma şablonunu ayarlar. RAG Şablonunu yapılandırma yeteneği, belirli kullanım senaryolarında daha yüksek kaliteli yanıtlar almak için sorgu formatını dil modeline uyarlamanıza olanak tanır.
  6. Chunk Params - Bu bölüm, yüklenen belgelerin bölünmesi (parçalara ayrılması) için parametreleri yapılandırmanıza olanak tanır. Parçalama, büyük belgelerin daha kolay işlenmesi için daha küçük parçalara bölünmesidir. Burada, maksimum parça boyutunu karakter cinsinden: Chunk Size ve parçaların örtüşebileceği karakter sayısını: Chunk Overlap ayarlayabilirsiniz. Önerilen değerler sırasıyla 1500 ve 100'dür.

    Bu bölümde, PDF Görüntüleri Çıkar (OCR) seçeneğini de etkinleştirebilirsiniz - bu, görüntülerdeki metni tanıma teknolojisidir. Etkinleştirildiğinde, sistem PDF dosyalarından görüntüleri çıkaracak ve bu görüntülerde bulunan herhangi bir metni tanımak için OCR uygulayacaktır.

  7. Files - Burada, yüklenen bir dosyanın maksimum boyutunu ve toplam sayısını ayarlayabilirsiniz.

Aşağıda bulunan Reset Upload Directory ve Reset Vector Storage/Knowledge düğmeleri, yüklenen belge dosyalarının dizinini temizler ve kaydedilen vektör depolama/bilgi tabanını (tümünü) sıfırlar. Bunları yalnızca kesinlikle gerekli olduğunda kullanın ve dosyaları ve bilgi tabanlarını Workspace üzerinden silin.

Belgeleri yükledikten sonra, onlarla sohbet modunda çalışabilirsiniz. Bunu yapmak için, sohbet satırında bir mesajı # sembolüyle başlatın ve açılır listeden istediğiniz belgeyi veya bilgi tabanını seçin. Ardından, talebe yönelik yanıt, seçilen belgedeki verilere dayanarak oluşturulacaktır. Bu özellik, yüklenen bilgilere dayalı bağlamsal yanıtlar almanıza olanak tanır ve bilgi arama, veri analizi ve belgelere dayalı karar verme gibi çeşitli görevler için faydalı olabilir:

Not

Sorgunuza web siteleri veya YouTube videoları eklemek için # sembolünü kullanabilir, böylece LLM onları da arayabilir.

OpenWebUI'de RAG ile Çalışma İpuçları

  • Gömme Modeli ile yapılan herhangi bir müdahale, belgelerin vektör veritabanına tekrar silinip yüklenmesini gerektirecektir. RAG parametrelerini değiştirmek bunun gerektirmez.
  • Belgeler eklerken veya çıkarırken, özel modeli (varsa) ve belge koleksiyonunu güncellediğinizden emin olun. Aksi takdirde, onları arama düzgün çalışmayabilir.
  • OpenWebUI, pdf, csv, rst, xml, md, epub, doc, docx, xls, xlsx, ppt, pptx, txt formatlarını tanır, ancak belgelerin düz metin olarak yüklenmesi önerilir.
  • Hibrit arama kullanımı sonuçları iyileştirir ancak birçok kaynak tüketir ve yanıt süresi güçlü bir GPU'da bile 20-40 saniye sürebilir.

Sohbet Botu Güncellemesi

Yeni modeller mevcut olduğunda veya AI sohbet botunun hatalarını düzeltmek ve işlevselliğini artırmak için, iki bileşenini - Ollama ve Open WebUI'yi - güncellemeniz gerekir.

Ollama'yı Güncelleme

  1. Ollama'yı güncellemek için root olarak sunucuya SSH ile 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 <server IP>:11434 adresini girerek Ollama'nın API üzerinden erişilebilirliğini kontrol edin.

Ollama is running mesajını almalısınız.

  1. API'ye erişiminiz yoksa, /etc/systemd/system/ollama.service hizmet 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
Ayrıca, OpenWebUI'yi yeniden başlatmanız gerekebilir

```bash
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 -e ENV='dev' --restart always ghcr.io/open-webui/open-webui:cuda
```

Open WebUI'yi Güncelleme

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

docker run --rm --gpus all --volume /var/run/docker.sock:/var/run/docker.sock nickfedor/watchtower --run-once open-webui

Watchtower üzerinden güncelleme çalışmazsa, aşağıdaki komutları çalıştırın:

#!/bin/bash
docker stop open-webui
docker rm open-webui
docker pull ghcr.io/open-webui/open-webui:main
docker run -d -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
docker restart open-webui

Dikkat

Open WebUI'nin endpoint için yerleşik API dokümantasyonuna erişmek istiyorsanız, konteyneri ENV=dev ortam değişkeni ayarlı olarak çalıştırmanız gerekir:

docker run -d -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

OpenWebUI'de Yönetici Şifresini Sıfırlama ve Ayarların Tam Sıfırlanması

OpenWebUI'de Yönetici Şifresini Sıfırlama

Öncelikle, yeni şifrenizin bcrypt hash'ini oluşturmanız gerekir. Yerel makinenizde aşağıdaki komutu çalıştırın, your-new-password yerine kullanmak istediğiniz şifreyi yazın:

htpasswd -bnBC 10 "" your-new-password | tr -d ':\n'

Not

Çıktı, dikkatle ele alınması gereken özel karakterler içeren bir bcrypt hash'i içerecektir. Hash'teki herhangi bir $ karakteri, bir sonraki adımda doğru şekilde kullanılmak üzere üç kez kaçış karakteriyle ( \\\ ile değiştirilerek) korunmalıdır.

Ardından, Docker dağıtımınızdaki şifreyi güncelleyeceksiniz. Aşağıdaki komuttaki HASH'i, daha önce oluşturulan bcrypt hash'iyle değiştirin, herhangi bir $ karakterini üç kez kaçış karakteriyle koruduğunuzdan emin olun. Ayrıca, [email protected]'u yönetici hesabınızla ilişkili e-posta adresiyle değiştirin.

Dikkat

Aşağıdaki komut bazı durumlarda çalışmayabilir. Çalışmazsa, OpenWebUI ayarlarını tamamen sıfırlamayı deneyin.

docker run --rm -v open-webui:/data alpine/socat EXEC:"bash -c 'apk add sqlite && echo UPDATE auth SET password='\''HASH'\'' WHERE email='\''[email protected]'\''; | sqlite3 /data/webui.db'", STDIO

OpenWebUI'de Ayarların Tam Sıfırlanması

Ayarların tam sıfırlanmasını gerçekleştirmek için OpenWebUI veritabanını silmeniz gerekir. Bunu yapmak için root olarak sunucunuza SSH ile giriş yapın ve aşağıdaki komutları çalıştırın:

cp /var/lib/docker/volumes/open-webui/_data/webui.db /var/lib/docker/volumes/open-webui/_data/webui.db.bak
rm /var/lib/docker/volumes/open-webui/_data/webui.db
docker restart open-webui

Not

OpenWebUI'yi aşağıdaki komutlarla tamamen yeniden başlatmanız gerekebilir:

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 -e ENV='dev' --restart always ghcr.io/open-webui/open-webui:cuda

Bu, veritabanının webui.db.bak dosyasında bir yedeğini oluşturacak, ayarları sıfırlayacak ve OpenWebUI Docker konteynerini yeniden başlatacaktır.

Ardından, web arayüzüne giriş yapın ve yönetici hesabını ilk bağlantınızmış gibi ayarlayın.

Sonraki adım olarak, Ollama'ya bağlantıyı geri yüklemeniz gerekir. Bunu yapmak için OpenWebUi'de yönetici olarak giriş yapın, ardından menü bölümünden Settings >> Admin Settings >> Connections'ı seçin. Ardından (Yapılandır) simgesine tıklayın

Sonra şunları değiştirin:

ve Save düğmesine basın

Pratik Makaleler ve İpuçları

Blog makalelerimizde daha fazla faydalı bilgi bulabilirsiniz:

Video eğitim

API Aracılığıyla AI Chatbot ile Bir Sunucu Siparişi

Bu yazılımı API kullanarak kurmak için bu talimatları izleyin.