{"id":15132,"date":"2024-03-31T18:25:36","date_gmt":"2024-03-31T14:55:36","guid":{"rendered":"https:\/\/www.itpiran.net\/blog\/?p=15132"},"modified":"2024-03-31T19:25:29","modified_gmt":"2024-03-31T15:55:29","slug":"fullstack-llm-langchain-chatbot-on-aws","status":"publish","type":"post","link":"https:\/\/www.itpiran.net\/blog\/tr\/amazon\/fullstack-llm-langchain-chatbot-on-aws\/","title":{"rendered":"Yap\u0131land\u0131r\u0131lmam\u0131\u015f belgelerden bilgi \u00e7\u0131kararak g\u00fc\u00e7l\u00fc bir tam y\u0131\u011f\u0131n sohbet robotu olu\u015fturma"},"content":{"rendered":"<h2 id=\"%d9%85%d9%82%d8%af%d9%85%d9%87\">girii\u015f<\/h2>\n<p>Yap\u0131land\u0131r\u0131lmam\u0131\u015f verilerinizle sohbet edebildi\u011finizi ve de\u011ferli bilgileri kolayca \u00e7\u0131karabildi\u011finizi hayal edin. G\u00fcn\u00fcm\u00fcz\u00fcn veri odakl\u0131 ortam\u0131nda, yap\u0131land\u0131r\u0131lmam\u0131\u015f belgelerden anlaml\u0131 bilgiler \u00e7\u0131karmak, karar alma ve inovasyonu engelleyen bir zorluk olmaya devam ediyor. Bu e\u011fitimde, yerle\u015ftirmeleri tan\u0131yacak, Amazon Open Search&#039;\u00fc bir vekt\u00f6r veritaban\u0131 olarak kullanmay\u0131 ke\u015ffedecek ve Langchain \u00e7er\u00e7evesini B\u00fcy\u00fck Dil Modelleri (LLM&#039;ler) ile entegre ederek g\u00f6m\u00fcl\u00fc bir NLP sohbet robotuna sahip bir web sitesi olu\u015fturaca\u011f\u0131z. A\u00e7\u0131k kaynakl\u0131 bir B\u00fcy\u00fck Dil Modeli yard\u0131m\u0131yla yap\u0131land\u0131r\u0131lmam\u0131\u015f bir belgeden anlaml\u0131 bilgiler \u00e7\u0131karmak i\u00e7in LLM&#039;lerin temellerini ele alaca\u011f\u0131z. Bu e\u011fitimin sonunda, yap\u0131land\u0131r\u0131lmam\u0131\u015f belgelerden anlaml\u0131 bilgiler elde etme konusunda kapsaml\u0131 bir anlay\u0131\u015fa sahip olacak ve benzer Tam Y\u0131\u011f\u0131n Yapay Zeka tabanl\u0131 \u00e7\u00f6z\u00fcmlerle ke\u015fif ve inovasyon yapma becerilerini kullanacaks\u0131n\u0131z.<\/p>\n<h5 id=\"%d9%be%db%8c%d8%b4-%d9%86%db%8c%d8%a7%d8%b2%d9%87%d8%a7\">\u00d6n ko\u015fullar<\/h5>\n<ul>\n<li>Etkin bir AWS hesab\u0131n\u0131z olmal\u0131d\u0131r. Hesab\u0131n\u0131z yoksa, AWS web sitesinden kaydolabilirsiniz.<\/li>\n<li>Yerel makinenize AWS Komut Sat\u0131r\u0131 Aray\u00fcz\u00fc&#039;n\u00fc (CLI) y\u00fckledi\u011finizden ve gerekli kimlik bilgileri ve varsay\u0131lan b\u00f6lgeyle d\u00fczg\u00fcn bir \u015fekilde yap\u0131land\u0131r\u0131ld\u0131\u011f\u0131ndan emin olun. Bunu aws configure komutunu kullanarak yap\u0131land\u0131rabilirsiniz.<\/li>\n<li>Docker Engine&#039;i indirip y\u00fckleyin. \u0130\u015fletim sisteminize \u00f6zel kurulum talimatlar\u0131n\u0131 izleyin.<\/li>\n<\/ul>\n<h2 id=\"%d9%82%d8%b1%d8%a7%d8%b1-%d8%a7%d8%b3%d8%aa-%da%86%d9%87-%da%86%db%8c%d8%b2%db%8c-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d9%85%d8%9f\">Ne in\u015fa edece\u011fiz?<\/h2>\n<p>Bu \u00f6rnekte, bir\u00e7ok \u015firketin kar\u015f\u0131la\u015ft\u0131\u011f\u0131 bir sorunu taklit etmek istiyoruz. G\u00fcn\u00fcm\u00fcz verilerinin \u00e7o\u011fu yap\u0131land\u0131r\u0131lmam\u0131\u015f, daha ziyade yap\u0131land\u0131r\u0131lmam\u0131\u015f olup ses ve video transkriptleri, PDF ve Word belgeleri, k\u0131lavuzlar, taranm\u0131\u015f notlar, sosyal medya transkriptleri vb. \u015feklinde gelir. LLM olarak Flan-T5 XXL modelini kullanaca\u011f\u0131z. Bu model, yap\u0131land\u0131r\u0131lmam\u0131\u015f metinlerden \u00f6zetler ve soru-cevaplar \u00fcretebilir. A\u015fa\u011f\u0131daki g\u00f6rsel, farkl\u0131 yap\u0131 ta\u015flar\u0131n\u0131n mimarisini g\u00f6stermektedir.<\/p>\n<h2 id=\"%d8%a8%db%8c%d8%a7%db%8c%db%8c%d8%af-%d8%a8%d8%a7-%d8%a7%d8%b5%d9%88%d9%84-%d8%b4%d8%b1%d9%88%d8%b9-%da%a9%d9%86%db%8c%d9%85\"><img  loading=\"lazy\"  decoding=\"async\"  src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEUAAP+KeNJXAAAAAXRSTlMAQObYZgAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAApJREFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=\"  alt=\"\"  width=\"750\"  height=\"482\"  class=\"aligncenter wp-image-15133 size-full pk-lazyload\"  data-pk-sizes=\"auto\"  data-ls-sizes=\"auto, (max-width: 750px) 100vw, 750px\"  data-pk-src=\"https:\/\/cdn.itpiran.net\/2024\/03\/31141557\/1-1.webp\"  data-pk-srcset=\"https:\/\/cdn.itpiran.net\/2024\/03\/31141557\/1-1.webp 750w, https:\/\/cdn.itpiran.net\/2024\/03\/31141557\/1-1-300x193.webp 300w, https:\/\/cdn.itpiran.net\/2024\/03\/31141557\/1-1-110x71.webp 110w, https:\/\/cdn.itpiran.net\/2024\/03\/31141557\/1-1-200x129.webp 200w, https:\/\/cdn.itpiran.net\/2024\/03\/31141557\/1-1-380x244.webp 380w, https:\/\/cdn.itpiran.net\/2024\/03\/31141557\/1-1-255x164.webp 255w, https:\/\/cdn.itpiran.net\/2024\/03\/31141557\/1-1-550x353.webp 550w\" ><br \/>\nTemellerden ba\u015flayal\u0131m.<\/h2>\n<p>LLM program\u0131m\u0131za alan veya vakaya \u00f6zg\u00fc &quot;Ba\u011flam&quot; eklemek i\u00e7in ba\u011flam i\u00e7i \u00f6\u011frenme ad\u0131 verilen bir teknik kullanaca\u011f\u0131z. Bu \u00f6rnekte, LLM program\u0131m\u0131z i\u00e7in &quot;Ba\u011flam&quot; olarak eklemek istedi\u011fimiz yap\u0131land\u0131r\u0131lmam\u0131\u015f bir PDF araba k\u0131lavuzumuz var ve LLM&#039;nin bu k\u0131lavuzla ilgili sorular\u0131 yan\u0131tlamas\u0131n\u0131 istiyoruz. \u0130\u015fte bu kadar basit! Amac\u0131m\u0131z, sorular\u0131 al\u0131p arka u\u00e7 sistemimize g\u00f6nderen ve web sitesine yerle\u015ftirilmi\u015f a\u00e7\u0131k kaynakl\u0131 bir sohbet robotu arac\u0131l\u0131\u011f\u0131yla eri\u015filebilen ger\u00e7ek zamanl\u0131 bir API olu\u015fturarak bunu bir ad\u0131m \u00f6teye ta\u015f\u0131mak. Bu e\u011fitim, kullan\u0131c\u0131 deneyimini ba\u015ftan sona olu\u015fturmam\u0131z\u0131 ve s\u00fcre\u00e7 boyunca \u00e7e\u015fitli kavram ve ara\u00e7lar hakk\u0131nda bilgi edinmemizi sa\u011flayacak.<\/p>\n<ol>\n<li>Metin i\u00e7i \u00f6\u011frenmeyi sa\u011flaman\u0131n ilk ad\u0131m\u0131, PDF belgesini al\u0131p metin par\u00e7alar\u0131na d\u00f6n\u00fc\u015ft\u00fcrmek, bu metin par\u00e7alar\u0131n\u0131n &quot;g\u00f6mme&quot; ad\u0131 verilen vekt\u00f6r g\u00f6sterimlerini olu\u015fturmak ve son olarak bu g\u00f6mmeleri bir vekt\u00f6r veritaban\u0131nda depolamakt\u0131r.<\/li>\n<li>Vekt\u00f6r veritabanlar\u0131, depolad\u0131klar\u0131 metin g\u00f6mmelerine kar\u015f\u0131 \u00abbenzerlik aramalar\u0131\u00bb yapmam\u0131z\u0131 sa\u011flar.<\/li>\n<li>Amazon SageMaker JumpStart, a\u00e7\u0131k kaynakl\u0131, \u00f6nceden e\u011fitilmi\u015f modeller i\u00e7in altyap\u0131 kurmak \u00fczere tek t\u0131klamayla da\u011f\u0131t\u0131m \u00e7\u00f6z\u00fcm\u00fc \u015fablonlar\u0131 sunar. G\u00f6mme modelini ve B\u00fcy\u00fck Dil modelini da\u011f\u0131tmak i\u00e7in Amazon SageMaker JumpStart&#039;\u0131 kullanaca\u011f\u0131z.<\/li>\n<li>Amazon OpenSearch, vekt\u00f6r uzay\u0131ndaki noktalar\u0131n en yak\u0131n kom\u015fular\u0131n\u0131 arayabilen bir arama ve analiz motorudur ve bu \u00f6zelli\u011fi sayesinde vekt\u00f6r veritaban\u0131 olarak kullan\u0131lmaya uygundur.<\/li>\n<\/ol>\n<h2 id=\"%d9%86%d9%85%d9%88%d8%af%d8%a7%d8%b1-%d8%aa%d8%a8%d8%af%db%8c%d9%84-%d8%a7%d8%b2-pdf-%d8%a8%d9%87-%d8%ac%d8%a7%d8%b3%d8%a7%d8%b2%db%8c-%d8%af%d8%b1-%d9%be%d8%a7%db%8c%da%af%d8%a7%d9%87-%d8%af%d8%a7\">Grafik: PDF&#039;den vekt\u00f6r veritaban\u0131na yerle\u015ftirmeye d\u00f6n\u00fc\u015ft\u00fcr\u00fcn<\/h2>\n<h2 id=\"%d9%85%d8%b1%d8%ad%d9%84%d9%87-1-%d8%a7%d8%b3%d8%aa%d9%82%d8%b1%d8%a7%d8%b1-%d9%85%d8%af%d9%84-%d8%ac%d8%a7%d8%b3%d8%a7%d8%b2%db%8c-gpt-j-6b-fp16-%d8%a8%d8%a7-amazon-sagemaker-jumpst\"><img  loading=\"lazy\"  decoding=\"async\"  src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEUAAP+KeNJXAAAAAXRSTlMAQObYZgAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAApJREFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=\"  alt=\"\"  width=\"750\"  height=\"418\"  class=\"aligncenter wp-image-15134 size-full pk-lazyload\"  data-pk-sizes=\"auto\"  data-ls-sizes=\"auto, (max-width: 750px) 100vw, 750px\"  data-pk-src=\"https:\/\/cdn.itpiran.net\/2024\/03\/31151937\/2-1.webp\"  data-pk-srcset=\"https:\/\/cdn.itpiran.net\/2024\/03\/31151937\/2-1.webp 750w, https:\/\/cdn.itpiran.net\/2024\/03\/31151937\/2-1-300x167.webp 300w, https:\/\/cdn.itpiran.net\/2024\/03\/31151937\/2-1-110x61.webp 110w, https:\/\/cdn.itpiran.net\/2024\/03\/31151937\/2-1-200x111.webp 200w, https:\/\/cdn.itpiran.net\/2024\/03\/31151937\/2-1-380x212.webp 380w, https:\/\/cdn.itpiran.net\/2024\/03\/31151937\/2-1-255x142.webp 255w, https:\/\/cdn.itpiran.net\/2024\/03\/31151937\/2-1-550x307.webp 550w\" ><br \/>\nAd\u0131m 1 - GPT-J 6B FP16 Yerle\u015ftirme Modelini Amazon SageMaker JumpStart ile Da\u011f\u0131t\u0131n<\/h2>\n<p>Amazon SageMaker Belgeleri&#039;nde belirtilen ad\u0131mlar\u0131 izleyin: Amazon SageMaker Studio&#039;nun ana men\u00fcs\u00fcnden bir Amazon SageMaker JumpStart d\u00fc\u011f\u00fcm\u00fc ba\u015flatmak i\u00e7in JumpStart b\u00f6l\u00fcm\u00fcn\u00fc a\u00e7\u0131n ve kullan\u0131n. A\u015fa\u011f\u0131daki g\u00f6rselde g\u00f6sterildi\u011fi gibi &quot;Modeller, not defterleri, \u00e7\u00f6z\u00fcmler&quot;i se\u00e7in ve GPT-J 6B Embedding FP16 yerle\u015ftirme modelini se\u00e7in. Ard\u0131ndan &quot;Da\u011f\u0131t&quot;a t\u0131klay\u0131n; Amazon SageMaker JumpStart, bu \u00f6nceden e\u011fitilmi\u015f modeli SageMaker ortam\u0131na da\u011f\u0131tmak i\u00e7in altyap\u0131y\u0131 kuracakt\u0131r.<\/p>\n<h2 id=\"%d9%85%d8%b1%d8%ad%d9%84%d9%87-2-%d8%a7%d8%b3%d8%aa%d9%82%d8%b1%d8%a7%d8%b1-flan-t5-xxl-llm-%d8%a8%d8%a7-amazon-sagemaker-jumpstart\"><img  loading=\"lazy\"  decoding=\"async\"  src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEUAAP+KeNJXAAAAAXRSTlMAQObYZgAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAApJREFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=\"  alt=\"\"  width=\"750\"  height=\"423\"  class=\"aligncenter wp-image-15135 size-full pk-lazyload\"  data-pk-sizes=\"auto\"  data-ls-sizes=\"auto, (max-width: 750px) 100vw, 750px\"  data-pk-src=\"https:\/\/cdn.itpiran.net\/2024\/03\/31152132\/3-1.webp\"  data-pk-srcset=\"https:\/\/cdn.itpiran.net\/2024\/03\/31152132\/3-1.webp 750w, https:\/\/cdn.itpiran.net\/2024\/03\/31152132\/3-1-300x169.webp 300w, https:\/\/cdn.itpiran.net\/2024\/03\/31152132\/3-1-110x62.webp 110w, https:\/\/cdn.itpiran.net\/2024\/03\/31152132\/3-1-200x113.webp 200w, https:\/\/cdn.itpiran.net\/2024\/03\/31152132\/3-1-380x214.webp 380w, https:\/\/cdn.itpiran.net\/2024\/03\/31152132\/3-1-255x144.webp 255w, https:\/\/cdn.itpiran.net\/2024\/03\/31152132\/3-1-550x310.webp 550w\" ><br \/>\n<img  loading=\"lazy\"  decoding=\"async\"  src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEUAAP+KeNJXAAAAAXRSTlMAQObYZgAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAApJREFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=\"  alt=\"\"  width=\"750\"  height=\"423\"  class=\"aligncenter wp-image-15136 size-full pk-lazyload\"  data-pk-sizes=\"auto\"  data-ls-sizes=\"auto, (max-width: 750px) 100vw, 750px\"  data-pk-src=\"https:\/\/cdn.itpiran.net\/2024\/03\/31152206\/4-1.webp\"  data-pk-srcset=\"https:\/\/cdn.itpiran.net\/2024\/03\/31152206\/4-1.webp 750w, https:\/\/cdn.itpiran.net\/2024\/03\/31152206\/4-1-300x169.webp 300w, https:\/\/cdn.itpiran.net\/2024\/03\/31152206\/4-1-110x62.webp 110w, https:\/\/cdn.itpiran.net\/2024\/03\/31152206\/4-1-200x113.webp 200w, https:\/\/cdn.itpiran.net\/2024\/03\/31152206\/4-1-380x214.webp 380w, https:\/\/cdn.itpiran.net\/2024\/03\/31152206\/4-1-255x144.webp 255w, https:\/\/cdn.itpiran.net\/2024\/03\/31152206\/4-1-550x310.webp 550w\" ><br \/>\nAd\u0131m 2 - Flan T5 XXL LLM&#039;yi Amazon SageMaker JumpStart ile Da\u011f\u0131t\u0131n<\/h2>\n<p>Ard\u0131ndan, Amazon SageMaker JumpStart&#039;ta Flan-T5 XXL LLM&#039;yi se\u00e7in ve ard\u0131ndan otomatik altyap\u0131 kurulumunu ba\u015flatmak ve model u\u00e7 noktas\u0131n\u0131 Amazon SageMaker ortam\u0131na da\u011f\u0131tmak i\u00e7in &#039;Da\u011f\u0131t&#039;a t\u0131klay\u0131n.<\/p>\n<h2 id=\"%d9%85%d8%b1%d8%ad%d9%84%d9%87-3-%d9%88%d8%b6%d8%b9%db%8c%d8%aa-%d9%86%d9%82%d8%a7%d8%b7-%d9%be%d8%a7%db%8c%d8%a7%d9%86%db%8c-%d9%85%d8%af%d9%84-%d9%85%d8%b3%d8%aa%d9%82%d8%b1-%d8%b4\"><img  loading=\"lazy\"  decoding=\"async\"  src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEUAAP+KeNJXAAAAAXRSTlMAQObYZgAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAApJREFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=\"  alt=\"\"  width=\"750\"  height=\"424\"  class=\"aligncenter wp-image-15137 size-full pk-lazyload\"  data-pk-sizes=\"auto\"  data-ls-sizes=\"auto, (max-width: 750px) 100vw, 750px\"  data-pk-src=\"https:\/\/cdn.itpiran.net\/2024\/03\/31152316\/5-1.webp\"  data-pk-srcset=\"https:\/\/cdn.itpiran.net\/2024\/03\/31152316\/5-1.webp 750w, https:\/\/cdn.itpiran.net\/2024\/03\/31152316\/5-1-300x170.webp 300w, https:\/\/cdn.itpiran.net\/2024\/03\/31152316\/5-1-110x62.webp 110w, https:\/\/cdn.itpiran.net\/2024\/03\/31152316\/5-1-200x113.webp 200w, https:\/\/cdn.itpiran.net\/2024\/03\/31152316\/5-1-380x215.webp 380w, https:\/\/cdn.itpiran.net\/2024\/03\/31152316\/5-1-255x144.webp 255w, https:\/\/cdn.itpiran.net\/2024\/03\/31152316\/5-1-550x311.webp 550w\" ><br \/>\nAd\u0131m 3 - Da\u011f\u0131t\u0131lan model u\u00e7 noktalar\u0131n\u0131n durumunu kontrol edin<\/h2>\n<p>1. ve 2. Ad\u0131m&#039;da da\u011f\u0131t\u0131lan model u\u00e7 noktalar\u0131n\u0131n durumunu Amazon SageMaker konsolunda kontrol ediyor ve kodumuzda kullanaca\u011f\u0131m\u0131z u\u00e7 nokta adlar\u0131n\u0131 not ediyoruz. Model u\u00e7 noktalar\u0131n\u0131 da\u011f\u0131tt\u0131ktan sonra konsolum a\u015fa\u011f\u0131daki gibi g\u00f6r\u00fcn\u00fcyor.<\/p>\n<h2 id=\"%d9%85%d8%b1%d8%ad%d9%84%d9%87-4-%d8%ae%d9%88%d8%b4%d9%87-%d8%ac%d8%b3%d8%aa%d8%ac%d9%88%db%8c-%d8%a8%d8%a7%d8%b2-%d8%a2%d9%85%d8%a7%d8%b2%d9%88%d9%86-%d8%b1%d8%a7-%d8%a7%db%8c%d8%ac%d8%a7\"><img  loading=\"lazy\"  decoding=\"async\"  src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEUAAP+KeNJXAAAAAXRSTlMAQObYZgAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAApJREFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=\"  alt=\"\"  width=\"750\"  height=\"396\"  class=\"aligncenter wp-image-15138 size-full pk-lazyload\"  data-pk-sizes=\"auto\"  data-ls-sizes=\"auto, (max-width: 750px) 100vw, 750px\"  data-pk-src=\"https:\/\/cdn.itpiran.net\/2024\/03\/31152449\/6-1.webp\"  data-pk-srcset=\"https:\/\/cdn.itpiran.net\/2024\/03\/31152449\/6-1.webp 750w, https:\/\/cdn.itpiran.net\/2024\/03\/31152449\/6-1-300x158.webp 300w, https:\/\/cdn.itpiran.net\/2024\/03\/31152449\/6-1-110x58.webp 110w, https:\/\/cdn.itpiran.net\/2024\/03\/31152449\/6-1-200x106.webp 200w, https:\/\/cdn.itpiran.net\/2024\/03\/31152449\/6-1-380x201.webp 380w, https:\/\/cdn.itpiran.net\/2024\/03\/31152449\/6-1-255x135.webp 255w, https:\/\/cdn.itpiran.net\/2024\/03\/31152449\/6-1-550x290.webp 550w\" ><br \/>\n4. Ad\u0131m \u2013 Amazon A\u00e7\u0131k Arama K\u00fcmesini Olu\u015fturun<\/h2>\n<p>Amazon OpenSearch, k-En Yak\u0131n Kom\u015fular (kNN) algoritmas\u0131n\u0131 destekleyen bir arama ve analiz hizmetidir. Bu \u00f6zellik, benzerli\u011fe dayal\u0131 aramalar i\u00e7in paha bi\u00e7ilmezdir ve OpenSearch&#039;\u00fc bir vekt\u00f6r veritaban\u0131 olarak etkili bir \u015fekilde kullanmam\u0131z\u0131 sa\u011flar. kNN eklentisini destekleyen Elasticsearch\/OpenSearch s\u00fcr\u00fcmleri hakk\u0131nda daha fazla bilgi edinmek ve daha fazla bilgi edinmek i\u00e7in l\u00fctfen \u015fu ba\u011flant\u0131ya bak\u0131n: k-NN Eklenti Belgeleri.<\/p>\n<p>AWS CloudFormation \u015fablon dosyas\u0131n\u0131 GitHub konumundan da\u011f\u0131tmak i\u00e7in AWS CLI&#039;yi kullan\u0131yoruz. <code>Altyap\u0131\/opensearch-vectordb.yaml<\/code> Aws komutunu kullanaca\u011f\u0131z. <code>bulut olu\u015fumu y\u0131\u011f\u0131n olu\u015fturma<\/code> Amazon Open Search k\u00fcmesi olu\u015fturmak i\u00e7in a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131r\u0131n. Komutu \u00e7al\u0131\u015ft\u0131rmadan \u00f6nce de\u011ferlerinizi de\u011fi\u015ftirmeniz gerekir. <code>kullan\u0131c\u0131 ad\u0131<\/code> Ve <code>\u015fifre<\/code> Hadi yapal\u0131m.<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>aws cloudformation create-stack --stack-name opensearch-vectordb \\\r\n--template-body file:\/\/opensearch-vectordb.yaml \\\r\n--parameters ParameterKey=ClusterName,ParameterValue=opensearch-vectordb \\\r\nParameterKey=MasterUserName,ParameterValue=&lt;username&gt; \\\r\nParameterKey=MasterUserPassword,ParameterValue=&lt;password&gt; <\/code><\/pre>\n<\/div>\n<h2 id=\"%d9%85%d8%b1%d8%ad%d9%84%d9%87-5-%da%af%d8%b1%d8%af%d8%b4-%da%a9%d8%a7%d8%b1-%d8%ac%d8%b0%d8%a8-%d9%88-%d8%ac%d8%a7%d8%b3%d8%a7%d8%b2%db%8c-%d8%b3%d9%86%d8%af-%d8%b1%d8%a7-%d8%a8%d8%b3%d8%a7\">Ad\u0131m 5 \u2013 Belge yakalama ve yerle\u015ftirme i\u015f ak\u0131\u015f\u0131n\u0131 olu\u015fturun<\/h2>\n<p>Bu ad\u0131mda, bir PDF belgesi Amazon Simple Storage Service (S3) kovas\u0131na yerle\u015ftirildi\u011finde okumak \u00fczere tasarlanm\u0131\u015f bir al\u0131m ve i\u015fleme hatt\u0131 olu\u015fturaca\u011f\u0131z. Bu hat a\u015fa\u011f\u0131daki g\u00f6revleri ger\u00e7ekle\u015ftirecektir:<\/p>\n<ol>\n<li>PDF belgesinden metin \u00e7\u0131kar\u0131n.<\/li>\n<li>Metin par\u00e7alar\u0131n\u0131 g\u00f6mmelere (vekt\u00f6r g\u00f6sterimlerine) d\u00f6n\u00fc\u015ft\u00fcr\u00fcn.<\/li>\n<li>Amazon A\u00e7\u0131k Arama&#039;da g\u00f6m\u00fcl\u00fc \u00f6\u011feleri kaydedin.<\/li>\n<\/ol>\n<p>Bir PDF dosyas\u0131n\u0131 bir S3 kovas\u0131na b\u0131rakmak, AWS Fargate i\u015fini i\u00e7eren olay odakl\u0131 bir i\u015f ak\u0131\u015f\u0131n\u0131 tetikler. Bu i\u015f, metni g\u00f6m\u00fcl\u00fc metinlere d\u00f6n\u00fc\u015ft\u00fcr\u00fcp Amazon Open Search&#039;e eklemekten sorumlu olacakt\u0131r.<\/p>\n<h5 id=\"%d9%86%d9%85%d8%a7%db%8c-%da%a9%d9%84%db%8c-%d9%86%d9%85%d9%88%d8%af%d8%a7%d8%b1%db%8c\">\u015eematik genel bak\u0131\u015f<\/h5>\n<p>A\u015fa\u011f\u0131da, Amazon OpenSearch vekt\u00f6r veritaban\u0131nda g\u00f6m\u00fcl\u00fc metin par\u00e7ac\u0131klar\u0131n\u0131 depolamak i\u00e7in belge aktar\u0131m hatt\u0131n\u0131 g\u00f6steren bir diyagram bulunmaktad\u0131r:<\/p>\n<h5 id=\"%d8%a7%d8%b3%da%a9%d8%b1%db%8c%d9%be%d8%aa-%d8%b1%d8%a7%d9%87-%d8%a7%d9%86%d8%af%d8%a7%d8%b2%db%8c-%d9%88-%d8%b3%d8%a7%d8%ae%d8%aa%d8%a7%d8%b1-%d9%81%d8%a7%db%8c%d9%84\"><img  loading=\"lazy\"  decoding=\"async\"  src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEUAAP+KeNJXAAAAAXRSTlMAQObYZgAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAApJREFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=\"  alt=\"\"  width=\"750\"  height=\"231\"  class=\"aligncenter wp-image-15139 size-full pk-lazyload\"  data-pk-sizes=\"auto\"  data-ls-sizes=\"auto, (max-width: 750px) 100vw, 750px\"  data-pk-src=\"https:\/\/cdn.itpiran.net\/2024\/03\/31153207\/7-1.webp\"  data-pk-srcset=\"https:\/\/cdn.itpiran.net\/2024\/03\/31153207\/7-1.webp 750w, https:\/\/cdn.itpiran.net\/2024\/03\/31153207\/7-1-300x92.webp 300w, https:\/\/cdn.itpiran.net\/2024\/03\/31153207\/7-1-110x34.webp 110w, https:\/\/cdn.itpiran.net\/2024\/03\/31153207\/7-1-200x62.webp 200w, https:\/\/cdn.itpiran.net\/2024\/03\/31153207\/7-1-380x117.webp 380w, https:\/\/cdn.itpiran.net\/2024\/03\/31153207\/7-1-255x79.webp 255w, https:\/\/cdn.itpiran.net\/2024\/03\/31153207\/7-1-550x169.webp 550w\" ><br \/>\nBa\u015flatma beti\u011fi ve dosya yap\u0131s\u0131<\/h5>\n<p>Dosyadaki ana mant\u0131k <code>create-embeddings-save-in-vectordb\\startup_script.py<\/code> Bu Python beti\u011fi \u015fu adreste bulunur: <code>ba\u015flang\u0131\u00e7_beti\u011fi.py<\/code>, belge i\u015fleme, metin yerle\u015ftirme ve bir Amazon Open Search k\u00fcmesine ekleme ile ilgili \u00e7e\u015fitli g\u00f6revleri ger\u00e7ekle\u015ftirir. Betik, bir Amazon S3 kovas\u0131ndan bir PDF belgesi indirir ve ard\u0131ndan indirilen belgeyi daha k\u00fc\u00e7\u00fck metin par\u00e7alar\u0131na b\u00f6ler. Her par\u00e7a i\u00e7in metin i\u00e7eri\u011fi, metin yerle\u015ftirmeleri olu\u015fturmak \u00fczere Amazon SageMaker&#039;da da\u011f\u0131t\u0131lan GPT-J 6B FP16 Yerle\u015ftirme modeli u\u00e7 noktas\u0131na g\u00f6nderilir (TEXT_EMBEDDING_MODEL_ENDPOINT_NAME ortam de\u011fi\u015fkeninden al\u0131n\u0131r). Olu\u015fturulan yerle\u015ftirmeler, di\u011fer bilgilerle birlikte Amazon Open Search dizinine yerle\u015ftirilir. Betik, yap\u0131land\u0131rma ve do\u011frulama parametrelerini ortam de\u011fi\u015fkenlerinden al\u0131r ve ortamlar aras\u0131nda tutarl\u0131 hale getirir. Beti\u011fin bir Docker konteynerinde tek tip olarak \u00e7al\u0131\u015fmas\u0131 ama\u00e7lanm\u0131\u015ft\u0131r.<\/p>\n<h5 id=\"%d8%aa%d8%b5%d9%88%db%8c%d8%b1-docker-%d8%b1%d8%a7-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d8%af-%d9%88-%d9%85%d9%86%d8%aa%d8%b4%d8%b1-%da%a9%d9%86%db%8c%d8%af\">Docker g\u00f6r\u00fcnt\u00fcs\u00fcn\u00fc olu\u015fturun ve yay\u0131nlay\u0131n<\/h5>\n<p>Kodu anlad\u0131ktan sonra <code>ba\u015flang\u0131\u00e7_beti\u011fi.py<\/code>, Dockerfile&#039;\u0131 klas\u00f6rden olu\u015fturaca\u011f\u0131z <code>create-embeddings-save-in-vectordb<\/code> G\u00f6r\u00fcnt\u00fcy\u00fc Amazon Elastic Container Registry&#039;ye (Amazon ECR) aktaraca\u011f\u0131z. Amazon Elastic Container Registry (Amazon ECR), y\u00fcksek performansl\u0131 bar\u0131nd\u0131rma sa\u011flayan, tamamen y\u00f6netilen bir kapsay\u0131c\u0131 kay\u0131t defteridir, b\u00f6ylece uygulama g\u00f6r\u00fcnt\u00fclerini ve yap\u0131tlar\u0131n\u0131 her yere g\u00fcvenilir bir \u015fekilde da\u011f\u0131tabiliriz. Docker g\u00f6r\u00fcnt\u00fcs\u00fcn\u00fc olu\u015fturmak ve Amazon ECR&#039;ye aktarmak i\u00e7in AWS CLI ve Docker CLI&#039;yi kullanaca\u011f\u0131z. A\u015fa\u011f\u0131daki t\u00fcm komutlarda, Do\u011fru AWS hesap numaras\u0131yla de\u011fi\u015ftirin.<\/p>\n<p>Bir kimlik do\u011frulama belirteci al\u0131n ve Docker istemcisini AWS CLI&#039;daki kay\u0131t defterinde do\u011frulay\u0131n.<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin &lt;AWS Account Number&gt;.dkr.ecr.us-east-1.amazonaws.com <\/code><\/pre>\n<\/div>\n<p>A\u015fa\u011f\u0131daki komutu kullanarak Docker imaj\u0131n\u0131z\u0131 olu\u015fturun.<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>docker build -t save-embedding-vectordb .\r\n<\/code><\/pre>\n<\/div>\n<p>Derleme tamamland\u0131ktan sonra, g\u00f6r\u00fcnt\u00fcy\u00fc etiketleyin, b\u00f6ylece g\u00f6r\u00fcnt\u00fcy\u00fc bu depoya g\u00f6nderebiliriz:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>docker tag save-embedding-vectordb:latest &lt;AWS Account Number&gt;.dkr.ecr.us-east-1.amazonaws.com\/save-embedding-vectordb:latest\r\n<\/code><\/pre>\n<\/div>\n<p>Bu g\u00f6r\u00fcnt\u00fcy\u00fc yeni Amazon ECR deposuna g\u00f6ndermek i\u00e7in a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>docker push &lt;AWS Account Number&gt;.dkr.ecr.us-east-1.amazonaws.com\/save-embedding-vectordb:latest\r\n<\/code><\/pre>\n<\/div>\n<p>Docker g\u00f6r\u00fcnt\u00fcs\u00fc Amazon ECR deposuna y\u00fcklendi\u011finde a\u015fa\u011f\u0131daki g\u00f6r\u00fcnt\u00fcye benzemelidir:<\/p>\n<h5 id=\"%d8%b2%db%8c%d8%b1%d8%b3%d8%a7%d8%ae%d8%aa%db%8c-%d8%a8%d8%b1%d8%a7%db%8c-%da%af%d8%b1%d8%af%d8%b4-%da%a9%d8%a7%d8%b1-%d8%ac%d8%a7%d8%b3%d8%a7%d8%b2%db%8c-pdf-%d9%85%d8%a8%d8%aa%d9%86%db%8c-%d8%a8\"><img  loading=\"lazy\"  decoding=\"async\"  src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEUAAP+KeNJXAAAAAXRSTlMAQObYZgAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAApJREFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=\"  alt=\"\"  width=\"750\"  height=\"191\"  class=\"aligncenter wp-image-15140 size-full pk-lazyload\"  data-pk-sizes=\"auto\"  data-ls-sizes=\"auto, (max-width: 750px) 100vw, 750px\"  data-pk-src=\"https:\/\/cdn.itpiran.net\/2024\/03\/31154130\/8-1.webp\"  data-pk-srcset=\"https:\/\/cdn.itpiran.net\/2024\/03\/31154130\/8-1.webp 750w, https:\/\/cdn.itpiran.net\/2024\/03\/31154130\/8-1-300x76.webp 300w, https:\/\/cdn.itpiran.net\/2024\/03\/31154130\/8-1-110x28.webp 110w, https:\/\/cdn.itpiran.net\/2024\/03\/31154130\/8-1-200x51.webp 200w, https:\/\/cdn.itpiran.net\/2024\/03\/31154130\/8-1-380x97.webp 380w, https:\/\/cdn.itpiran.net\/2024\/03\/31154130\/8-1-255x65.webp 255w, https:\/\/cdn.itpiran.net\/2024\/03\/31154130\/8-1-550x140.webp 550w\" ><br \/>\nOlay tabanl\u0131 PDF yerle\u015ftirme i\u015f ak\u0131\u015f\u0131 i\u00e7in bir altyap\u0131 olu\u015fturun<\/h5>\n<p>Sa\u011flanan parametrelerle olay odakl\u0131 bir i\u015f ak\u0131\u015f\u0131 i\u00e7in bir CloudFormation y\u0131\u011f\u0131n\u0131 olu\u015fturmak \u00fczere AWS Komut Sat\u0131r\u0131 Aray\u00fcz\u00fc&#039;n\u00fc (AWS CLI) kullanabiliriz. CloudFormation \u015fablonuna GitHub deposundan ula\u015fabilirsiniz: <code>Altyap\u0131\/fargate-g\u00f6mme-vekt\u00f6rdb-kaydetme.yaml<\/code> AWS ortam\u0131na uyum sa\u011flamak i\u00e7in parametreleri g\u00f6z ard\u0131 etmemiz gerekiyor.<\/p>\n<p>Komutta g\u00fcncellenecek temel parametreler \u015funlard\u0131r: <code>aws cloudformation create-stack<\/code> \u015e\u00f6yle denilmektedir:<\/p>\n<ul>\n<li>BucketName: Bu parametre, PDF belgelerini b\u0131rakaca\u011f\u0131m\u0131z Amazon S3 kovas\u0131n\u0131 temsil eder.<\/li>\n<li>VpcId ve SubnetId: Bu parametreler Fargate g\u00f6revinin nerede \u00e7al\u0131\u015faca\u011f\u0131n\u0131 belirtir.<\/li>\n<li>ImageName: Bu, save-embedding-vectordb i\u00e7in Amazon Elastic Container Registry&#039;deki (ECR) Docker g\u00f6r\u00fcnt\u00fcs\u00fcn\u00fcn ad\u0131d\u0131r.<\/li>\n<li>TextEmbeddingModelEndpointName: Bu parametreyi, 1. ad\u0131mda Amazon SageMaker&#039;da da\u011f\u0131t\u0131lan G\u00f6mme modelinin ad\u0131n\u0131 sa\u011flamak i\u00e7in kullan\u0131n.<\/li>\n<li>VectorDatabaseEndpoint: Amazon OpenSearch etki alan\u0131n\u0131n u\u00e7 nokta adresini belirtin.<\/li>\n<li>VectorDatabaseUsername ve VectorDatabasePassword: Bu parametreler, 4. ad\u0131mda olu\u015fturulan Amazon Open Search k\u00fcmesine eri\u015fmek i\u00e7in gereken kimlik bilgilerine y\u00f6neliktir.<\/li>\n<li>VectorDatabaseIndex: Amazon Open Search&#039;te PDF belge yerle\u015ftirmelerinin sakland\u0131\u011f\u0131 dizinin ad\u0131n\u0131 ayarlay\u0131n.<\/li>\n<\/ul>\n<p>CloudFormation y\u0131\u011f\u0131n\u0131 olu\u015fturma i\u015flemini ger\u00e7ekle\u015ftirmek i\u00e7in, parametre de\u011ferlerini g\u00fcncelledikten sonra a\u015fa\u011f\u0131daki AWS CLI komutunu kullan\u0131r\u0131z:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>aws cloudformation create-stack \\\r\n--stack-name ecs-embeddings-vectordb \\\r\n--template-body file:\/\/fargate-embeddings-vectordb-save.yaml \\\r\n--parameters \\\r\nParameterKey=BucketName,ParameterValue=car-manuals-12345 \\\r\nParameterKey=VpcId,ParameterValue=vpc-123456 \\\r\nParameterKey=SubnetId,ParameterValue=subnet-123456,subnet-123456 \\\r\nParameterKey=Imagename,ParameterValue=123456.dkr.ecr.us-east-1.amazonaws.com\/save-embedding-vectordb:latest \\\r\nParameterKey=TextEmbeddingModelEndpointName,ParameterValue=jumpstart-dft-hf-textembedding-gpt-j-6b-fp16 \\\r\nParameterKey=VectorDatabaseEndpoint,ParameterValue=https:\/\/search-cfnopensearch2-xxxxxxxx.us-east-1.es.amazonaws.com \\\r\nParameterKey=VectorDatabaseUsername,ParameterValue=master \\\r\nParameterKey=VectorDatabasePassword,ParameterValue=vectordbpassword \\\r\nParameterKey=VectorDatabaseIndex,ParameterValue=carmanual<\/code><\/pre>\n<\/div>\n<p>Yukar\u0131daki CloudFormation y\u0131\u011f\u0131n\u0131n\u0131 olu\u015fturarak bir S3 kovas\u0131 olu\u015fturuyor ve bir Lambda i\u015flevi ba\u015flatan S3 bildirimleri olu\u015fturuyoruz. Bu Lambda i\u015flevi de bir Fargate g\u00f6revi ba\u015flat\u0131yor. Fargate g\u00f6revi, dosyay\u0131 i\u00e7eren bir Docker konteyneri olu\u015fturuyor. <code>ba\u015flang\u0131\u00e7-beti\u011fi.py<\/code> Amazon OpenSearch&#039;te yeni bir OpenSearch dizini alt\u0131nda g\u00f6m\u00fcl\u00fc \u00f6\u011feler olu\u015fturmaktan sorumlu olan uygulamalar <code>araba k\u0131lavuzu<\/code> \u00d6yledir.<\/p>\n<h5 id=\"%d8%aa%d8%b3%d8%aa-%d8%a8%d8%a7-%db%8c%da%a9-%d9%86%d9%85%d9%88%d9%86%d9%87-pdf\">PDF \u00f6rne\u011fiyle test edin<\/h5>\n<p>CloudFormation y\u0131\u011f\u0131n\u0131 \u00e7al\u0131\u015fmaya ba\u015flad\u0131ktan sonra, makine k\u0131lavuzunu temsil eden bir PDF dosyas\u0131n\u0131 S3 kovan\u0131za b\u0131rak\u0131n. Ben buradan indirdi\u011fim bir makine k\u0131lavuzuna eri\u015febilirsiniz. Olay tabanl\u0131 ta\u015f\u0131ma hatt\u0131n\u0131n \u00e7al\u0131\u015fmas\u0131 tamamland\u0131ktan sonra, Amazon Open Search k\u00fcmesi a\u015fa\u011f\u0131daki profili i\u00e7ermelidir: <code>araba k\u0131lavuzu<\/code> A\u015fa\u011f\u0131da g\u00f6sterilen yerle\u015ftirmelerle.<\/p>\n<h2 id=\"%d9%85%d8%b1%d8%ad%d9%84%d9%87-6-api-%d9%be%d8%b1%d8%b3%d8%b4-%d9%88-%d9%be%d8%a7%d8%b3%d8%ae-%d8%a8%d9%84%d8%a7%d8%af%d8%b1%d9%86%da%af-%d8%b1%d8%a7-%d8%a8%d8%a7-%d9%be%d8%b4%d8%aa%db%8c\"><img  loading=\"lazy\"  decoding=\"async\"  src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEUAAP+KeNJXAAAAAXRSTlMAQObYZgAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAApJREFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=\"  alt=\"\"  width=\"750\"  height=\"328\"  class=\"aligncenter wp-image-15141 size-full pk-lazyload\"  data-pk-sizes=\"auto\"  data-ls-sizes=\"auto, (max-width: 750px) 100vw, 750px\"  data-pk-src=\"https:\/\/cdn.itpiran.net\/2024\/03\/31155042\/9-1.webp\"  data-pk-srcset=\"https:\/\/cdn.itpiran.net\/2024\/03\/31155042\/9-1.webp 750w, https:\/\/cdn.itpiran.net\/2024\/03\/31155042\/9-1-300x131.webp 300w, https:\/\/cdn.itpiran.net\/2024\/03\/31155042\/9-1-110x48.webp 110w, https:\/\/cdn.itpiran.net\/2024\/03\/31155042\/9-1-200x87.webp 200w, https:\/\/cdn.itpiran.net\/2024\/03\/31155042\/9-1-380x166.webp 380w, https:\/\/cdn.itpiran.net\/2024\/03\/31155042\/9-1-255x112.webp 255w, https:\/\/cdn.itpiran.net\/2024\/03\/31155042\/9-1-550x241.webp 550w\" ><br \/>\n<img  loading=\"lazy\"  decoding=\"async\"  src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEUAAP+KeNJXAAAAAXRSTlMAQObYZgAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAApJREFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=\"  alt=\"\"  width=\"750\"  height=\"375\"  class=\"aligncenter wp-image-15142 size-full pk-lazyload\"  data-pk-sizes=\"auto\"  data-ls-sizes=\"auto, (max-width: 750px) 100vw, 750px\"  data-pk-src=\"https:\/\/cdn.itpiran.net\/2024\/03\/31155112\/10-1.webp\"  data-pk-srcset=\"https:\/\/cdn.itpiran.net\/2024\/03\/31155112\/10-1.webp 750w, https:\/\/cdn.itpiran.net\/2024\/03\/31155112\/10-1-300x150.webp 300w, https:\/\/cdn.itpiran.net\/2024\/03\/31155112\/10-1-110x55.webp 110w, https:\/\/cdn.itpiran.net\/2024\/03\/31155112\/10-1-200x100.webp 200w, https:\/\/cdn.itpiran.net\/2024\/03\/31155112\/10-1-380x190.webp 380w, https:\/\/cdn.itpiran.net\/2024\/03\/31155112\/10-1-255x128.webp 255w, https:\/\/cdn.itpiran.net\/2024\/03\/31155112\/10-1-550x275.webp 550w\" ><br \/>\nAd\u0131m 6 \u2013 Llm Metin Deste\u011fiyle Ger\u00e7ek Zamanl\u0131 Soru-Cevap API&#039;sini Uygulay\u0131n<\/h2>\n<p>Art\u0131k metin yerle\u015ftirmelerimizi Amazon Open Search destekli bir vekt\u00f6r veritaban\u0131na yerle\u015ftirdi\u011fimize g\u00f6re, bir sonraki ad\u0131ma ge\u00e7elim. Burada, T5 Flan XXL LLM&#039;nin yeteneklerini kullanarak ara\u00e7 k\u0131lavuzumuz hakk\u0131nda ger\u00e7ek zamanl\u0131 yan\u0131tlar sa\u011flayaca\u011f\u0131z.<\/p>\n<p>LLM&#039;ye ba\u011flam sa\u011flamak i\u00e7in vekt\u00f6r veritaban\u0131nda depolanan yerle\u015ftirmeleri kullan\u0131yoruz. Bu ba\u011flam, LLM&#039;nin ara\u00e7 k\u0131lavuzumuzla ilgili sorular\u0131 etkili bir \u015fekilde anlamas\u0131n\u0131 ve yan\u0131tlamas\u0131n\u0131 sa\u011fl\u0131yor. Bunu ba\u015farmak i\u00e7in, LLM taraf\u0131ndan tasarlanan ger\u00e7ek zamanl\u0131, metin tabanl\u0131 soru-cevap sistemimiz i\u00e7in gereken \u00e7e\u015fitli bile\u015fenlerin koordinasyonunu kolayla\u015ft\u0131ran LangChain adl\u0131 bir \u00e7er\u00e7eve kullanaca\u011f\u0131z.<\/p>\n<p>Bir vekt\u00f6r veritaban\u0131nda depolanan yerle\u015ftirmeler, kelimelerin anlamlar\u0131n\u0131 ve ili\u015fkilerini g\u00f6sterir ve anlamsal benzerliklere dayal\u0131 hesaplamalar yapmam\u0131z\u0131 sa\u011flar. Yerle\u015ftirmeler, anlamlar\u0131 ve ili\u015fkileri yakalamak i\u00e7in metin par\u00e7ac\u0131klar\u0131n\u0131n vekt\u00f6r temsillerini olu\u015ftururken, T5 Flan LLM, isteklere ve sorgulara eklenen ba\u011flam temelinde ba\u011flamla ilgili yan\u0131tlar olu\u015fturma konusunda uzmanla\u015fm\u0131\u015ft\u0131r. Ama\u00e7, sorular i\u00e7in yerle\u015ftirmeler olu\u015fturarak ve ard\u0131ndan vekt\u00f6r veritaban\u0131nda depolanan di\u011fer yerle\u015ftirmelerle benzerliklerini \u00f6l\u00e7erek kullan\u0131c\u0131 sorular\u0131n\u0131 metin par\u00e7ac\u0131klar\u0131yla e\u015fle\u015ftirmektir.<\/p>\n<p>Metin par\u00e7ac\u0131klar\u0131n\u0131 ve kullan\u0131c\u0131 sorgular\u0131n\u0131 vekt\u00f6r olarak temsil ederek, ba\u011flama duyarl\u0131 benzerlik aramalar\u0131 ger\u00e7ekle\u015ftirmek i\u00e7in matematiksel hesaplamalar yapabiliriz. \u0130ki veri noktas\u0131 aras\u0131ndaki benzerli\u011fi \u00f6l\u00e7mek i\u00e7in \u00e7ok boyutlu bir alanda mesafe \u00f6l\u00e7\u00fcmlerini kullan\u0131r\u0131z.<\/p>\n<p>A\u015fa\u011f\u0131daki diyagram, LangChain ve T5 Flan LLM program\u0131m\u0131z taraf\u0131ndan sa\u011flanan ger\u00e7ek zamanl\u0131 soru-cevap i\u015f ak\u0131\u015f\u0131n\u0131 g\u00f6stermektedir.<\/p>\n<h5 id=\"%d8%a8%d8%b1%d8%b1%d8%b3%db%8c-%d8%a7%d8%ac%d9%85%d8%a7%d9%84%db%8c-%d9%86%d9%85%d9%88%d8%af%d8%a7%d8%b1%db%8c-%d9%be%d8%b4%d8%aa%db%8c%d8%a8%d8%a7%d9%86%db%8c-%d9%be%d8%b1%d8%b3%d8%b4-%d9%88-%d9%be\">T5-Flan-XXL LLM&#039;den Ger\u00e7ek Zamanl\u0131 Soru-Cevap deste\u011finin grafiksel genel g\u00f6r\u00fcn\u00fcm\u00fc<\/h5>\n<h5 id=\"api-%d8%b1%d8%a7-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d8%af\"><img  loading=\"lazy\"  decoding=\"async\"  src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEUAAP+KeNJXAAAAAXRSTlMAQObYZgAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAApJREFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=\"  alt=\"\"  width=\"750\"  height=\"430\"  class=\"aligncenter wp-image-15143 size-full pk-lazyload\"  data-pk-sizes=\"auto\"  data-ls-sizes=\"auto, (max-width: 750px) 100vw, 750px\"  data-pk-src=\"https:\/\/cdn.itpiran.net\/2024\/03\/31155349\/11-1.webp\"  data-pk-srcset=\"https:\/\/cdn.itpiran.net\/2024\/03\/31155349\/11-1.webp 750w, https:\/\/cdn.itpiran.net\/2024\/03\/31155349\/11-1-300x172.webp 300w, https:\/\/cdn.itpiran.net\/2024\/03\/31155349\/11-1-110x63.webp 110w, https:\/\/cdn.itpiran.net\/2024\/03\/31155349\/11-1-200x115.webp 200w, https:\/\/cdn.itpiran.net\/2024\/03\/31155349\/11-1-380x218.webp 380w, https:\/\/cdn.itpiran.net\/2024\/03\/31155349\/11-1-255x146.webp 255w, https:\/\/cdn.itpiran.net\/2024\/03\/31155349\/11-1-550x315.webp 550w\" ><br \/>\nAPI&#039;yi olu\u015fturun<\/h5>\n<p>LangChain ve T5 Flask LLM i\u015f ak\u0131\u015f\u0131m\u0131z\u0131 inceledi\u011fimize g\u00f6re, kullan\u0131c\u0131 sorular\u0131n\u0131 kabul eden ve ba\u011flam fark\u0131nda yan\u0131tlar sa\u011flayan API kodumuza ge\u00e7elim. Bu ger\u00e7ek zamanl\u0131 Soru-Cevap API&#039;si, GitHub depomuzun RAG-langchain-questionanswer-t5-llm klas\u00f6r\u00fcnde bulunur ve temel mant\u0131\u011f\u0131 app.py dosyas\u0131ndad\u0131r. Bu Flask tabanl\u0131 uygulama, sorular\u0131 yan\u0131tlamak i\u00e7in bir \/qa rotas\u0131 tan\u0131mlar.<\/p>\n<p>Bir kullan\u0131c\u0131 API&#039;ye bir sorgu g\u00f6nderdi\u011finde, TEXT_EMBEDDING_MODEL_ENDPOINT_NAME ortam de\u011fi\u015fkenini kullan\u0131r ve sorguyu g\u00f6m\u00fcl\u00fc metin ad\u0131 verilen say\u0131sal vekt\u00f6r g\u00f6sterimlerine d\u00f6n\u00fc\u015ft\u00fcrmek i\u00e7in bir Amazon SageMaker u\u00e7 noktas\u0131na i\u015faret eder. Bu g\u00f6m\u00fcl\u00fc metinler, metnin anlamsal anlam\u0131n\u0131 yakalar.<\/p>\n<p>API, ba\u011flam fark\u0131nda benzerlik aramalar\u0131 ger\u00e7ekle\u015ftirmek i\u00e7in Amazon OpenSearch&#039;ten daha da yararlan\u0131r ve kullan\u0131c\u0131 sorgular\u0131ndan elde edilen yerle\u015ftirmelere dayanarak OpenSearch dizin \u00e7al\u0131\u015fma k\u0131lavuzundan ilgili metin par\u00e7ac\u0131klar\u0131n\u0131 almas\u0131n\u0131 sa\u011flar. Bu ad\u0131mdan sonra API, Amazon SageMaker&#039;da da kullan\u0131lan T5FLAN_XXL_ENDPOINT_NAME ortam de\u011fi\u015fkeniyle tan\u0131mlanan T5 Flan LLM u\u00e7 noktas\u0131n\u0131 \u00e7a\u011f\u0131r\u0131r. U\u00e7 nokta, yan\u0131t olu\u015fturmak i\u00e7in ba\u011flam olarak Amazon OpenSearch&#039;ten al\u0131nan metin par\u00e7ac\u0131klar\u0131n\u0131 kullan\u0131r. Amazon OpenSearch&#039;ten al\u0131nan bu metin par\u00e7ac\u0131klar\u0131, T5 Flan LLM u\u00e7 noktas\u0131 i\u00e7in de\u011ferli bir ba\u011flam g\u00f6revi g\u00f6rerek kullan\u0131c\u0131 sorgular\u0131na anlaml\u0131 yan\u0131tlar sa\u011flamas\u0131n\u0131 m\u00fcmk\u00fcn k\u0131lar. API kodu, t\u00fcm bu etkile\u015fimleri d\u00fczenlemek i\u00e7in LangChain&#039;i kullan\u0131r.<\/p>\n<h5 id=\"%d8%aa%d8%b5%d9%88%db%8c%d8%b1-docker-%d8%b1%d8%a7-%d8%a8%d8%b1%d8%a7%db%8c-api-%d8%a8%d8%b3%d8%a7%d8%b2%db%8c%d8%af-%d9%88-%d9%85%d9%86%d8%aa%d8%b4%d8%b1-%da%a9%d9%86%db%8c%d8%af\">API i\u00e7in Docker g\u00f6r\u00fcnt\u00fcs\u00fcn\u00fc olu\u015fturun ve yay\u0131nlay\u0131n<\/h5>\n<p>app.py i\u00e7indeki kodu anlad\u0131ktan sonra, RAG-langchain-questionanswer-t5-llm klas\u00f6r\u00fcnden Dockerfile&#039;\u0131 olu\u015fturup imaj\u0131 Amazon ECR&#039;ye g\u00f6nderece\u011fiz. Docker imaj\u0131n\u0131 olu\u015fturmak ve Amazon ECR&#039;ye g\u00f6ndermek i\u00e7in AWS CLI ve Docker CLI&#039;yi kullanaca\u011f\u0131z. A\u015fa\u011f\u0131daki t\u00fcm komutlarda: Do\u011fru AWS hesap numaras\u0131yla de\u011fi\u015ftirin.<\/p>\n<p>Bir kimlik do\u011frulama belirteci al\u0131n ve Docker istemcisini AWS CLI&#039;daki kay\u0131t defterinde do\u011frulay\u0131n.<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin &lt;AWS Account Number&gt;.dkr.ecr.us-east-1.amazonaws.com \r\n<\/code><\/pre>\n<\/div>\n<p>A\u015fa\u011f\u0131daki komutu kullanarak Docker imaj\u0131n\u0131 olu\u015fturun.<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>docker build -t qa-container .\r\n<\/code><\/pre>\n<\/div>\n<p>Derleme tamamland\u0131ktan sonra, g\u00f6r\u00fcnt\u00fcy\u00fc etiketleyin, b\u00f6ylece g\u00f6r\u00fcnt\u00fcy\u00fc bu depoya g\u00f6nderebiliriz:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>docker tag qa-container:latest &lt;AWS Account Number&gt;.dkr.ecr.us-east-1.amazonaws.com\/qa-container:latest\r\n<\/code><\/pre>\n<\/div>\n<p>Bu g\u00f6r\u00fcnt\u00fcy\u00fc yeni Amazon ECR deposuna g\u00f6ndermek i\u00e7in a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>docker push &lt;AWS Account Number&gt;.dkr.ecr.us-east-1.amazonaws.com\/qa-container:latest\r\n<\/code><\/pre>\n<\/div>\n<p>Docker g\u00f6r\u00fcnt\u00fcs\u00fc Amazon ECR deposuna y\u00fcklendi\u011finde a\u015fa\u011f\u0131daki g\u00f6r\u00fcnt\u00fcye benzemelidir:<\/p>\n<h5 id=\"%d9%be%d8%b4%d8%aa%d9%87-cloudformation-%d8%b1%d8%a7-%d8%a8%d8%b1%d8%a7%db%8c-%d9%85%db%8c%d8%b2%d8%a8%d8%a7%d9%86%db%8c-%d9%86%d9%82%d8%b7%d9%87-%d9%be%d8%a7%db%8c%d8%a7%d9%86%db%8c-api-%d8%a8%d8%b3\"><img  loading=\"lazy\"  decoding=\"async\"  src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEUAAP+KeNJXAAAAAXRSTlMAQObYZgAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAApJREFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=\"  alt=\"\"  width=\"750\"  height=\"170\"  class=\"aligncenter wp-image-15144 size-full pk-lazyload\"  data-pk-sizes=\"auto\"  data-ls-sizes=\"auto, (max-width: 750px) 100vw, 750px\"  data-pk-src=\"https:\/\/cdn.itpiran.net\/2024\/03\/31155754\/12-1.webp\"  data-pk-srcset=\"https:\/\/cdn.itpiran.net\/2024\/03\/31155754\/12-1.webp 750w, https:\/\/cdn.itpiran.net\/2024\/03\/31155754\/12-1-300x68.webp 300w, https:\/\/cdn.itpiran.net\/2024\/03\/31155754\/12-1-110x25.webp 110w, https:\/\/cdn.itpiran.net\/2024\/03\/31155754\/12-1-200x45.webp 200w, https:\/\/cdn.itpiran.net\/2024\/03\/31155754\/12-1-380x86.webp 380w, https:\/\/cdn.itpiran.net\/2024\/03\/31155754\/12-1-255x58.webp 255w, https:\/\/cdn.itpiran.net\/2024\/03\/31155754\/12-1-550x125.webp 550w\" ><br \/>\nAPI u\u00e7 noktas\u0131n\u0131 bar\u0131nd\u0131rmak i\u00e7in bir CloudFormation y\u0131\u011f\u0131n\u0131 olu\u015fturun<\/h5>\n<p>API&#039;yi kullan\u0131ma sunmak i\u00e7in bir Fargate g\u00f6revi bar\u0131nd\u0131ran bir Amazon ECS K\u00fcmesi i\u00e7in bir CloudFormation y\u0131\u011f\u0131n\u0131 olu\u015fturmak \u00fczere AWS Komut Sat\u0131r\u0131 Aray\u00fcz\u00fc&#039;n\u00fc (CLI) kullanaca\u011f\u0131z. CloudFormation \u015fablonu, GitHub deposunda Infrastructure\/fargate-api-rag-llm-langchain.yaml adresinde bulunmaktad\u0131r. Parametreleri AWS ortam\u0131yla e\u015fle\u015ftirmek i\u00e7in ge\u00e7ersiz k\u0131lmam\u0131z gerekiyor. aws cloudformation create-stack komutunda g\u00fcncellenecek temel parametreler \u015funlard\u0131r:<\/p>\n<ul>\n<li>DemoVPC: Bu parametre, hizmetinizin \u00e7al\u0131\u015faca\u011f\u0131 sanal \u00f6zel bulutu (VPC) belirtir.<\/li>\n<li>PublicSubnetIds: Bu parametre, y\u00fck dengeleyicinizin ve g\u00f6revlerinizin yer alaca\u011f\u0131 genel alt a\u011f kimliklerinin bir listesini gerektirir.<\/li>\n<li>IMAGENAME: QA konteyneri i\u00e7in Amazon Elastic Container Registry&#039;de (ECR) Docker g\u00f6r\u00fcnt\u00fc ad\u0131n\u0131 sa\u011flay\u0131n.<\/li>\n<li>TextEmbeddingModelEndpointName: 1. ad\u0131mda Amazon SageMaker&#039;da da\u011f\u0131t\u0131lan Embeddings modelinin u\u00e7 nokta ad\u0131n\u0131 belirtin.<\/li>\n<li>T5FlanXXLEndpointName: 2. ad\u0131mda Amazon SageMaker&#039;a da\u011f\u0131t\u0131lan T5-FLAN u\u00e7 nokta ad\u0131n\u0131 ayarlay\u0131n.<\/li>\n<li>VectorDatabaseEndpoint: Amazon OpenSearch etki alan\u0131n\u0131n u\u00e7 nokta adresini belirtin.<\/li>\n<li>VectorDatabaseUsername ve VectorDatabasePassword: Bu parametreler, 4. ad\u0131mda olu\u015fturulan OpenSearch K\u00fcmesine eri\u015fmek i\u00e7in gereken kimlik bilgileri i\u00e7indir.<\/li>\n<li>VectorDatabaseIndex: Amazon OpenSearch&#039;te servis verilerinizin depolanaca\u011f\u0131 dizinin ad\u0131n\u0131 belirleyin. Bu \u00f6rnekte kulland\u0131\u011f\u0131m\u0131z dizin ad\u0131 carmanual&#039;d\u0131r.<\/li>\n<\/ul>\n<p>CloudFormation y\u0131\u011f\u0131n\u0131 olu\u015fturma i\u015flemini ger\u00e7ekle\u015ftirmek i\u00e7in, parametre de\u011ferlerini g\u00fcncelledikten sonra a\u015fa\u011f\u0131daki AWS CLI komutunu kullan\u0131r\u0131z:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>aws cloudformation create-stack \\\r\n--stack-name ecs-questionanswer-llm \\\r\n--template-body file:\/\/fargate-api-rag-llm-langchain.yaml \\\r\n--parameters \\\r\nParameterKey=DemoVPC,ParameterValue=vpc-123456 \\\r\nParameterKey=PublicSubnetIds,ParameterValue=subnet-123456,subnet-789012 \\\r\nParameterKey=Imagename,ParameterValue=123456.dkr.ecr.us-east-1.amazonaws.com\/qa-container:latest \\\r\nParameterKey=TextEmbeddingModelEndpointName,ParameterValue=jumpstart-dft-hf-textembedding-gpt-j-6b-fp16 \\\r\nParameterKey=T5FlanXXLEndpointName,ParameterValue=jumpstart-example-huggingface-text2text-2023-08-06-16-40-45-080 \\\r\nParameterKey=VectorDatabaseEndpoint,ParameterValue=https:\/\/search-cfnopensearch2-xxxxxxxx.us-east-1.es.amazonaws.com \\\r\nParameterKey=VectorDatabaseUsername,ParameterValue=master \\\r\nParameterKey=VectorDatabasePassword,ParameterValue=vectordbpassword \\\r\nParameterKey=VectorDatabaseIndex,ParameterValue=carmanual<\/code><\/pre>\n<\/div>\n<p>Yukar\u0131da belirtilen CloudFormation y\u0131\u011f\u0131n\u0131n\u0131 ba\u015far\u0131yla \u00e7al\u0131\u015ft\u0131rd\u0131ktan sonra, AWS konsoluna gidin ve ecs-questionanswer-llm y\u0131\u011f\u0131n\u0131 i\u00e7in &#039;CloudFormation \u00c7\u0131kt\u0131lar\u0131&#039; sekmesine eri\u015fin. Bu sekmede, API u\u00e7 noktas\u0131 da dahil olmak \u00fczere gerekli bilgileri bulaca\u011f\u0131z. \u00c7\u0131kt\u0131n\u0131n nas\u0131l g\u00f6r\u00fcnebilece\u011fine dair bir \u00f6rnek a\u015fa\u011f\u0131da verilmi\u015ftir:<\/p>\n<h5 id=\"api-%d8%b1%d8%a7-%d8%aa%d8%b3%d8%aa-%da%a9%d9%86%db%8c%d8%af\"><img  loading=\"lazy\"  decoding=\"async\"  src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEUAAP+KeNJXAAAAAXRSTlMAQObYZgAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAApJREFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=\"  alt=\"\"  width=\"750\"  height=\"232\"  class=\"aligncenter wp-image-15145 size-full pk-lazyload\"  data-pk-sizes=\"auto\"  data-ls-sizes=\"auto, (max-width: 750px) 100vw, 750px\"  data-pk-src=\"https:\/\/cdn.itpiran.net\/2024\/03\/31160211\/13-1.webp\"  data-pk-srcset=\"https:\/\/cdn.itpiran.net\/2024\/03\/31160211\/13-1.webp 750w, https:\/\/cdn.itpiran.net\/2024\/03\/31160211\/13-1-300x93.webp 300w, https:\/\/cdn.itpiran.net\/2024\/03\/31160211\/13-1-110x34.webp 110w, https:\/\/cdn.itpiran.net\/2024\/03\/31160211\/13-1-200x62.webp 200w, https:\/\/cdn.itpiran.net\/2024\/03\/31160211\/13-1-380x118.webp 380w, https:\/\/cdn.itpiran.net\/2024\/03\/31160211\/13-1-255x79.webp 255w, https:\/\/cdn.itpiran.net\/2024\/03\/31160211\/13-1-550x170.webp 550w\" ><br \/>\nAPI&#039;yi test edin<\/h5>\n<p>API u\u00e7 noktas\u0131n\u0131 curl komutuyla a\u015fa\u011f\u0131daki gibi test edebiliriz:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>curl -X POST -H \"Content-Type: application\/json\" -d '{\"question\":\"How can I clean my windshield?\"}' http:\/\/quest-Publi-abc-xxxx.us-east-1.elb.amazonaws.com\/qa\r\n<\/code><\/pre>\n<\/div>\n<p>A\u015fa\u011f\u0131daki gibi bir cevap g\u00f6rece\u011fiz.<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>{\"response\":\"To clean sensors and camera lenses, use a cloth moistened with a small amount of glass detergent.\"}\r\n<\/code><\/pre>\n<\/div>\n<h2 id=\"%d9%85%d8%b1%d8%ad%d9%84%d9%87-7-%d8%a7%db%8c%d8%ac%d8%a7%d8%af-%d9%88-%d8%a7%d8%b3%d8%aa%d9%82%d8%b1%d8%a7%d8%b1-%d9%88%d8%a8-%d8%b3%d8%a7%db%8c%d8%aa-%d8%a8%d8%a7-%da%86%d8%aa-%d8%a8%d8%a7\">Ad\u0131m 7 \u2013 Entegre bir sohbet robotu i\u00e7eren bir web sitesi olu\u015fturun ve da\u011f\u0131t\u0131n<\/h2>\n<p>Ard\u0131ndan, API&#039;yi g\u00f6m\u00fcl\u00fc sohbet robotuyla bir HTML web sitesine entegre eden tam y\u0131\u011f\u0131n i\u015flem hatt\u0131m\u0131z\u0131n son ad\u0131m\u0131na ge\u00e7iyoruz. Bu web sitesi ve g\u00f6m\u00fcl\u00fc sohbet robotu i\u00e7in kaynak kodumuz, sohbet robotu olarak a\u00e7\u0131k kaynakl\u0131 botkit.js ile entegre edilmi\u015f bir index.html dosyas\u0131ndan olu\u015fan bir Nodejs uygulamas\u0131d\u0131r. \u0130\u015fleri kolayla\u015ft\u0131rmak i\u00e7in bir Dockerfile olu\u015fturdum ve bunu homegrown_website_and_bot klas\u00f6r\u00fcndeki kodla birlikte verdim. \u00d6n u\u00e7 web sitesi i\u00e7in Docker G\u00f6r\u00fcnt\u00fcs\u00fcn\u00fc olu\u015fturup Amazon ECR&#039;ye g\u00f6ndermek i\u00e7in AWS CLI ve Docker CLI&#039;yi kullanaca\u011f\u0131z. A\u015fa\u011f\u0131daki t\u00fcm komutlarda, Do\u011fru AWS hesap numaras\u0131yla de\u011fi\u015ftirin.<\/p>\n<p>Bir kimlik do\u011frulama belirteci al\u0131n ve Docker istemcisini AWS CLI&#039;daki kay\u0131t defterinde do\u011frulay\u0131n.<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin &lt;AWS Account Number&gt;.dkr.ecr.us-east-1.amazonaws.com \r\n<\/code><\/pre>\n<\/div>\n<p>A\u015fa\u011f\u0131daki komutu kullanarak Docker g\u00f6r\u00fcnt\u00fcs\u00fcn\u00fc olu\u015fturun:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>docker build -t web-chat-frontend .\r\n<\/code><\/pre>\n<\/div>\n<p>Derleme tamamland\u0131ktan sonra, g\u00f6r\u00fcnt\u00fcy\u00fc etiketleyin, b\u00f6ylece g\u00f6r\u00fcnt\u00fcy\u00fc bu depoya g\u00f6nderebiliriz:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>docker tag web-chat-frontend:latest &lt;AWS Account Number&gt;.dkr.ecr.us-east-1.amazonaws.com\/web-chat-frontend:latest\r\n<\/code><\/pre>\n<\/div>\n<p>Bu g\u00f6r\u00fcnt\u00fcy\u00fc yeni Amazon ECR deposuna g\u00f6ndermek i\u00e7in a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>docker push &lt;AWS Account Number&gt;.dkr.ecr.us-east-1.amazonaws.com\/web-chat-frontend:latest\r\n<\/code><\/pre>\n<\/div>\n<p>Web sitesinin Docker g\u00f6r\u00fcnt\u00fcs\u00fc ECR deposuna y\u00fcklendikten sonra, Infrastructure\\fargate-website-chatbot.yaml dosyas\u0131n\u0131 \u00e7al\u0131\u015ft\u0131rarak \u00f6n u\u00e7 i\u00e7in CloudFormation y\u0131\u011f\u0131n\u0131n\u0131 olu\u015fturuyoruz. Parametreleri AWS ortam\u0131yla e\u015fle\u015fecek \u015fekilde ge\u00e7ersiz k\u0131lmam\u0131z gerekiyor. aws cloudformation create-stack komutunda g\u00fcncellenecek temel parametreler \u015funlard\u0131r:<\/p>\n<ul>\n<li>DemoVPC: Bu parametre, web sitenizin da\u011f\u0131t\u0131laca\u011f\u0131 sanal \u00f6zel bulutu (VPC) belirtir.<\/li>\n<li>PublicSubnetIds: Bu parametre, web sitesi y\u00fck dengeleyicinizin ve g\u00f6revlerinizin yerle\u015ftirilece\u011fi genel alt a\u011f kimliklerinin bir listesini gerektirir.<\/li>\n<li>IMAGENAME: Web siteniz i\u00e7in Amazon Elastic Container Registry&#039;deki (ECR) Docker g\u00f6r\u00fcnt\u00fcs\u00fcn\u00fcn ad\u0131n\u0131 girin.<\/li>\n<li>QUESTURL: 6. ad\u0131mda da\u011f\u0131t\u0131lan API u\u00e7 noktas\u0131n\u0131n URL&#039;sini belirtin. Bi\u00e7imi http:\/\/&#039;dir. \/qa&#039;d\u0131r.<\/li>\n<\/ul>\n<p>CloudFormation y\u0131\u011f\u0131n\u0131 olu\u015fturma i\u015flemini ger\u00e7ekle\u015ftirmek i\u00e7in, parametre de\u011ferlerini g\u00fcncelledikten sonra a\u015fa\u011f\u0131daki AWS CLI komutunu kullan\u0131r\u0131z:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>aws cloudformation create-stack \\\r\n--stack-name ecs-website-chatbot \\\r\n--template-body file:\/\/fargate-website-chatbot.yaml \\\r\n--parameters \\\r\nParameterKey=DemoVPC,ParameterValue=vpc-12345 \\\r\nParameterKey=PublicSubnetIds,ParameterValue=subnet-1,subnet-2 \\\r\nParameterKey=Imagename,ParameterValue=123456.dkr.ecr.us-east-1.amazonaws.com\/web-chat-frontend:latest \\\r\nParameterKey=QUESTURL,ParameterValue=http:\/\/your-api-alb-dns-name\/qa<\/code><\/pre>\n<\/div>\n<h2 id=\"%d9%85%d8%b1%d8%ad%d9%84%d9%87-8-%d8%af%d8%b3%d8%aa%db%8c%d8%a7%d8%b1-%d9%87%d9%88%d8%b4-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c-car-savvy-%d8%b1%d8%a7-%d8%a8%d8%b1%d8%b1%d8%b3%db%8c-%da%a9%d9%86\">Ad\u0131m 8 \u2013 Car Savvy AI Assistant&#039;\u0131 inceleyin<\/h2>\n<p>Yukar\u0131da belirtilen CloudFormation y\u0131\u011f\u0131n\u0131n\u0131 ba\u015far\u0131yla olu\u015fturduktan sonra, AWS konsoluna gidin ve ecs-website-chatbot y\u0131\u011f\u0131n\u0131 i\u00e7in CloudFormation \u00c7\u0131kt\u0131lar\u0131 sekmesine eri\u015fin. Bu sekmede, \u00f6n u\u00e7la ili\u015fkili Uygulama Y\u00fck Dengeleyici&#039;nin (ALB) DNS ad\u0131n\u0131 bulaca\u011f\u0131z. \u00c7\u0131kt\u0131n\u0131n nas\u0131l g\u00f6r\u00fcnebilece\u011fine dair bir \u00f6rnek a\u015fa\u011f\u0131da verilmi\u015ftir:<\/p>\n<p><img  loading=\"lazy\"  decoding=\"async\"  src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEUAAP+KeNJXAAAAAXRSTlMAQObYZgAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAApJREFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=\"  alt=\"\"  width=\"750\"  height=\"248\"  class=\"aligncenter wp-image-15146 size-full pk-lazyload\"  data-pk-sizes=\"auto\"  data-ls-sizes=\"auto, (max-width: 750px) 100vw, 750px\"  data-pk-src=\"https:\/\/cdn.itpiran.net\/2024\/03\/31161224\/14-1.webp\"  data-pk-srcset=\"https:\/\/cdn.itpiran.net\/2024\/03\/31161224\/14-1.webp 750w, https:\/\/cdn.itpiran.net\/2024\/03\/31161224\/14-1-300x99.webp 300w, https:\/\/cdn.itpiran.net\/2024\/03\/31161224\/14-1-110x36.webp 110w, https:\/\/cdn.itpiran.net\/2024\/03\/31161224\/14-1-200x66.webp 200w, https:\/\/cdn.itpiran.net\/2024\/03\/31161224\/14-1-380x126.webp 380w, https:\/\/cdn.itpiran.net\/2024\/03\/31161224\/14-1-255x84.webp 255w, https:\/\/cdn.itpiran.net\/2024\/03\/31161224\/14-1-550x182.webp 550w\" ><br \/>\nWeb sitesinin nas\u0131l g\u00f6r\u00fcnd\u00fc\u011f\u00fcn\u00fc g\u00f6rmek i\u00e7in taray\u0131c\u0131daki u\u00e7 nokta URL&#039;sini aray\u0131n. Yerle\u015fik sohbet robotuna do\u011fal dil sorular\u0131 sorun. Sorabilece\u011fimiz sorulardan baz\u0131lar\u0131 \u015funlard\u0131r: &quot;\u00d6n cam\u0131m\u0131 nas\u0131l temizlerim?&quot;, &quot;\u015easi numaras\u0131n\u0131 nerede bulabilirim?&quot;, &quot;G\u00fcvenlik kusurunu nas\u0131l bildirebilirim?&quot;\u201c<\/p>\n<h5 id=\"%d8%a8%d8%b9%d8%af-%da%86%db%8c%d8%9f\"><img  loading=\"lazy\"  decoding=\"async\"  src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEUAAP+KeNJXAAAAAXRSTlMAQObYZgAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAApJREFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=\"  alt=\"\"  width=\"750\"  height=\"418\"  class=\"aligncenter wp-image-15147 size-full pk-lazyload\"  data-pk-sizes=\"auto\"  data-ls-sizes=\"auto, (max-width: 750px) 100vw, 750px\"  data-pk-src=\"https:\/\/cdn.itpiran.net\/2024\/03\/31161325\/15-1.webp\"  data-pk-srcset=\"https:\/\/cdn.itpiran.net\/2024\/03\/31161325\/15-1.webp 750w, https:\/\/cdn.itpiran.net\/2024\/03\/31161325\/15-1-300x167.webp 300w, https:\/\/cdn.itpiran.net\/2024\/03\/31161325\/15-1-110x61.webp 110w, https:\/\/cdn.itpiran.net\/2024\/03\/31161325\/15-1-200x111.webp 200w, https:\/\/cdn.itpiran.net\/2024\/03\/31161325\/15-1-380x212.webp 380w, https:\/\/cdn.itpiran.net\/2024\/03\/31161325\/15-1-255x142.webp 255w, https:\/\/cdn.itpiran.net\/2024\/03\/31161325\/15-1-550x307.webp 550w\" ><br \/>\nS\u0131rada ne var?<\/h5>\n<p>Umar\u0131m yukar\u0131daki bilgiler, LLM&#039;leriniz i\u00e7in kendi \u00fcretime haz\u0131r s\u00fcre\u00e7lerinizi nas\u0131l olu\u015fturabilece\u011finizi ve bu s\u00fcreci \u00f6n u\u00e7 sohbet robotlar\u0131n\u0131z ve g\u00f6m\u00fcl\u00fc NLP&#039;nizle nas\u0131l entegre edebilece\u011finizi g\u00f6sterir. A\u00e7\u0131k kaynak teknolojileri, analitik, makine \u00f6\u011frenimi ve AWS kullan\u0131m\u0131 hakk\u0131nda ba\u015fka neler okumak istedi\u011finizi bana bildirin!<\/p>\n<p>\u00d6\u011frenme yolculu\u011funuza devam ederken, G\u00f6mmeler, Vekt\u00f6r Veritabanlar\u0131, LangChain ve di\u011fer bir\u00e7ok LLM program\u0131n\u0131 derinlemesine incelemenizi tavsiye ederim. Bunlar, Amazon SageMaker JumpStart&#039;\u0131n yan\u0131 s\u0131ra bu e\u011fitimde kulland\u0131\u011f\u0131m\u0131z Amazon OpenSearch, Docker Containers ve Fargate gibi AWS ara\u00e7lar\u0131nda da mevcuttur. Bu teknolojilerde uzmanla\u015fman\u0131za yard\u0131mc\u0131 olacak baz\u0131 ad\u0131mlar \u015funlard\u0131r:<\/p>\n<ol>\n<li>Amazon SageMaker: SageMaker&#039;da ilerledik\u00e7e sundu\u011fu di\u011fer algoritmalara da a\u015fina olun.<\/li>\n<li>AMAZON-A\u00c7IK ARAMA: K-NN algoritmas\u0131 ve di\u011fer mesafe algoritmalar\u0131 hakk\u0131nda bilgi edinin<\/li>\n<li>LangChain: LangChain, LLM kullanarak uygulama olu\u015fturmay\u0131 kolayla\u015ft\u0131rmak i\u00e7in tasarlanm\u0131\u015f bir \u00e7er\u00e7evedir.<\/li>\n<li>G\u00f6mmeler: G\u00f6mme, bir bilgi par\u00e7as\u0131n\u0131n (\u00f6rne\u011fin metin, belgeler, resimler, ses vb.) say\u0131sal bir g\u00f6sterimidir.<\/li>\n<li>Amazon SageMaker JumpStart: SageMaker JumpStart, makine \u00f6\u011frenimine ba\u015flaman\u0131za yard\u0131mc\u0131 olmak i\u00e7in \u00e7ok \u00e7e\u015fitli problem t\u00fcrleri i\u00e7in \u00f6nceden e\u011fitilmi\u015f, a\u00e7\u0131k kaynakl\u0131 modeller sunar.<\/li>\n<\/ol>\n<h5 id=\"%d9%be%d8%a7%da%a9-%da%a9%d8%b1%d8%af%d9%86\">Sil<\/h5>\n<ol>\n<li>AWS CLI&#039;da oturum a\u00e7\u0131n. AWS CLI&#039;n\u0131n bu i\u015flemleri ger\u00e7ekle\u015ftirmek i\u00e7in gerekli izinlerle d\u00fczg\u00fcn bir \u015fekilde yap\u0131land\u0131r\u0131ld\u0131\u011f\u0131ndan emin olun.<\/li>\n<li>A\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131rarak PDF dosyas\u0131n\u0131 Amazon S3 kovan\u0131zdan silin. Kovan\u0131z\u0131n ad\u0131n\u0131 Amazon S3 kovan\u0131z\u0131n ger\u00e7ek ad\u0131yla de\u011fi\u015ftirin ve gerekirse PDF dosyan\u0131z\u0131n yolunu ayarlay\u0131n.<\/li>\n<\/ol>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code>aws s3 rm s3:\/\/your-bucket-name\/path\/to\/your-pdf-file.pdf\r\n<\/code><\/pre>\n<\/div>\n<p>CloudFormation y\u0131\u011f\u0131nlar\u0131n\u0131 silin. Y\u0131\u011f\u0131n adlar\u0131n\u0131 CloudFormation y\u0131\u011f\u0131nlar\u0131n\u0131z\u0131n ger\u00e7ek adlar\u0131yla de\u011fi\u015ftirin.<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code># Delete 'ecs-website-chatbot' stack\r\naws cloudformation delete-stack --stack-name ecs-website-chatbot\r\n# Delete 'ecs-questionanswer-llm' stack\r\naws cloudformation delete-stack --stack-name ecs-questionanswer-llm\r\n# Delete 'ecs-embeddings-vectordb' stack\r\naws cloudformation delete-stack --stack-name ecs-embeddings-vectordb\r\n# Delete 'opensearch-vectordb' stack\r\naws cloudformation delete-stack --stack-name opensearch-vectordb<\/code><\/pre>\n<\/div>\n<div class=\"mdxdivp my-0\">SageMaker u\u00e7 noktalar\u0131n\u0131 silin. u\u00e7 nokta ad\u0131-1 ve u\u00e7 nokta ad\u0131-2&#039;yi SageMaker u\u00e7 noktalar\u0131n\u0131n adlar\u0131yla de\u011fi\u015ftirin.<\/div>\n<div>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-plain\" data-lang=\"Plain Text\"><code># Delete SageMaker endpoint 1\r\naws sagemaker delete-endpoint --endpoint-name endpoint-name-1\r\n# Delete SageMaker endpoint 2\r\naws sagemaker delete-endpoint --endpoint-name endpoint-name-2<\/code><\/pre>\n<\/div>\n<\/div>\n<h2 id=\"%d9%86%d8%aa%db%8c%d8%ac%d9%87\">Sonu\u00e7<\/h2>\n<p>Bu e\u011fitimde, AWS teknolojilerini ve a\u00e7\u0131k kaynakl\u0131 ara\u00e7lar\u0131 kullanarak tam kapsaml\u0131 bir soru-cevap sohbet robotu geli\u015ftirdik. Amazon OpenSearch&#039;\u00fc vekt\u00f6r veritaban\u0131, GPT-J 6B FP16 yerle\u015ftirme modeli olarak entegre ettik ve LLM ile Langchain&#039;i kulland\u0131k. Sohbet robotu, yap\u0131land\u0131r\u0131lmam\u0131\u015f belgelerden i\u00e7g\u00f6r\u00fcler elde ediyor.<\/p>","protected":false},"excerpt":{"rendered":"Giri\u015f Yap\u0131land\u0131r\u0131lmam\u0131\u015f verilerinizle sohbet edebildi\u011finizi ve de\u011ferli bilgileri sunabildi\u011finizi hayal edin\u2026","protected":false},"author":1,"featured_media":15159,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_yoast_wpseo_focuskw":"\u0633\u0627\u062e\u062a \u06cc\u06a9 \u0686\u062a \u0628\u0627\u062a Full Stack","_yoast_wpseo_title":"","_yoast_wpseo_metadesc":"","_yoast_wpseo_canonical":"","_yoast_wpseo_opengraph-description":"","_yoast_wpseo_opengraph-image":"","_yoast_wpseo_twitter-description":"","_yoast_wpseo_twitter-image":"","_yoast_wpseo_focuskeywords":"","_yoast_wpseo_primary_category":"220","footnotes":""},"categories":[220,193],"tags":[366],"class_list":{"0":"post-15132","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-amazon","8":"category-tutorials","9":"tag-366"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>\u0633\u0627\u062e\u062a \u06cc\u06a9 \u0686\u062a \u0628\u0627\u062a Full Stack \u0642\u062f\u0631\u062a\u0645\u0646\u062f \u0628\u0627 \u0627\u0633\u062a\u062e\u0631\u0627\u062c \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0627\u0632 \u0627\u0633\u0646\u0627\u062f \u0628\u062f\u0648\u0646 \u0633\u0627\u062e\u062a\u0627\u0631 - \u0628\u0644\u0627\u06af ITPiran<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.itpiran.net\/blog\/tr\/amazon\/fullstack-llm-langchain-chatbot-on-aws\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u0633\u0627\u062e\u062a \u06cc\u06a9 \u0686\u062a \u0628\u0627\u062a Full Stack \u0642\u062f\u0631\u062a\u0645\u0646\u062f \u0628\u0627 \u0627\u0633\u062a\u062e\u0631\u0627\u062c \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0627\u0632 \u0627\u0633\u0646\u0627\u062f \u0628\u062f\u0648\u0646 \u0633\u0627\u062e\u062a\u0627\u0631 - \u0628\u0644\u0627\u06af ITPiran\" \/>\n<meta property=\"og:description\" content=\"\u0645\u0642\u062f\u0645\u0647 \u062a\u0635\u0648\u0631 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0628\u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0627 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0628\u062f\u0648\u0646 \u0633\u0627\u062e\u062a\u0627\u0631 \u062e\u0648\u062f \u0645\u06a9\u0627\u0644\u0645\u0647 \u06a9\u0646\u06cc\u062f \u0648 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0627\u0631\u0632\u0634\u0645\u0646\u062f \u0631\u0627 \u0628\u0647&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.itpiran.net\/blog\/tr\/amazon\/fullstack-llm-langchain-chatbot-on-aws\/\" \/>\n<meta property=\"og:site_name\" content=\"\u0628\u0644\u0627\u06af ITPiran\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-31T14:55:36+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-31T15:55:29+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.itpiran.net\/2024\/03\/31192501\/chat-bot.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1793\" \/>\n\t<meta property=\"og:image:height\" content=\"1110\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/amazon\\\/fullstack-llm-langchain-chatbot-on-aws\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/amazon\\\/fullstack-llm-langchain-chatbot-on-aws\\\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#\\\/schema\\\/person\\\/04ed27b919baca468a2273f8e4318f81\"},\"headline\":\"\u0633\u0627\u062e\u062a \u06cc\u06a9 \u0686\u062a \u0628\u0627\u062a Full Stack \u0642\u062f\u0631\u062a\u0645\u0646\u062f \u0628\u0627 \u0627\u0633\u062a\u062e\u0631\u0627\u062c \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0627\u0632 \u0627\u0633\u0646\u0627\u062f \u0628\u062f\u0648\u0646 \u0633\u0627\u062e\u062a\u0627\u0631\",\"datePublished\":\"2024-03-31T14:55:36+00:00\",\"dateModified\":\"2024-03-31T15:55:29+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/amazon\\\/fullstack-llm-langchain-chatbot-on-aws\\\/\"},\"wordCount\":485,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/amazon\\\/fullstack-llm-langchain-chatbot-on-aws\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/cdn.itpiran.net\\\/2024\\\/03\\\/31192501\\\/chat-bot.jpg\",\"keywords\":[\"\u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc\"],\"articleSection\":[\"\u0622\u0645\u0627\u0632\u0648\u0646\",\"\u0622\u0645\u0648\u0632\u0634\u06cc\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/amazon\\\/fullstack-llm-langchain-chatbot-on-aws\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/amazon\\\/fullstack-llm-langchain-chatbot-on-aws\\\/\",\"url\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/amazon\\\/fullstack-llm-langchain-chatbot-on-aws\\\/\",\"name\":\"\u0633\u0627\u062e\u062a \u06cc\u06a9 \u0686\u062a \u0628\u0627\u062a Full Stack \u0642\u062f\u0631\u062a\u0645\u0646\u062f \u0628\u0627 \u0627\u0633\u062a\u062e\u0631\u0627\u062c \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0627\u0632 \u0627\u0633\u0646\u0627\u062f \u0628\u062f\u0648\u0646 \u0633\u0627\u062e\u062a\u0627\u0631 - \u0628\u0644\u0627\u06af ITPiran\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/amazon\\\/fullstack-llm-langchain-chatbot-on-aws\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/amazon\\\/fullstack-llm-langchain-chatbot-on-aws\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/cdn.itpiran.net\\\/2024\\\/03\\\/31192501\\\/chat-bot.jpg\",\"datePublished\":\"2024-03-31T14:55:36+00:00\",\"dateModified\":\"2024-03-31T15:55:29+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/amazon\\\/fullstack-llm-langchain-chatbot-on-aws\\\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/amazon\\\/fullstack-llm-langchain-chatbot-on-aws\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/amazon\\\/fullstack-llm-langchain-chatbot-on-aws\\\/#primaryimage\",\"url\":\"https:\\\/\\\/cdn.itpiran.net\\\/2024\\\/03\\\/31192501\\\/chat-bot.jpg\",\"contentUrl\":\"https:\\\/\\\/cdn.itpiran.net\\\/2024\\\/03\\\/31192501\\\/chat-bot.jpg\",\"width\":1793,\"height\":1110},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/amazon\\\/fullstack-llm-langchain-chatbot-on-aws\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u0622\u0645\u0627\u0632\u0648\u0646\",\"item\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/category\\\/amazon\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"\u0633\u0627\u062e\u062a \u06cc\u06a9 \u0686\u062a \u0628\u0627\u062a Full Stack \u0642\u062f\u0631\u062a\u0645\u0646\u062f \u0628\u0627 \u0627\u0633\u062a\u062e\u0631\u0627\u062c \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0627\u0632 \u0627\u0633\u0646\u0627\u062f \u0628\u062f\u0648\u0646 \u0633\u0627\u062e\u062a\u0627\u0631\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/\",\"name\":\"\u0628\u0644\u0627\u06af ITPiran\",\"description\":\"\u0627\u062e\u0628\u0627\u0631 \u0648 \u0645\u0642\u0627\u0644\u0627\u062a \u062a\u062c\u0627\u0631\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u06cc\u0631\u0627\u0646\u06cc\u0627\u0646\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#organization\",\"name\":\"\u0628\u0644\u0627\u06af \u062a\u062c\u0627\u0631\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u06cc\u0631\u0627\u0646\u06cc\u0627\u0646\",\"alternateName\":\"ITPIran Blog\",\"url\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/cdn.itpiran.net\\\/2023\\\/12\\\/27150508\\\/cropped-ITPIRAN-BLOG-LOGO-2.png\",\"contentUrl\":\"https:\\\/\\\/cdn.itpiran.net\\\/2023\\\/12\\\/27150508\\\/cropped-ITPIRAN-BLOG-LOGO-2.png\",\"width\":512,\"height\":512,\"caption\":\"\u0628\u0644\u0627\u06af \u062a\u062c\u0627\u0631\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u06cc\u0631\u0627\u0646\u06cc\u0627\u0646\"},\"image\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#\\\/schema\\\/person\\\/04ed27b919baca468a2273f8e4318f81\",\"name\":\"admin\",\"url\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tr\\\/author\\\/admin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Yap\u0131land\u0131r\u0131lmam\u0131\u015f Belgelerden Bilgi \u00c7\u0131kararak G\u00fc\u00e7l\u00fc Bir Tam Y\u0131\u011f\u0131n Sohbet Robotu Olu\u015fturma - ITPiran Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.itpiran.net\/blog\/tr\/amazon\/fullstack-llm-langchain-chatbot-on-aws\/","og_locale":"tr_TR","og_type":"article","og_title":"\u0633\u0627\u062e\u062a \u06cc\u06a9 \u0686\u062a \u0628\u0627\u062a Full Stack \u0642\u062f\u0631\u062a\u0645\u0646\u062f \u0628\u0627 \u0627\u0633\u062a\u062e\u0631\u0627\u062c \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0627\u0632 \u0627\u0633\u0646\u0627\u062f \u0628\u062f\u0648\u0646 \u0633\u0627\u062e\u062a\u0627\u0631 - \u0628\u0644\u0627\u06af ITPiran","og_description":"\u0645\u0642\u062f\u0645\u0647 \u062a\u0635\u0648\u0631 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0628\u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0627 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0628\u062f\u0648\u0646 \u0633\u0627\u062e\u062a\u0627\u0631 \u062e\u0648\u062f \u0645\u06a9\u0627\u0644\u0645\u0647 \u06a9\u0646\u06cc\u062f \u0648 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0627\u0631\u0632\u0634\u0645\u0646\u062f \u0631\u0627 \u0628\u0647&hellip;","og_url":"https:\/\/www.itpiran.net\/blog\/tr\/amazon\/fullstack-llm-langchain-chatbot-on-aws\/","og_site_name":"\u0628\u0644\u0627\u06af ITPiran","article_published_time":"2024-03-31T14:55:36+00:00","article_modified_time":"2024-03-31T15:55:29+00:00","og_image":[{"width":1793,"height":1110,"url":"https:\/\/cdn.itpiran.net\/2024\/03\/31192501\/chat-bot.jpg","type":"image\/jpeg"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"admin","Tahmini okuma s\u00fcresi":"5 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.itpiran.net\/blog\/amazon\/fullstack-llm-langchain-chatbot-on-aws\/#article","isPartOf":{"@id":"https:\/\/www.itpiran.net\/blog\/amazon\/fullstack-llm-langchain-chatbot-on-aws\/"},"author":{"name":"admin","@id":"https:\/\/www.itpiran.net\/blog\/#\/schema\/person\/04ed27b919baca468a2273f8e4318f81"},"headline":"\u0633\u0627\u062e\u062a \u06cc\u06a9 \u0686\u062a \u0628\u0627\u062a Full Stack \u0642\u062f\u0631\u062a\u0645\u0646\u062f \u0628\u0627 \u0627\u0633\u062a\u062e\u0631\u0627\u062c \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0627\u0632 \u0627\u0633\u0646\u0627\u062f \u0628\u062f\u0648\u0646 \u0633\u0627\u062e\u062a\u0627\u0631","datePublished":"2024-03-31T14:55:36+00:00","dateModified":"2024-03-31T15:55:29+00:00","mainEntityOfPage":{"@id":"https:\/\/www.itpiran.net\/blog\/amazon\/fullstack-llm-langchain-chatbot-on-aws\/"},"wordCount":485,"commentCount":0,"publisher":{"@id":"https:\/\/www.itpiran.net\/blog\/#organization"},"image":{"@id":"https:\/\/www.itpiran.net\/blog\/amazon\/fullstack-llm-langchain-chatbot-on-aws\/#primaryimage"},"thumbnailUrl":"https:\/\/cdn.itpiran.net\/2024\/03\/31192501\/chat-bot.jpg","keywords":["\u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc"],"articleSection":["\u0622\u0645\u0627\u0632\u0648\u0646","\u0622\u0645\u0648\u0632\u0634\u06cc"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.itpiran.net\/blog\/amazon\/fullstack-llm-langchain-chatbot-on-aws\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.itpiran.net\/blog\/amazon\/fullstack-llm-langchain-chatbot-on-aws\/","url":"https:\/\/www.itpiran.net\/blog\/amazon\/fullstack-llm-langchain-chatbot-on-aws\/","name":"Yap\u0131land\u0131r\u0131lmam\u0131\u015f Belgelerden Bilgi \u00c7\u0131kararak G\u00fc\u00e7l\u00fc Bir Tam Y\u0131\u011f\u0131n Sohbet Robotu Olu\u015fturma - ITPiran Blog","isPartOf":{"@id":"https:\/\/www.itpiran.net\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.itpiran.net\/blog\/amazon\/fullstack-llm-langchain-chatbot-on-aws\/#primaryimage"},"image":{"@id":"https:\/\/www.itpiran.net\/blog\/amazon\/fullstack-llm-langchain-chatbot-on-aws\/#primaryimage"},"thumbnailUrl":"https:\/\/cdn.itpiran.net\/2024\/03\/31192501\/chat-bot.jpg","datePublished":"2024-03-31T14:55:36+00:00","dateModified":"2024-03-31T15:55:29+00:00","breadcrumb":{"@id":"https:\/\/www.itpiran.net\/blog\/amazon\/fullstack-llm-langchain-chatbot-on-aws\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.itpiran.net\/blog\/amazon\/fullstack-llm-langchain-chatbot-on-aws\/"]}]},{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/www.itpiran.net\/blog\/amazon\/fullstack-llm-langchain-chatbot-on-aws\/#primaryimage","url":"https:\/\/cdn.itpiran.net\/2024\/03\/31192501\/chat-bot.jpg","contentUrl":"https:\/\/cdn.itpiran.net\/2024\/03\/31192501\/chat-bot.jpg","width":1793,"height":1110},{"@type":"BreadcrumbList","@id":"https:\/\/www.itpiran.net\/blog\/amazon\/fullstack-llm-langchain-chatbot-on-aws\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.itpiran.net\/blog\/"},{"@type":"ListItem","position":2,"name":"\u0622\u0645\u0627\u0632\u0648\u0646","item":"https:\/\/www.itpiran.net\/blog\/category\/amazon\/"},{"@type":"ListItem","position":3,"name":"\u0633\u0627\u062e\u062a \u06cc\u06a9 \u0686\u062a \u0628\u0627\u062a Full Stack \u0642\u062f\u0631\u062a\u0645\u0646\u062f \u0628\u0627 \u0627\u0633\u062a\u062e\u0631\u0627\u062c \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0627\u0632 \u0627\u0633\u0646\u0627\u062f \u0628\u062f\u0648\u0646 \u0633\u0627\u062e\u062a\u0627\u0631"}]},{"@type":"WebSite","@id":"https:\/\/www.itpiran.net\/blog\/#website","url":"https:\/\/www.itpiran.net\/blog\/","name":"ITPiran Blog","description":"\u0130ran S\u00fcrd\u00fcr\u00fclebilir Ticaret Haberleri ve Makaleleri","publisher":{"@id":"https:\/\/www.itpiran.net\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.itpiran.net\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":"Organization","@id":"https:\/\/www.itpiran.net\/blog\/#organization","name":"S\u00fcrd\u00fcr\u00fclebilir \u0130ran \u0130\u015fletmeleri Blogu","alternateName":"ITPIran Blog","url":"https:\/\/www.itpiran.net\/blog\/","logo":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/www.itpiran.net\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/cdn.itpiran.net\/2023\/12\/27150508\/cropped-ITPIRAN-BLOG-LOGO-2.png","contentUrl":"https:\/\/cdn.itpiran.net\/2023\/12\/27150508\/cropped-ITPIRAN-BLOG-LOGO-2.png","width":512,"height":512,"caption":"\u0628\u0644\u0627\u06af \u062a\u062c\u0627\u0631\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u06cc\u0631\u0627\u0646\u06cc\u0627\u0646"},"image":{"@id":"https:\/\/www.itpiran.net\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.itpiran.net\/blog\/#\/schema\/person\/04ed27b919baca468a2273f8e4318f81","name":"y\u00f6netici","url":"https:\/\/www.itpiran.net\/blog\/tr\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.itpiran.net\/blog\/tr\/wp-json\/wp\/v2\/posts\/15132","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.itpiran.net\/blog\/tr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.itpiran.net\/blog\/tr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/tr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/tr\/wp-json\/wp\/v2\/comments?post=15132"}],"version-history":[{"count":2,"href":"https:\/\/www.itpiran.net\/blog\/tr\/wp-json\/wp\/v2\/posts\/15132\/revisions"}],"predecessor-version":[{"id":15160,"href":"https:\/\/www.itpiran.net\/blog\/tr\/wp-json\/wp\/v2\/posts\/15132\/revisions\/15160"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/tr\/wp-json\/wp\/v2\/media\/15159"}],"wp:attachment":[{"href":"https:\/\/www.itpiran.net\/blog\/tr\/wp-json\/wp\/v2\/media?parent=15132"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/tr\/wp-json\/wp\/v2\/categories?post=15132"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/tr\/wp-json\/wp\/v2\/tags?post=15132"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}