Kendi Sunucunuza Yerleştirebileceğiniz Yapay Zeka Sohbet Botu¶
Bu makalede
- Temel Özellikler
- Çalıştırma Özellikleri
- Başlarken AI Chatbot Dağıtıldıktan Sonra
- OpenWebUI Başlangıç Ekranı
- AçıkWebUI Çalışma Alanınızı Konfigüre Edin
- Model Eklenmesi ve Çıkartılması
- Bilgi Tabanına Belgeler Eklemek (RAG)
- OpenWebUI ile RAG Çalışırken İpuçları
- Chatbot Güncellemesi
- OpenWebUI'yi Yeniden Başlatma ve Ayarların Tamamen Sıfırlanması
- Pratik Makaleler ve İpuçları
- Ollama sunucusu API aracılığıyla sipariş verme
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
.
Başlarken AI Chatbot Dağıtıldıktan Sonra¶
Ödeme işlemi yapıldıktan sonra kayıtlı e-posta adresiniz üzerinden bir bildirim alacaksınız ve sunucunun çalışmaya hazır olduğunu öğreneceksiniz. Bildirimin içeriği, VPS'nin IP'sini de içerecek şekilde SSH ile bağlanmak için gerekli olan kullanıcı adı ve şifreyi kapsayacaktır. Şirketimizin müşterileri sunucu kontrol paneli ve API aracılığıyla ekipmanlarını yönetir — Invapi.
Dikkat
E-postanıza gönderilen şifre, SSH bağlantısı ve OS'de root
kullanıcısı olarak giriş yapmak için gereklidir ve bunlar chat-bot'un web arayüzüne uygulanmaz! Chat-bot'a ilk kez OpenWebUI üzerinden bağlandığınızda yönetici kullanıcı adı ve şifresini ayarlamanız gerekir.
Chat-bot'un web arayüzüne erişim linki: webpanel etiketinde bulunur. Sunucu teslim edildiğinde e-posta üzerinden gönderilen https://ollama<Server_ID_from_Invapi>.hostkey.in
şeklindeki tam bağlantı linkidir.
Aşağıdaki webpanel etiketinden gelen bağlantıya tıkladıktan sonra, Get started with Open WebUI oturum açma penceresi açılacaktır. Burada chatbotunuz için bir yönetici adı, e-posta adresi ve şifre oluşturmanız gerekecektir, ardından Create Admin Account düğmesine tıklayın:
Dikkat
İlk kullanıcı kayıt edildikten sonra sistem otomatik olarak yönetici rolüne atar. Güvenlik ve kayıt sürecine kontrol sağlamak için, tüm sonraki kayıt isteklerinin OpenWebUI'den yönetici hesabından onaylanması gerekir.
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:
-
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. -
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.
-
Pull "ollama run
" from Ollama.com dizesine tıklayın. -
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ünden modeller silmek için, web arayüzünde üst sağ köşedeki Kullanıcı simgesi >> Settings >> Admin Panel >> Models bölümüne gidin.
Sonra, model yönetimi penceresini açmak için Manage Models düğmesine tıklayın.
Burada, Delete a model açılır listesinden 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:
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 (Plus) 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 (Plus) 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:
- 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.
- 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.
- 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. - Engine - İçerik özütüleme motoru. Varsayılan değeri kullanın.
- 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.
- 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
ve100
'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.
- 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¶
- 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:
- 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.
- API'ye erişiminiz yoksa,
/etc/systemd/system/ollama.service
dosyasındaki[Service]
bölümüne aşağıdaki satırları eklemeniz gerekebilir:
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 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:
OpenWebUI'yi Yeniden Başlatma ve Ayarların Tamamen Sıfırlanması¶
OpenWebUI'de Yönetici Şifresinin Sıfırlanması¶
Öncelikle, yeni şifrenizin bcrypt hashini oluşturmanız gerekiyor. Aşağıdaki komutu yerel makinenizde çalıştırın ve your-new-password
kısmını istediğiniz şifreyle değiştirin:
Not
Çıktı, sonraki adımda doğru kullanılabilmesi için dikkatlice ele alınması gereken özel karakterler içeren bir bcrypt hash içerecektir. Hash'te bulunan her $
karakteri üç kez kaçış karakteriyle değiştirilmelidir (yani \\\\\\
ile).
Daha sonra Docker dağıtımınızdaki şifreyi güncelleyeceksiniz. Aşağıdaki komutta HASH'i önceki adımda oluşturulan bcrypt hash ile değiştirin ve her $
karakterini üç kez kaçış yapıp kullanın. [email protected]
kısmını da yönetici hesabınıza bağlı e-posta adresiyle değiştirin.
Dikkat
Aşağıdaki komut bazı durumlarda çalışmayabilir. Eğer çalışmazsa, OpenWebUI ayarlarının tamamen sıfırlanmasını 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 Tamamen Sıfırlanması¶
Ayarların tamamen sıfırlanması için OpenWebUI veritabanını silmeniz gerekecek. Bu işlemi gerçekleştirmek için SSH üzerinden sunucunuza root
olarak 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 tamamen yeniden başlatmanız gerekebilir:
Bu işlemler, veritabanının webui.db.bak
dosyasında yedeğini oluşturacaktır, ayarları sıfırlayacak ve OpenWebUI Docker konteynerini yeniden başlatacaktır.
Sonrasında web arayüzüne giriş yaparak yönetici hesabını ilk bağlantı gibi yapılandırın.
Ardından Ollama bağlantısını geri yüklemeniz gerekecek. OpenWebUi'ye yönetici olarak giriş yapın, ardından menü bölümünden Username >> Settings >> Admin Settings >> Connections seçeneğini seçin. Daha sonra :octicons-gear-16:
(Yapılandır) simgesine tıklayın.
Sonrasında şu ayarları değiştirin:
- Bağlantı Türü: Yerel
- URL: http://host.docker.internal:11434
ve Save butonuna basın.
Pratik Makaleler ve İpuçları¶
Daha fazla faydalı bilgi blog yazılarımızda bulabilirsiniz:
- OpenWebUI kullanarak müşteri hizmetleri chatbotu oluşturma rehberi
- AI ile çalışmak için OpenWebUI'yi nasıl iyileştirebilirsiniz
Ollama sunucusu API aracılığıyla sipariş verme¶
Bu yazılımı API kullanarak kurmak için bu talimatları takip edin
Bu sayfanın bazı içerikleri ya da yazıları AI tarafından oluşturulmuş veya çevrilmiş olabilir.