https://github.com/hediyeorhan/reactagentwithtavily
https://github.com/hediyeorhan/reactagentwithtavily
agentexecuter gemini-api langchain langchain-agents langchain-hub langgraph react-agent sqlitesaver tavily-search
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/hediyeorhan/reactagentwithtavily
- Owner: hediyeorhan
- License: mit
- Created: 2025-03-04T07:56:38.000Z (8 months ago)
- Default Branch: master
- Last Pushed: 2025-03-04T07:59:48.000Z (8 months ago)
- Last Synced: 2025-08-23T05:07:41.247Z (about 2 months ago)
- Topics: agentexecuter, gemini-api, langchain, langchain-agents, langchain-hub, langgraph, react-agent, sqlitesaver, tavily-search
- Language: Python
- Homepage:
- Size: 3.91 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ReActAgentWithTavily
Bu çalışmada Google AI tarafından geliştirilen yapay zekâ Gemini API'ı kullanılarak temel bir ReAct Agent projesi geliştirilmiştir.
Projede __.env__ dosyasında içeriğinde şu veriler bulunmaktadır.
• GEMINI_API_KEY=
• LANGCHAIN_API_KEY=
• LANGCHAIN_TRACING_V2=true
• LANGCHAIN_PROJECT=PROJECT_NAME
• TAVILY_API_KEY=
Projede, 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.
TAVILY
Bu ç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.
Langgraph 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.
AGENT
Çalışmada kullanılan agent türü __reAct__'tır. Bu agent langgraph kullanılarak kod içerisinde oluşturulmuştur. Oluşturulan agent parametre olarak; api kullanılarak oluşturulan llm modelini, tavily search sonuçlarını ve Langchain hub üzerinden çekilen __hwchase17/react-chat__ prompt'unu almaktadır. __AgentExecutor__ metotu ise oluşturulan react agent, tavily search sonuçları ve chat hafızasını parametre olarak almaktadır. Aynı thread id içerisinde chat hafızası tutulmaktadır. Thread id değişirse chat hafızası sıfırlanmaktadır.
Çalışmada agent kendi içerisinde soru - cevap mekanizması çalıştırarak kullanıcının girdiği input'u nasıl değerlendireceğine karar vermektedir. Tool kullanmaya ihtiyacı var mı yok mu inputu değerlendirmektedir. Eğer tool kullanıldıysa oradan gelen cevapları da değerlendirerek bir cevap dönmektedir. Sonrasında kullanıcıya en uygun cevabı vermektedir.
Şekil 1'de başlangıç olarak geliştirilen asistan ile bir giriş konuşması yapılmıştır.
![]()
Şekil 1. Başlangıç konuşması
Şekil 2'de bilgi almak istenilen konu belirtilmiştir. Burada agent tool kullanması gerektiğine karar vermiştir ve Tavily ile bir web search gerçekleştirmiştir. Sonuçları llm modeli ile değerlendirerek kullanıcıya mantıklı bir cevap dönmüştür.
![]()
Şekil 2. Agent tool kullanım örneği
Şekil 3 ve Şekil 4'te ise tool kullanımına gerek olmadığını düşünerek bir cevap verilmiştir.
![]()
Şekil 3. Tool kullanımı olmadan bir örnek çıktı
![]()
Şekil 4. Tool kullanımı olmadan bir örnek çıktı
Şekil 5'te ise konuşmanın son kısmı görülmektedir.
![]()
Şekil 5. Konuşma sonu örnek çıktısı