{"id":26250579,"url":"https://github.com/hediyeorhan/chatbotproject_in_graphstructure","last_synced_at":"2026-05-06T19:33:43.160Z","repository":{"id":282029424,"uuid":"947223969","full_name":"hediyeorhan/ChatbotProject_in_GraphStructure","owner":"hediyeorhan","description":null,"archived":false,"fork":false,"pushed_at":"2025-03-12T11:48:11.000Z","size":9527,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-12T12:33:31.903Z","etag":null,"topics":["chain","chromadb","gemini-api","grader","graph","hallucination-grader","huggingfaceembeddings","langchain","langgraph","llm","node","tavily","vectorstore","websearch"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hediyeorhan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-03-12T10:52:32.000Z","updated_at":"2025-03-12T11:57:45.000Z","dependencies_parsed_at":"2025-03-12T12:43:33.377Z","dependency_job_id":null,"html_url":"https://github.com/hediyeorhan/ChatbotProject_in_GraphStructure","commit_stats":null,"previous_names":["hediyeorhan/chatbotproject_in_graphstructure"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hediyeorhan%2FChatbotProject_in_GraphStructure","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hediyeorhan%2FChatbotProject_in_GraphStructure/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hediyeorhan%2FChatbotProject_in_GraphStructure/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hediyeorhan%2FChatbotProject_in_GraphStructure/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hediyeorhan","download_url":"https://codeload.github.com/hediyeorhan/ChatbotProject_in_GraphStructure/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243437969,"owners_count":20290864,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chain","chromadb","gemini-api","grader","graph","hallucination-grader","huggingfaceembeddings","langchain","langgraph","llm","node","tavily","vectorstore","websearch"],"created_at":"2025-03-13T16:19:55.382Z","updated_at":"2025-12-25T19:55:24.207Z","avatar_url":"https://github.com/hediyeorhan.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Chatbot Project in Graph Structure\n\nBu çalışmada Google AI tarafından geliştirilen yapay zekâ Gemini API'ı kullanılarak RAG ile bir chatbot projesi geliştirilmiştir. \n\nProjede __.env__ dosyasında içeriğinde şu veriler bulunmaktadır.\n\n• GEMINI_API_KEY=\n\n• LANGCHAIN_API_KEY=\n\n• LANGCHAIN_TRACING_V2=true\n\n• LANGCHAIN_PROJECT=PROJECT_NAME\n\n• TAVILY_API_KEY=\n\nProjede, Gemini AI ile birlikte Langchain ve Langgraph framework'ü kullanılmıştır. Langchain, büyük dil modelleri ile uygulama geliştirilmesinde kullanılmaktadır. Zincir yapısında LLM'lerin birbirleri ile ve insanlar ile konuşmasını sağlamaktadır. Doküman okuma-yükleme, chat geçmişi tutma, embedding işlemleri ve vektör database işlemleri için langchain framework'ünden faydalanılmıştır. LangChain, LLM'ler ile entegrasyon sağlayarak özelleştirilmiş sorgu yönetimi sunmaktadır. Langgraph ise agent oluşturma, chat hafızasını bellekte / veri tabanında tutma gibi hizmetler sunmaktadır.\n\n\u003ch3\u003e TAVILY \u003c/h3\u003e\n\n\u003cbr\u003e\nBu çalışmada, Tavily kullanılarak LLM modelinin web sayfası araştırmaları ile entegre bir şekilde bir agent yapısında çalışması sağlanmıştır.\n\n\n\u003cbr\u003e\n\nLanggraph kullanılarak chat hafızası bir veri tabanı dosyasına kayıt edilmiştir. Bu sayede eski chat konuşmaları kaybolmamıştır ve geliştirilen model daha tutarlı sonuçlar / cevaplar üretmiştir.\n\n\u003cbr\u003e\n\nProje bir graph yapısında geliştirilmiştir. Bu graph yapısında öncelikle belirlediğimiz url adreslerinden çekilen veriler lokalde oluşturulan bir db'de vectorstore olarak tutulmaktaadır. Oluşturulan sistem öncelikle sorulan soruya ait uygun cevabı vectorstore içerisinde aramaktadır. Vectorstore'da bulunamayan cevaplar Tavily aracılığı ile websearch ile aranmaktadır. \n\nÇalışmada oluşturulan graph yapısı Şekil 1'de görülmektedir.\n\u003cbr\u003e\n\u003cbr\u003e\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"https://github.com/user-attachments/assets/5e4d5042-a92c-446c-935c-0bfaf49a6568\" alt=\"image\"\u003e\n\u003c/div\u003e\nŞekil 1. Graph yapısı\n\u003cbr\u003e\n\u003cbr\u003e\n\nVectorstore veya websearch'ten elde edilen cevaplar grader fonksiyonlarına gönderilmektedir. Retrieval grader ile dokumandandaki bilgiler ve alınan cevap tutarlı mı kontrol edilmektedir. Kontrol sonucunda string olarak \"yes\" ve \"no\" cevapları dönmektedir. Halüsinasyon grader ile ise llm'in halüsinasyon görüp görmediği kontrol edilmektedir. Kontrol sonucunda binary \"0\" ve \"1\" olarak bir cevap dönmektedir. Halüsinasyon görülmüyorsa cevabın sorulan soru ile tutarlı olup olmadığı kontrolü yapılarak kullanıcıya bir sonuç dönülmektedir.\n\nBu aşamalar sonucunda kod Şekil 1'de graph yapısındaki gibi bir yol izlemektedir. Graph yapısındaki düz çizgiler koşulsuz edge, kesikli çizgiler ise koşula bağlı edge olarak tanımlanmaktadır. Burada tanımlanan koşullar grader ve router fonksiyonlarıdır.\n\u003cbr\u003e\n\nÇalışmada vectorstore içerisindeki veri kullandığında izlenilen yol Şekil 2'de görülmektedir.\n\u003cbr\u003e\n\u003cbr\u003e\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"https://github.com/user-attachments/assets/55994703-b33f-44f2-b2e8-83de7720bba2\" alt=\"image\"\u003e\n\u003c/div\u003e\nŞekil 2. Vectorstore üzerinden ilerlenilen senaryo\n\n\u003cbr\u003e\n\n\u003cbr\u003e\nVectorstore üzerinden elde edilen örnek çıktı Şekil 3'te görülmektedir.\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"https://github.com/user-attachments/assets/b564fc1d-da38-4159-ac91-cf8fe9f8fd6b\" alt=\"image\"\u003e\n\u003c/div\u003e\nŞekil 3. Vectorstore örnek çıktı\n\n\u003cbr\u003e\n\u003cbr\u003e\n\nÇalışmada websearch ile elde edilen veri kullandığında izlenilen yol Şekil 4'te görülmektedir.\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"https://github.com/user-attachments/assets/c3538054-db35-4106-b749-78a092d78731\" alt=\"image\"\u003e\n\u003c/div\u003e\nŞekil 4. Websearch üzerinden ilerlenilen senaryo\n\u003cbr\u003e\n\u003cbr\u003e\n\nWebsearch üzerinden elde edilen örnek çıktı Şekil 5'te görülmektedir.\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"https://github.com/user-attachments/assets/be93b9ff-e180-4cd1-a68b-df5f9da265b3\" alt=\"image\"\u003e\n\u003c/div\u003e\nŞekil 5. Websearch örnek çıktı\n\n\u003ch3\u003e KAYNAKLAR \u003c/h3\u003e\n\nUdemy - Yapay Zekâ Uygulamaları: Langchain, RAG, LLM Orkestrasyonu - Atıl Samancıoğlu\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhediyeorhan%2Fchatbotproject_in_graphstructure","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhediyeorhan%2Fchatbotproject_in_graphstructure","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhediyeorhan%2Fchatbotproject_in_graphstructure/lists"}