{"id":29646,"date":"2025-09-17T21:02:39","date_gmt":"2025-09-17T18:02:39","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/docs-aware-chatbot-react-vite-node-ve-openai-ile-gelistirme\/"},"modified":"2025-09-17T21:02:39","modified_gmt":"2025-09-17T18:02:39","slug":"docs-aware-chatbot-react-vite-node-ve-openai-ile-gelistirme","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/docs-aware-chatbot-react-vite-node-ve-openai-ile-gelistirme\/","title":{"rendered":"Docs-Aware Chatbot: React, Vite, Node ve OpenAI ile Geli\u015ftirme"},"content":{"rendered":"<p>Docs-Aware Chatbot: React, Vite, Node ve OpenAI ile Geli\u015ftirme<\/p>\n<p>G\u00fcn\u00fcm\u00fczde, kullan\u0131c\u0131 deneyimini iyile\u015ftirmek ve bilgiye h\u0131zl\u0131 eri\u015fimi sa\u011flamak i\u00e7in ak\u0131ll\u0131 chatbotlar giderek daha \u00f6nemli hale geliyor.  Bu makalede,  React, Vite, Node.js ve OpenAI API&#039;lerini kullanarak dok\u00fcman tabanl\u0131 bir chatbot nas\u0131l geli\u015ftirilece\u011fini ad\u0131m ad\u0131m ele alaca\u011f\u0131z.  DALL\u00b7E ile olu\u015fturulmu\u015f e\u011flenceli avatarlar ekleyerek, chatbot&#039;unuzu daha etkile\u015fimli ve kullan\u0131c\u0131 dostu hale getirece\u011fiz.  Bu rehber, hem yeni ba\u015flayanlar hem de deneyimli geli\u015ftiriciler i\u00e7in faydal\u0131 bilgiler sunacakt\u0131r.<\/p>\n<h2>Docs-Aware Chatbot Nedir ve Neden \u00d6nemlidir?<\/h2>\n<p>Docs-Aware chatbotlar, \u00f6nceden beslenen dok\u00fcmanlar (PDF, Markdown, web siteleri vb.) \u00fczerinde e\u011fitilmi\u015f ve bu dok\u00fcmanlardaki bilgiye dayanarak sorular\u0131 cevaplayan sohbet robotlar\u0131d\u0131r.  Bu, kullan\u0131c\u0131lar\u0131n karma\u015f\u0131k dok\u00fcmanlar aras\u0131nda arama yapma zahmetinden kurtulmas\u0131n\u0131 ve ihtiya\u00e7 duyduklar\u0131 bilgiye h\u0131zl\u0131ca ula\u015fmas\u0131n\u0131 sa\u011flar. \u00d6rne\u011fin, bir \u015firketin i\u00e7 dok\u00fcmanlar\u0131na eri\u015fimi olan bir chatbot, \u00e7al\u0131\u015fanlar\u0131n s\u0131k\u00e7a sordu\u011fu sorular\u0131 yan\u0131tlayabilir, \u015firket politikalar\u0131n\u0131 a\u00e7\u0131klayabilir veya belirli prosed\u00fcrleri ad\u0131m ad\u0131m anlatabilir.  Bu da verimlili\u011fi art\u0131r\u0131r ve \u00e7al\u0131\u015fanlar\u0131n bilgi bulma s\u00fcre\u00e7lerini kolayla\u015ft\u0131r\u0131r.  Bunun yan\u0131 s\u0131ra, m\u00fc\u015fteri hizmetlerinde, e\u011fitim materyallerinde ve daha bir\u00e7ok alanda da b\u00fcy\u00fck kolayl\u0131k sa\u011flar.  Dolay\u0131s\u0131yla, docs-aware chatbotlar i\u015fletmeler i\u00e7in b\u00fcy\u00fck bir de\u011fer sunar.  \u00d6zellikle b\u00fcy\u00fck miktarda dok\u00fcmana sahip \u015firketler i\u00e7in, bu teknoloji zamandan ve kaynaktan tasarruf sa\u011flar.<\/p>\n<h2>Temel Kavramlar: React, Vite, Node.js ve OpenAI<\/h2>\n<h3>React ile Kullan\u0131c\u0131 Aray\u00fcz\u00fc Tasar\u0131m\u0131 Nas\u0131l Yap\u0131l\u0131r?<\/h3>\n<p>React, kullan\u0131c\u0131 aray\u00fczleri olu\u015fturmak i\u00e7in kullan\u0131lan pop\u00fcler bir JavaScript k\u00fct\u00fcphanesidir.  Komponent tabanl\u0131 yap\u0131s\u0131 sayesinde, kodun tekrar kullan\u0131labilirli\u011fini ve s\u00fcrd\u00fcr\u00fclebilirli\u011fini art\u0131r\u0131r.  Bu projede, React&#039;i chatbot&#039;un kullan\u0131c\u0131 aray\u00fcz\u00fcn\u00fc (UI) olu\u015fturmak i\u00e7in kullanaca\u011f\u0131z.  Vite, React uygulamalar\u0131 geli\u015ftirmeyi h\u0131zland\u0131ran bir geli\u015ftirme sunucusudur.  H\u0131zl\u0131 ba\u015flatma ve an\u0131nda kod g\u00fcncellemeleri sa\u011flamas\u0131yla verimlili\u011fi \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131r\u0131r.  \u00d6rne\u011fin, bir sohbet penceresi, mesaj g\u00f6r\u00fcnt\u00fcleme alanlar\u0131 ve kullan\u0131c\u0131 giri\u015fi i\u00e7in bir alan gibi bile\u015fenler React ile kolayca olu\u015fturulur.<\/p>\n<h3>Node.js ve Sunucu Taraf\u0131 \u0130\u015flemleri<\/h3>\n<p>Node.js, JavaScript&#039;i sunucu taraf\u0131nda \u00e7al\u0131\u015ft\u0131rmam\u0131z\u0131 sa\u011flayan bir platformdur.  Projemizde, Node.js&#039;i OpenAI API&#039;si ile etkile\u015fim kurmak ve dok\u00fcmanlar\u0131 i\u015flemek i\u00e7in kullanaca\u011f\u0131z.  OpenAI API&#039;sine g\u00f6nderilen istekleri y\u00f6netmek, gelen yan\u0131tlar\u0131 i\u015flemek ve bunlar\u0131 React uygulamas\u0131na iletmek i\u00e7in bir Node.js sunucusu geli\u015ftirece\u011fiz.  Bu sunucu, ayn\u0131 zamanda dok\u00fcmanlar\u0131n y\u00fcklenmesini, i\u015flenmesini ve indekslenmesini sa\u011flar.  Daha geli\u015fmi\u015f uygulamalar i\u00e7in, veritaban\u0131 entegrasyonu da Node.js \u00fczerinden yap\u0131labilir.  Bunun i\u00e7in MongoDB, PostgreSQL gibi veritabanlar\u0131 kullan\u0131labilir.<\/p>\n<h3>OpenAI API&#039;si ile Do\u011fal Dil \u0130\u015fleme (NLP)<\/h3>\n<p>OpenAI API&#039;si, g\u00fc\u00e7l\u00fc do\u011fal dil i\u015fleme yetenekleri sunan bir bulut hizmetidir.  Bu projede, OpenAI&#039;nin b\u00fcy\u00fck dil modelleri (LLM&#039;ler) kullanarak kullan\u0131c\u0131n\u0131n sorular\u0131n\u0131 anlayacak ve dok\u00fcmanlardan ilgili bilgileri \u00e7\u0131karacak bir sistem kuraca\u011f\u0131z.  OpenAI API&#039;si, \u00e7e\u015fitli g\u00f6revler i\u00e7in kullan\u0131labilen farkl\u0131 modeller sunar.  Projenizin gereksinimlerine g\u00f6re en uygun modeli se\u00e7mek \u00f6nemlidir.  OpenAI&#039;nin API dok\u00fcmantasyonu, farkl\u0131 modellerin \u00f6zelliklerini ve kullan\u0131m \u00f6rneklerini detayl\u0131 olarak a\u00e7\u0131klamaktad\u0131r.  Ayr\u0131ca, API&#039;nin g\u00fcvenli kullan\u0131m\u0131 i\u00e7in gerekli \u00f6nlemler hakk\u0131nda da bilgi vermektedir.<\/p>\n<h2>Uygulamal\u0131 K\u0131s\u0131m: Docs-Aware Chatbot Geli\u015ftirme<\/h2>\n<h3>Proje Yap\u0131s\u0131 ve Kurulumu<\/h3>\n<p>\u00d6ncelikle, projenin temel yap\u0131s\u0131n\u0131 olu\u015ftural\u0131m.  Proje, iki ana b\u00f6l\u00fcmden olu\u015facakt\u0131r:  bir frontend (React\/Vite) ve bir backend (Node.js).  <code>npm init vite@latest<\/code> komutu ile yeni bir Vite projesi olu\u015fturarak ba\u015flayabilirsiniz.  Ard\u0131ndan, React&#039;i ekleyin: <code>npm install react react-dom @types\/react @types\/react-dom<\/code>.  Backend i\u00e7in yeni bir dizin olu\u015fturun ve <code>npm init<\/code> komutuyla Node.js projesini ba\u015flat\u0131n.  Gerekli paketleri (<code>express<\/code>, <code>axios<\/code>, vb.) <code>npm install<\/code> komutu ile ekleyin.  OpenAI API anahtar\u0131n\u0131z\u0131 <code>.env<\/code> dosyas\u0131na g\u00fcvenli bir \u015fekilde saklamay\u0131 unutmay\u0131n.  Daha sonra, frontend ve backend&#039;i birbirine ba\u011flayarak ileti\u015fimi sa\u011flayaca\u011f\u0131z.   Bu i\u015flem genellikle API \u00e7a\u011fr\u0131lar\u0131 kullan\u0131larak ger\u00e7ekle\u015ftirilir.<\/p>\n<p><\/code>javascript<br \/>\n\/\/ backend\/server.js<br \/>\nconst express = require(&#8216;express&#8217;);<br \/>\nconst axios = require(&#8216;axios&#8217;);<br \/>\nrequire(&#8216;dotenv&#8217;).config();<\/p>\n<p>const app = express();<br \/>\nconst port = 3001;<\/p>\n<p>app.use(express.json());<\/p>\n<p>app.post(&#8216;\/chat&#8217;, async (req, res) => {<br \/>\n  const { message, context } = req.body;<\/p>\n<p>  try {<br \/>\n    const response = await axios.post(&#8216;https:\/\/api.openai.com\/v1\/chat\/completions&#8217;, {<br \/>\n      model: &#8220;gpt-3.5-turbo&#8221;, \/\/ veya ba\u015fka bir uygun model<br \/>\n      messages: [{ role: &#8220;user&#8221;, content: message + context }],<br \/>\n    }, {<br \/>\n      headers: {<br \/>\n        &#8216;Authorization&#8217;: <code>Bearer ${process.env.OPENAI_API_KEY}<\/code>,<br \/>\n        &#8216;Content-Type&#8217;: &#8216;application\/json&#8217;<br \/>\n      }<br \/>\n    });<\/p>\n<p>    res.json({ response: response.data.choices[0].message.content });<br \/>\n  } catch (error) {<br \/>\n    console.error(error);<br \/>\n    res.status(500).json({ error: &#8216;OpenAI API hatas\u0131&#8217; });<br \/>\n  }<br \/>\n});<\/p>\n<p>app.listen(port, () => {<br \/>\n  console.log(<code>Sunucu ${port} portunda \u00e7al\u0131\u015f\u0131yor.<\/code>);<br \/>\n});<\/p>\n<pre><code class=\"language-plaintext\"><\/pre>\n<p><\/code>javascript<br \/>\n\/\/ frontend\/src\/App.js<br \/>\nimport React, { useState } from 'react';<br \/>\nimport axios from 'axios';<\/p>\n<p>function App() {<br \/>\n  const [message, setMessage] = useState('');<br \/>\n  const [messages, setMessages] = useState([]);<\/p>\n<p>  const handleSubmit = async (e) => {<br \/>\n    e.preventDefault();<br \/>\n    setMessages([...messages, { role: 'user', content: message }]);<br \/>\n    setMessage('');<\/p>\n<p>    try {<br \/>\n      const response = await axios.post('\/chat', { message, context: messages.map(msg => msg.content).join('\\n') }); \/\/ context ekledik<br \/>\n      setMessages([...messages, { role: 'assistant', content: response.data.response }]);<br \/>\n    } catch (error) {<br \/>\n      console.error(error);<br \/>\n      setMessages([...messages, { role: 'assistant', content: 'Bir hata olu\u015ftu.' }]);<br \/>\n    }<br \/>\n  };<\/p>\n<p>  return (<\/p>\n<div>\n<div>\n        {messages.map((msg, index) => (<\/p>\n<div key={index}>\n            <strong>{msg.role}:<\/strong> {msg.content}\n          <\/div>\n<p>        ))}\n      <\/p><\/div>\n<form onSubmit={handleSubmit}>\n        <input type=\"text\" value={message} onChange={(e) => setMessage(e.target.value)} \/><br \/>\n        <button type=\"submit\">G\u00f6nder<\/button><br \/>\n      <\/form>\n<\/p><\/div>\n<p>  );<br \/>\n}<\/p>\n<p>export default App;<\/p>\n<pre><code class=\"language-plaintext\"><h3>Dok\u00fcman Y\u00fckleme ve \u0130\u015fleme<\/h3>\n\n<p>Kullan\u0131c\u0131ya dok\u00fcman y\u00fckleme se\u00e7ene\u011fi sunun ve y\u00fcklenen dok\u00fcmanlar\u0131 \u00f6n i\u015fleme yaparak OpenAI API&#039;sine uygun hale getirin.  PDF dosyalar\u0131 i\u00e7in, bir PDF okuyucu k\u00fct\u00fcphanesi kullanarak metni \u00e7\u0131karabilirsiniz.  Daha sonra, bu metni OpenAI API&#039;sine g\u00f6ndermeden \u00f6nce temizleyebilir (\u00f6rne\u011fin, gereksiz karakterleri kald\u0131rarak) ve \u00f6zetleyebilirsiniz.  Bu i\u015flem, daha h\u0131zl\u0131 ve verimli bir yan\u0131t almam\u0131z\u0131 sa\u011flayacakt\u0131r.  B\u00fcy\u00fck dosyalar i\u00e7in, par\u00e7alama ve paralel i\u015fleme tekniklerini kullanabilirsiniz.<\/p>\n\n\n<h3>DALL\u00b7E ile Avatar Olu\u015fturma ve Entegrasyonu<\/h3>\n\n<p>OpenAI&#039;nin DALL\u00b7E 2 API&#039;sini kullanarak chatbot i\u00e7in e\u011flenceli avatarlar olu\u015fturabilirsiniz.  Kullan\u0131c\u0131ya farkl\u0131 avatar se\u00e7enekleri sunabilir veya avatar\u0131 rastgele se\u00e7ebilirsiniz.  Olu\u015fturulan avatarlar\u0131 React uygulaman\u0131zda g\u00f6r\u00fcnt\u00fclemek i\u00e7in, API&#039;den gelen g\u00f6rselleri uygun \u015fekilde i\u015flemeniz gerekecektir.  Bu g\u00f6rselleri, chatbot&#039;un konu\u015fma balonlar\u0131n\u0131n yan\u0131nda veya kullan\u0131c\u0131 aray\u00fcz\u00fcn\u00fcn di\u011fer k\u0131s\u0131mlar\u0131nda kullanabilirsiniz.  DALL\u00b7E 2&#039;nin y\u00fcksek kaliteli g\u00f6rsel olu\u015fturma yetene\u011fi, chatbot&#039;unuza daha \u00e7ekici bir g\u00f6r\u00fcn\u00fcm kazand\u0131racakt\u0131r.<\/p>\n\n\n<h2>\u0130leri D\u00fczey Teknikler ve Optimizasyon<\/h2>\n\n<h3>Veritaban\u0131 Entegrasyonu<\/h3>\n\n<p>Daha b\u00fcy\u00fck ve daha karma\u015f\u0131k uygulamalar i\u00e7in, dok\u00fcmanlar\u0131 ve sohbet ge\u00e7mi\u015fini bir veritaban\u0131na kaydetmek faydal\u0131 olacakt\u0131r.  Bu, uygulaman\u0131z\u0131n \u00f6l\u00e7eklenebilirli\u011fini ve performans\u0131n\u0131 art\u0131racakt\u0131r.  MongoDB, PostgreSQL veya benzeri veritabanlar\u0131n\u0131 kullanarak dok\u00fcmanlar\u0131 ve sohbet ge\u00e7mi\u015fini etkili bir \u015fekilde y\u00f6netebilirsiniz.  Veritaban\u0131 se\u00e7iminiz, uygulaman\u0131z\u0131n gereksinimlerine ve tercihlerinize ba\u011fl\u0131 olacakt\u0131r.  Veritaban\u0131 entegrasyonu ile daha \u00f6nce i\u015flenmi\u015f dok\u00fcmanlar\u0131 tekrar i\u015fleme ihtiyac\u0131ndan kurtulabilir ve daha h\u0131zl\u0131 yan\u0131t s\u00fcreleri sa\u011flayabilirsiniz.<\/p>\n\n<h3>Performans Optimizasyonu<\/h3>\n\n<p>Uygulaman\u0131z\u0131n performans\u0131n\u0131 optimize etmek i\u00e7in, \u00e7e\u015fitli teknikler kullanabilirsiniz.  \u00d6rne\u011fin, \u00f6nbellekleme (caching) kullanarak s\u0131k kullan\u0131lan verilerin tekrar tekrar i\u015flenmesini \u00f6nleyebilirsiniz.  Ayr\u0131ca, kodunuzu optimize ederek ve gereksiz i\u015flemleri kald\u0131rarak uygulaman\u0131z\u0131n h\u0131z\u0131 art\u0131rabilirsiniz.  B\u00fcy\u00fck dok\u00fcmanlar i\u00e7in, paralel i\u015fleme tekniklerini kullanarak i\u015flemleri h\u0131zland\u0131rabilirsiniz.  Bu optimizasyonlar, \u00f6zellikle y\u00fcksek trafikli uygulamalar i\u00e7in \u00e7ok \u00f6nemlidir.<\/p>\n\n<div>\n  <h3>Uzman \u0130pucu:<\/h3>\n  <p>OpenAI API \u00e7a\u011fr\u0131lar\u0131n\u0131 s\u0131n\u0131rland\u0131rmak i\u00e7in, sorular\u0131 \u00f6nceden i\u015fleyerek ve gereksiz API isteklerini azaltarak maliyetleri d\u00fc\u015f\u00fcrebilirsiniz.  \u00d6rne\u011fin, benzer sorular i\u00e7in \u00f6nceden hesaplanm\u0131\u015f yan\u0131tlar\u0131 kullanabilirsiniz. <\/p>\n<\/div>\n\n\n<h2>G\u00fcvenlik Uyar\u0131lar\u0131<\/h2>\n\n<div style=\"border: 1px solid red; padding: 10px; background-color: #ffdddd;\">\n  <h3>Dikkat:<\/h3>\n  <p>OpenAI API anahtar\u0131n\u0131z\u0131 g\u00fcvenli bir \u015fekilde saklay\u0131n ve asla do\u011frudan kodunuza g\u00f6m\u00fcn.  <code>.env<\/code> dosyas\u0131 gibi g\u00fcvenli bir y\u00f6ntem kullan\u0131n.  Ayr\u0131ca, kullan\u0131c\u0131lardan gelen girdileri do\u011frulay\u0131n ve zararl\u0131 i\u00e7eri\u011fe kar\u015f\u0131 koruyun.  G\u00fcvenli\u011fe gereken \u00f6zeni g\u00f6stererek uygulaman\u0131z\u0131n g\u00fcvenli\u011fini sa\u011flay\u0131n. <\/p>\n<\/div>\n\n\n<h2>Sonu\u00e7<\/h2>\n\n<p>Bu makalede, React, Vite, Node.js ve OpenAI API&#039;lerini kullanarak dok\u00fcman tabanl\u0131 bir chatbot geli\u015ftirme s\u00fcrecini ad\u0131m ad\u0131m anlatt\u0131k.  DALL\u00b7E ile olu\u015fturulmu\u015f avatarlar\u0131 entegre ederek, chatbot&#039;unuzu daha kullan\u0131c\u0131 dostu hale getirdik.  Ancak unutmay\u0131n ki bu sadece bir ba\u015flang\u0131\u00e7 noktas\u0131d\u0131r.  Daha geli\u015fmi\u015f \u00f6zellikler eklemek ve uygulaman\u0131z\u0131 optimize etmek i\u00e7in, ileri d\u00fczey teknikleri ara\u015ft\u0131rman\u0131z gerekecektir.  Daha fazla bilgi i\u00e7in (https:\/\/fatihsoysal.com) inceleyebilirsiniz.<\/p>\n\n\n<h3>S\u0131k\u00e7a Sorulan Sorular<\/h3>\n<ul>\n  <li><strong>OpenAI API anahtar\u0131n\u0131 nerede saklamal\u0131y\u0131m?<\/strong>  <code>.env<\/code> dosyas\u0131nda saklaman\u0131z \u00f6nerilir.<\/li>\n  <li><strong>Hangi OpenAI modelini kullanmal\u0131y\u0131m?<\/strong>  Uygulaman\u0131z\u0131n gereksinimlerine ba\u011fl\u0131 olarak farkl\u0131 modeller kullanabilirsiniz.  <code>gpt-3.5-turbo<\/code> iyi bir ba\u015flang\u0131\u00e7 noktas\u0131d\u0131r.<\/li>\n  <li><strong>B\u00fcy\u00fck dok\u00fcmanlar\u0131 nas\u0131l i\u015fleyebilirim?<\/strong>  Par\u00e7alama ve paralel i\u015fleme tekniklerini kullanabilirsiniz.<\/li>\n  <li><strong>Uygulaman\u0131n performans\u0131n\u0131 nas\u0131l art\u0131rabilirim?<\/strong>  \u00d6nbellekleme ve kod optimizasyonu gibi teknikleri kullanabilirsiniz.<\/li>\n  <li><strong>G\u00fcvenlik a\u00e7\u0131s\u0131ndan nelere dikkat etmeliyim?<\/strong>  API anahtar\u0131n\u0131z\u0131 g\u00fcvenli bir \u015fekilde saklamal\u0131, kullan\u0131c\u0131 girdilerini do\u011frulamal\u0131 ve zararl\u0131 i\u00e7eriklere kar\u015f\u0131 koruma sa\u011flamal\u0131s\u0131n\u0131z.<\/li>\n<\/ul>\n\n<p>Yazar: Fatih Soysal<\/p><\/pre>\n<p><\/code><\/p>\n","protected":false},"excerpt":{"rendered":"Docs-Aware Chatbot: React, Vite, Node ve OpenAI ile Geli\u015ftirme G\u00fcn\u00fcm\u00fczde, kullan\u0131c\u0131 deneyimini iyile\u015ftirmek ve bilgiye h\u0131zl\u0131 eri\u015fimi sa\u011flamak&hellip;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-29646","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Docs-Aware Chatbot: React, Vite, Node ve OpenAI ile Geli\u015ftirme<\/title>\n<meta name=\"description\" content=\"G\u00fcn\u00fcm\u00fczde, kullan\u0131c\u0131 deneyimini iyile\u015ftirmek ve bilgiye h\u0131zl\u0131 eri\u015fimi sa\u011flamak i\u00e7in ak\u0131ll\u0131 chatbotlar giderek daha \u00f6nemli hale geliyor. Bu makalede, React, Vite, Node.js ve OpenAI API&#039;lerini kullanarak dok\u00fcman tabanl\u0131 bir chatbot nas\u0131l geli\u015ftirilece\u011fini ad\u0131m ad\u0131m ele alaca\u011f\u0131z. DALL\u00b7E ile olu\u015fturulmu\u015f e\u011flenceli avatarlar ekleyerek, chatbot&#039;unuzu daha etkile\u015fimli ve kullan\u0131c\u0131 dostu hale getirece\u011fiz. Bu rehber, hem yeni ba\u015flayanlar hem de deneyimli geli\u015ftiriciler i\u00e7in faydal\u0131 bilgiler sunacakt\u0131r.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/docs-aware-chatbot-react-vite-node-ve-openai-ile-gelistirme\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Docs-Aware Chatbot: React, Vite, Node ve OpenAI ile Geli\u015ftirme\" \/>\n<meta property=\"og:description\" content=\"G\u00fcn\u00fcm\u00fczde, kullan\u0131c\u0131 deneyimini iyile\u015ftirmek ve bilgiye h\u0131zl\u0131 eri\u015fimi sa\u011flamak i\u00e7in ak\u0131ll\u0131 chatbotlar giderek daha \u00f6nemli hale geliyor. Bu makalede, React, Vite, Node.js ve OpenAI API&#039;lerini kullanarak dok\u00fcman tabanl\u0131 bir chatbot nas\u0131l geli\u015ftirilece\u011fini ad\u0131m ad\u0131m ele alaca\u011f\u0131z. DALL\u00b7E ile olu\u015fturulmu\u015f e\u011flenceli avatarlar ekleyerek, chatbot&#039;unuzu daha etkile\u015fimli ve kullan\u0131c\u0131 dostu hale getirece\u011fiz. Bu rehber, hem yeni ba\u015flayanlar hem de deneyimli geli\u015ftiriciler i\u00e7in faydal\u0131 bilgiler sunacakt\u0131r.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/docs-aware-chatbot-react-vite-node-ve-openai-ile-gelistirme\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-09-17T18:02:39+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/docs-aware-chatbot-react-vite-node-ve-openai-ile-gelistirme\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/docs-aware-chatbot-react-vite-node-ve-openai-ile-gelistirme\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Docs-Aware Chatbot: React, Vite, Node ve OpenAI ile Geli\u015ftirme\",\"datePublished\":\"2025-09-17T18:02:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/docs-aware-chatbot-react-vite-node-ve-openai-ile-gelistirme\/\"},\"wordCount\":950,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/docs-aware-chatbot-react-vite-node-ve-openai-ile-gelistirme\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/docs-aware-chatbot-react-vite-node-ve-openai-ile-gelistirme\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/docs-aware-chatbot-react-vite-node-ve-openai-ile-gelistirme\/\",\"name\":\"Docs-Aware Chatbot: React, Vite, Node ve OpenAI ile Geli\u015ftirme\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-09-17T18:02:39+00:00\",\"description\":\"G\u00fcn\u00fcm\u00fczde, kullan\u0131c\u0131 deneyimini iyile\u015ftirmek ve bilgiye h\u0131zl\u0131 eri\u015fimi sa\u011flamak i\u00e7in ak\u0131ll\u0131 chatbotlar giderek daha \u00f6nemli hale geliyor. Bu makalede, React, Vite, Node.js ve OpenAI API'lerini kullanarak dok\u00fcman tabanl\u0131 bir chatbot nas\u0131l geli\u015ftirilece\u011fini ad\u0131m ad\u0131m ele alaca\u011f\u0131z. DALL\u00b7E ile olu\u015fturulmu\u015f e\u011flenceli avatarlar ekleyerek, chatbot'unuzu daha etkile\u015fimli ve kullan\u0131c\u0131 dostu hale getirece\u011fiz. Bu rehber, hem yeni ba\u015flayanlar hem de deneyimli geli\u015ftiriciler i\u00e7in faydal\u0131 bilgiler sunacakt\u0131r.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/docs-aware-chatbot-react-vite-node-ve-openai-ile-gelistirme\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/docs-aware-chatbot-react-vite-node-ve-openai-ile-gelistirme\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/docs-aware-chatbot-react-vite-node-ve-openai-ile-gelistirme\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Docs-Aware Chatbot: React, Vite, Node ve OpenAI ile Geli\u015ftirme\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Docs-Aware Chatbot: React, Vite, Node ve OpenAI ile Geli\u015ftirme","description":"G\u00fcn\u00fcm\u00fczde, kullan\u0131c\u0131 deneyimini iyile\u015ftirmek ve bilgiye h\u0131zl\u0131 eri\u015fimi sa\u011flamak i\u00e7in ak\u0131ll\u0131 chatbotlar giderek daha \u00f6nemli hale geliyor. Bu makalede, React, Vite, Node.js ve OpenAI API'lerini kullanarak dok\u00fcman tabanl\u0131 bir chatbot nas\u0131l geli\u015ftirilece\u011fini ad\u0131m ad\u0131m ele alaca\u011f\u0131z. DALL\u00b7E ile olu\u015fturulmu\u015f e\u011flenceli avatarlar ekleyerek, chatbot'unuzu daha etkile\u015fimli ve kullan\u0131c\u0131 dostu hale getirece\u011fiz. Bu rehber, hem yeni ba\u015flayanlar hem de deneyimli geli\u015ftiriciler i\u00e7in faydal\u0131 bilgiler sunacakt\u0131r.","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:\/\/fatihsoysal.com\/blog\/docs-aware-chatbot-react-vite-node-ve-openai-ile-gelistirme\/","og_locale":"tr_TR","og_type":"article","og_title":"Docs-Aware Chatbot: React, Vite, Node ve OpenAI ile Geli\u015ftirme","og_description":"G\u00fcn\u00fcm\u00fczde, kullan\u0131c\u0131 deneyimini iyile\u015ftirmek ve bilgiye h\u0131zl\u0131 eri\u015fimi sa\u011flamak i\u00e7in ak\u0131ll\u0131 chatbotlar giderek daha \u00f6nemli hale geliyor. Bu makalede, React, Vite, Node.js ve OpenAI API'lerini kullanarak dok\u00fcman tabanl\u0131 bir chatbot nas\u0131l geli\u015ftirilece\u011fini ad\u0131m ad\u0131m ele alaca\u011f\u0131z. DALL\u00b7E ile olu\u015fturulmu\u015f e\u011flenceli avatarlar ekleyerek, chatbot'unuzu daha etkile\u015fimli ve kullan\u0131c\u0131 dostu hale getirece\u011fiz. Bu rehber, hem yeni ba\u015flayanlar hem de deneyimli geli\u015ftiriciler i\u00e7in faydal\u0131 bilgiler sunacakt\u0131r.","og_url":"https:\/\/fatihsoysal.com\/blog\/docs-aware-chatbot-react-vite-node-ve-openai-ile-gelistirme\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-09-17T18:02:39+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"8 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/docs-aware-chatbot-react-vite-node-ve-openai-ile-gelistirme\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/docs-aware-chatbot-react-vite-node-ve-openai-ile-gelistirme\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Docs-Aware Chatbot: React, Vite, Node ve OpenAI ile Geli\u015ftirme","datePublished":"2025-09-17T18:02:39+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/docs-aware-chatbot-react-vite-node-ve-openai-ile-gelistirme\/"},"wordCount":950,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/docs-aware-chatbot-react-vite-node-ve-openai-ile-gelistirme\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/docs-aware-chatbot-react-vite-node-ve-openai-ile-gelistirme\/","url":"https:\/\/fatihsoysal.com\/blog\/docs-aware-chatbot-react-vite-node-ve-openai-ile-gelistirme\/","name":"Docs-Aware Chatbot: React, Vite, Node ve OpenAI ile Geli\u015ftirme","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-09-17T18:02:39+00:00","description":"G\u00fcn\u00fcm\u00fczde, kullan\u0131c\u0131 deneyimini iyile\u015ftirmek ve bilgiye h\u0131zl\u0131 eri\u015fimi sa\u011flamak i\u00e7in ak\u0131ll\u0131 chatbotlar giderek daha \u00f6nemli hale geliyor. Bu makalede, React, Vite, Node.js ve OpenAI API'lerini kullanarak dok\u00fcman tabanl\u0131 bir chatbot nas\u0131l geli\u015ftirilece\u011fini ad\u0131m ad\u0131m ele alaca\u011f\u0131z. DALL\u00b7E ile olu\u015fturulmu\u015f e\u011flenceli avatarlar ekleyerek, chatbot'unuzu daha etkile\u015fimli ve kullan\u0131c\u0131 dostu hale getirece\u011fiz. Bu rehber, hem yeni ba\u015flayanlar hem de deneyimli geli\u015ftiriciler i\u00e7in faydal\u0131 bilgiler sunacakt\u0131r.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/docs-aware-chatbot-react-vite-node-ve-openai-ile-gelistirme\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/docs-aware-chatbot-react-vite-node-ve-openai-ile-gelistirme\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/docs-aware-chatbot-react-vite-node-ve-openai-ile-gelistirme\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Docs-Aware Chatbot: React, Vite, Node ve OpenAI ile Geli\u015ftirme"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/29646","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=29646"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/29646\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=29646"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=29646"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=29646"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}