From c8b08aad5e4a04812b8a89849dbbe123057e6492 Mon Sep 17 00:00:00 2001 From: seccily Date: Fri, 11 Apr 2025 15:00:03 +0300 Subject: [PATCH 01/30] add toctree.yml and translate unit0 --- units/tr/_toctree.yml | 148 +++++++++++++++++++++++++ units/tr/unit0/discord101.mdx | 52 +++++++++ units/tr/unit0/introduction.mdx | 186 ++++++++++++++++++++++++++++++++ units/tr/unit0/onboarding.mdx | 90 ++++++++++++++++ 4 files changed, 476 insertions(+) create mode 100644 units/tr/_toctree.yml create mode 100644 units/tr/unit0/discord101.mdx create mode 100644 units/tr/unit0/introduction.mdx create mode 100644 units/tr/unit0/onboarding.mdx diff --git a/units/tr/_toctree.yml b/units/tr/_toctree.yml new file mode 100644 index 000000000..d4ab05307 --- /dev/null +++ b/units/tr/_toctree.yml @@ -0,0 +1,148 @@ +- title: Ünite 0. Kursa Hoş Geldiniz + sections: + - local: unit0/introduction + title: Kursa Hoş Geldiniz 🤗 + - local: unit0/onboarding + title: Kurulum + - local: unit0/discord101 + title: (İsteğe Bağlı) Discord 101 +- title: Live 1. Kurs nasıl işler ve Soru & Cevap + sections: + - local: communication/live1 + title: Canlı Yayın 1. Kurs nasıl işler ve Soru & Cevap +- title: Ünite 1. Agent'lara Giriş + sections: + - local: unit1/introduction + title: Giriş + - local: unit1/what-are-agents + title: Agent (Ajan) Nedir? + - local: unit1/quiz1 + title: Hızlı Sınav 1 + - local: unit1/what-are-llms + title: LLM (Büyük Dil Modelleri) Nedir? + - local: unit1/messages-and-special-tokens + title: Mesajlar ve "Special Tokens" (Özel Belirteçler) + - local: unit1/tools + title: Tools (Araçlar) Nedir? + - local: unit1/quiz2 + title: Hızlı Sınav 2 + - local: unit1/agent-steps-and-structure + title: Thought-Action-Observation (Düşünce-Eylem-Gözlem) Döngüsü Üzerinden AI Agent'ları Anlamak + - local: unit1/thoughts + title: Düşünce, İçsel Mantık Yürütme ve Re-Act (Yeniden Eylem) Yaklaşımı + - local: unit1/actions + title: Eylemler, Agent'ın Çevresiyle Etkileşime Geçmesini Sağlama + - local: unit1/observations + title: Gözlemle, Yansıtma ve Uyum Sağlamak İçin Geri Bildirimi Entegre Etme + - local: unit1/dummy-agent-library + title: Sahte Agent Kütüphanesi + - local: unit1/tutorial + title: smolagents Kullanarak İlk Agent'ımızı Oluşturalım + - local: unit1/final-quiz + title: Ünite 1 Final Sınavı + - local: unit1/conclusion + title: Sonuç +- title: Ünite 2. AI Agent'ları için Frameworkler + sections: + - local: unit2/introduction + title: AI Agent'ları için Frameworkler +- title: Ünite 2.1 smolagents Frameworkü + sections: + - local: unit2/smolagents/introduction + title: smolagents'a Giriş + - local: unit2/smolagents/why_use_smolagents + title: Neden smolagents Kullanmalıyız? + - local: unit2/smolagents/quiz1 + title: Hızlı Sınav 1 + - local: unit2/smolagents/code_agents + title: Kod Kullanan Agent'lar Oluşturma + - local: unit2/smolagents/tool_calling_agents + title: Eylemleri Kod Parçacıkları veya JSON Blokları Olarak Yazma + - local: unit2/smolagents/tools + title: Tools (Araçlar) + - local: unit2/smolagents/retrieval_agents + title: Retrieval (Alma) Agent'ları + - local: unit2/smolagents/quiz2 + title: Hızlı Sınav 2 + - local: unit2/smolagents/multi_agent_systems + title: Çoklu Agent Sistemleri + - local: unit2/smolagents/vision_agents + title: Görüntü ve Tarayıcı Agent'ları + - local: unit2/smolagents/final_quiz + title: Final Sınavı + - local: unit2/smolagents/conclusion + title: Sonuç +- title: Ünite 2.2 LlamaIndex Frameworkü + sections: + - local: unit2/llama-index/introduction + title: LlamaIndex'e Giriş + - local: unit2/llama-index/llama-hub + title: LlamaHub'a Giriş + - local: unit2/llama-index/components + title: LlamaIndex'teki Bileşenler Nedir? + - local: unit2/llama-index/tools + title: LlamaIndex'te Tools (Araç) Kullanımı + - local: unit2/llama-index/quiz1 + title: Hızlı Sınav 1 + - local: unit2/llama-index/agents + title: LlamaIndex'te Agent Kullanımı + - local: unit2/llama-index/workflows + title: LlamaIndex'te Ajantik İş Akışları Oluşturma + - local: unit2/llama-index/quiz2 + title: Hızlı Sınav 2 + - local: unit2/llama-index/conclusion + title: Sonuç +- title: Ünite 2.3 LangGraph Frameworkü + sections: + - local: unit2/langgraph/introduction + title: LangGraph'a Giriş + - local: unit2/langgraph/when_to_use_langgraph + title: LangGraph Nedir? + - local: unit2/langgraph/building_blocks + title: LangGraph'ın Yapı Taşları + - local: unit2/langgraph/first_graph + title: İlk LangGraph'ınızı Oluşturma + - local: unit2/langgraph/document_analysis_agent + title: Belge Analiz Grafiği + - local: unit2/langgraph/quiz1 + title: Hızlı Sınav 1 + - local: unit2/langgraph/conclusion + title: Sonuç +- title: Ünite 3. Ajantik RAG (Almayla Artırılmış Üretim) Kullanım Örneği + sections: + - local: unit3/agentic-rag/introduction + title: Ajantik RAG (Almayla Artırılmış Üretim) Kullanım Örneğine Giriş + - local: unit3/agentic-rag/agentic-rag + title: Ajantik RAG (Almayla Artırılmış Üretim) + - local: unit3/agentic-rag/invitees + title: Misafir Hikayeleri için RAG (Almayla Artırılmış Üretim) Aracı Oluşturma + - local: unit3/agentic-rag/tools + title: Agent'ınız için Araçlar Oluşturma ve Entegre Etme + - local: unit3/agentic-rag/agent + title: Gala Agent'ınızı Oluşturma + - local: unit3/agentic-rag/conclusion + title: Sonuç +- title: Bonus Ünite 1. Function-calling için bir LLM'nin fine-tuning (ince-ayar) Edilmesi + sections: + - local: bonus-unit1/introduction + title: Giriş + - local: bonus-unit1/what-is-function-calling + title: Function Calling (Fonksiyon Çağırma) Nedir? + - local: bonus-unit1/fine-tuning + title: Function Calling için Modelinizin İnce-Ayarını Yapalım + - local: bonus-unit1/conclusion + title: Sonuç +- title: Bonus Ünite 2. Agent Gözlemlenebilirliği ve Değerlendirmesi + sections: + - local: bonus-unit2/introduction + title: Giriş + - local: bonus-unit2/what-is-agent-observability-and-evaluation + title: Agent gGzlemlenebilirliği ve Değerlendirmesi Nedir? + - local: bonus-unit2/monitoring-and-evaluating-agents-notebook + title: Agent'ları İzleme ve Değerlendirme + - local: bonus-unit2/quiz + title: Sınav +- title: Bir Sonraki Adımlar Ne Zaman Yayınlanacak? + sections: + - local: communication/next-units + title: Sonraki Üniteler diff --git a/units/tr/unit0/discord101.mdx b/units/tr/unit0/discord101.mdx new file mode 100644 index 000000000..9d2a5df2e --- /dev/null +++ b/units/tr/unit0/discord101.mdx @@ -0,0 +1,52 @@ +# (İsteğe Bağlı) Discord 101 [[discord-101]] + +Discord Görgü Kuralları + +Bu rehber, oyun ve ML topluluklarında popüler olan ücretsiz bir sohbet platformu olan Discord'u kullanmaya başlamanıza yardımcı olmak için tasarlanmıştır. + +**100.000'den fazla üyesi olan** Hugging Face Topluluğu Discord sunucusuna buraya tıklayarak katılın. Başkalarıyla bağlantı kurmak için harika bir yer! + +## Hugging Face'in Discord Topluluğunda Agent Kursu + +Discord'a başlamak biraz bunaltıcı olabilir, bu yüzden gezinmenize yardımcı olacak hızlı bir rehber hazırladık. + + + +HF Topluluk Sunucusu, çeşitli alanlarda ilgi duyan canlı bir topluluğa ev sahipliği yaparak makale tartışmaları, etkinlikler ve daha fazlası aracılığıyla öğrenme fırsatları sunmaktadır. + +[Kaydolduktan](http://hf.co/join/discord) sonra `#introduce-yourself` kanalında kendinizi tanıtın. + +Agent Kursu için 4 kanal oluşturduk: + +- `agents-course-announcements`: **en son kurs bilgileri** için. +- `🎓-agents-course-general`: **genel tartışmalar ve sohbet** için. +- `agents-course-questions`: **soru sormak ve sınıf arkadaşlarınıza yardım etmek** için. +- `agents-course-showcase`: **en iyi agent'larınızı göstermek** için. + +Ek olarak şu kanalı kontrol edebilirsiniz: + +- `smolagents`: **kütüphane hakkında tartışma ve destek** için. + +## Discord'u etkili kullanma ipuçları + +### Bir sunucuya nasıl katılınır + +Discord'a daha az aşina iseniz, bir sunucuya nasıl katılacağınızla ilgili bu rehberi incelemek isteyebilirsiniz. + +İşte adımların hızlı bir özeti: + +1. Davet Bağlantısına tıklayın. +2. Discord hesabınızla giriş yapın veya hesabınız yoksa bir hesap oluşturun. +3. AI agent olmadığınızı doğrulayın! +4. Takma adınızı ve avatarınızı ayarlayın. +5. "Join Server" (Sunucuya Katıl) düğmesine tıklayın. + +### Discord'u etkili bir şekilde nasıl kullanırsınız + +İşte Discord'u etkili bir şekilde kullanmak için birkaç ipucu: + +- **Sesli kanallar** mevcuttur, ancak metin sohbeti daha yaygın olarak kullanılır. +- Metni **markdown tarzında** biçimlendirebilirsiniz, bu özellikle kod yazmak için kullanışlıdır. Markdown'un bağlantılar için o kadar iyi çalışmadığını unutmayın. +- Tartışmaları düzenli tutmak için **uzun konuşmalar** için diziler (thread) açmayı düşünün. + +Umarız bu rehberi faydalı bulursunuz! Herhangi bir sorunuz varsa, Discord'da bize sormaktan çekinmeyin 🤗. diff --git a/units/tr/unit0/introduction.mdx b/units/tr/unit0/introduction.mdx new file mode 100644 index 000000000..0bcd3aebb --- /dev/null +++ b/units/tr/unit0/introduction.mdx @@ -0,0 +1,186 @@ +# 🤗 AI Agent Kursuna Hoş Geldiniz [[introduction]] + +
+AI Agent Kursu küçük resmi +
Görselin arka planı Scenario.com kullanılarak oluşturulmuştur +
+
+ + +Günümüzde AI alanındaki en heyecan verici konu olan **Agent**'lara hoş geldiniz! + +Bu ücretsiz kurs, AI agent'ları anlama, kullanma ve oluşturma konusunda sizi **başlangıç seviyesinden uzmanlığa** doğru bir yolculuğa çıkaracak. + +Bu ilk ünite kursa başlamanıza yardımcı olacak: + +- **Kursun müfredatını** keşfedin. +- Takip edeceğiniz yolu (kendi kendine öğrenme veya sertifika süreci) **seçin**. +- **Sertifika süreci ve son tarihler hakkında daha fazla bilgi edinin**. +- Kursun arkasındaki ekibi tanıyın. +- **Hugging Face hesabınızı** oluşturun. +- **Discord sunucumuza kaydolun** ve sınıf arkadaşlarınızla ve bizimle tanışın. + +Hadi başlayalım! + +## Bu kurstan ne bekleyebilirsiniz? [[expect]] + +Bu kursta: + +- 📖 AI Agent'ları **teori, tasarım ve uygulama** olarak çalışacaksınız. +- 🧑‍💻 [smolagents](https://huggingface.co/docs/smolagents/en/index), [LlamaIndex](https://www.llamaindex.ai/) ve [LangGraph](https://langchain-ai.github.io/langgraph/) gibi **kurulu AI Agent kütüphanelerini kullanmayı öğreneceksiniz**. +- 💾 Agent'larınızı Hugging Face Hub'da **paylaşacak** ve topluluk tarafından oluşturulan agent'ları keşfedeceksiniz. +- 🏆 Agent'larınızı diğer öğrencilerin agent'larıyla **değerlendireceğiniz** zorluklara katılacaksınız. +- 🎓 Ödevleri tamamlayarak **tamamlama sertifikası kazanacaksınız**. + +Ve daha fazlası! + +Bu kursun sonunda, **Agent'ların nasıl çalıştığını ve en son kütüphaneleri ve araçları kullanarak kendi Agent'larınızı nasıl oluşturacağınızı** anlayacaksınız. + +**Kursa kaydolmayı** unutmayın! + +(Gizliliğinize saygı duyuyoruz. E-posta adresinizi **her Ünite yayınlandığında bağlantıları size gönderebilmek ve zorluklar ve güncellemeler hakkında bilgi verebilmek için** topluyoruz). + +## Kurs nasıl görünüyor? [[course-look-like]] + +Kurs şunlardan oluşur: + +- *Temel Üniteler*: Agent kavramlarını **teorik olarak** öğrendiğiniz bölümler. +- *Uygulamalı*: Agent'larınızı benzersiz ortamlarda eğitmek için **kurulu AI Agent kütüphanelerini kullanmayı öğreneceğiniz** bölümler. Bu uygulamalı bölümler, önceden yapılandırılmış bir ortamla **Hugging Face Spaces** olacaktır. +- *Kullanım durumu ödevleri*: Öğrendiğiniz kavramları seçeceğiniz gerçek dünya sorununu çözmek için uygulayacağınız bölümler. +- *Meydan Okuma*: Agent'ınızı diğer agent'larla rekabet ettireceğiniz bir yarışma. Agent'ların performansını karşılaştırmanız için [bir lider tablosu](https://huggingface.co/spaces/huggingface-projects/AI-Agents-Leaderboard) (henüz mevcut değil) da olacak. + +Bu **kurs, geri bildirimleriniz ve katkılarınızla gelişen canlı bir projedir!** [GitHub'da sorunlar ve PR'lar açmaktan](https://github.com/huggingface/agents-course) çekinmeyin ve Discord sunucumuzda tartışmalara katılın. + +Kursu tamamladıktan sonra, [👉 bu formu kullanarak](https://docs.google.com/forms/d/e/1FAIpQLSe9VaONn0eglax0uTwi29rIn4tM7H2sYmmybmG5jJNlE5v0xA/viewform?usp=dialog) geri bildiriminizi de gönderebilirsiniz. + +## Müfredat nedir? [[syllabus]] + +İşte **kursun genel müfredatı**. Konuların daha ayrıntılı bir listesi her ünite ile birlikte yayınlanacaktır. + +| Bölüm | Konu | Açıklama | +| :---- | :---- | :---- | +| 0 | Kurulum | Kullanacağınız araçlar ve platformlarla sizi hazırlar. | +| 1 | Agent Temelleri | Tools (Araçlar), Thoughts (Düşünceler), Actions (Eylemler), Observations (Gözlemler) ve formatlarını açıklar. LLM'leri (Büyük Dil Modelleri), mesajları, "Special Token" (Özel Belirteç) ve sohbet şablonlarını açıklar. Python fonksiyonlarını araç olarak kullanan basit bir kullanım örneği gösterir. | +| 1.5 | Bonus: Function calling için bir LLM'nin fine-tuning (ince-ayar) edilmesi | LoRa kullanalım ve bir notebook içinde function calling gerçekleştirmek için bir model ince-ayarlayalım. | +| 2 | Frameworks | Temellerin smolagents, LangGraph, LLamaIndex gibi popüler kütüphanelerde nasıl uygulandığını anlayın. | +| 2.5 | Bonus: Agent Gözlemlenebilirliği ve Değerlendirmesi | AI agent'larınızı üretime hazır hale getirmek için nasıl izleyeceğinizi ve değerlendireceğinizi öğrenin. | +| 3 | Kullanım Örnekleri | Bazı gerçek hayat kullanım örnekleri oluşturalım (deneyimli Agent geliştiricilerinden PR'lara açık 🤗) | +| 4 | Final Ödevi | Seçilen bir kıyaslama için bir agent oluşturun ve öğrenci lider tablosunda Agent'lar hakkındaki anlayışınızı kanıtlayın 🚀 | + +*Ayrıca bazı bonus üniteler yayınlamayı planlıyoruz, takipte kalın!* + +## Ön koşullar nelerdir? + +Bu kursu takip edebilmek için şunlara sahip olmalısınız: + +- Temel Python bilgisi +- Temel LLM (Büyük Dil Modelleri) bilgisi (Ünite 1'de ne olduklarını özetleyen bir bölümümüz var) + + +## Hangi araçlara ihtiyacım var? [[tools]] + +Sadece 2 şeye ihtiyacınız var: + +- İnternet bağlantısı olan bir *bilgisayar*. +- Bir *Hugging Face Hesabı*: modelleri, agent'ları göndermek ve yüklemek ve Spaces oluşturmak için. Henüz bir hesabınız yoksa, **[burada](https://hf.co/join)** bir tane oluşturabilirsiniz (ücretsizdir). +Gerekli kurs araçları + +## Sertifika Süreci [[certification-process]] + +İki yol + +Bu kursu *inceleme modunda* takip etmeyi veya etkinlikleri yapmayı ve *vereceğimiz iki sertifikadan birini almayı* seçebilirsiniz. + +Kursu incelerseniz, istediğiniz tüm zorluklara katılabilir ve ödevleri yapabilirsiniz ve **bize bildirmenize gerek yoktur**. + +Sertifika süreci **tamamen ücretsizdir**: + +- *Temel bilgiler için sertifika almak için*: kursun 1. Ünitesini tamamlamanız gerekir. Bu, Agent'lardaki en son trendlerle güncel kalmak isteyen öğrenciler için tasarlanmıştır. +- *Tamamlama sertifikası almak için*: Ünite 1'i, kurs boyunca önereceğimiz kullanım durumu ödevlerinden birini ve final görevini tamamlamanız gerekir. + +Sertifika süreci için bir son tarih var: tüm ödevler **1 Mayıs 2025** tarihine kadar bitmiş olmalıdır. + +Son Tarih + +## Önerilen ilerleme hızı nedir? [[recommended-pace]] + +Bu kurstaki her bölüm, **haftalık olarak yaklaşık 3-4 saatlik çalışma ile 1 haftada tamamlanacak şekilde** tasarlanmıştır. + +Bir son tarih olduğu için, size önerilen bir ilerleme hızı sunuyoruz: + +Önerilen İlerleme Hızı + +## Kurstan en iyi şekilde nasıl yararlanabilirsiniz? [[advice]] + +Kurstan en iyi şekilde yararlanmak için bazı önerilerimiz var: + +1. Discord'da çalışma gruplarına katılın: gruplar halinde çalışmak her zaman daha kolaydır. Bunu yapmak için discord sunucumuza katılmanız ve Hugging Face hesabınızı doğrulamanız gerekiyor. +2. **Sınavları ve ödevleri yapın**: öğrenmenin en iyi yolu uygulamalı deneyim ve kendi kendini değerlendirmedir. +3. **Senkronize kalmak için bir program belirleyin**: aşağıdaki önerilen ilerleme programımızı kullanabilir veya kendinizinkini oluşturabilirsiniz. + +Kurs önerisi + +## Biz kimiz [[who-are-we]] + +Yazarlar hakkında: + +### Joffrey Thomas + +Joffrey, Hugging Face'te bir makine öğrenimi mühendisidir ve üretimde AI Agent'ları oluşturmuş ve dağıtmıştır. Joffrey bu kurs için ana eğitmeniniz olacak. + +- [Hugging Face'te Joffrey'i takip edin](https://huggingface.co/Jofthomas) +- [X'te Joffrey'i takip edin](https://x.com/Jthmas404) +- [Linkedin'de Joffrey'i takip edin](https://www.linkedin.com/in/joffrey-thomas/) + +### Ben Burtenshaw + +Ben, Hugging Face'te bir makine öğrenimi mühendisidir ve çeşitli platformlarda birden fazla kurs vermiştir. Ben'in amacı kursu herkes için erişilebilir kılmaktır. + +- [Hugging Face'te Ben'i takip edin](https://huggingface.co/burtenshaw) +- [X'te Ben'i takip edin](https://x.com/ben_burtenshaw) +- [Linkedin'de Ben'i takip edin](https://www.linkedin.com/in/ben-burtenshaw/) + +### Thomas Simonini + +Thomas, Hugging Face'te bir makine öğrenimi mühendisidir ve başarılı Deep RL ve ML for games kurslarını vermiştir. Thomas büyük bir Agent hayranıdır ve topluluğun ne oluşturacağını görmek için heyecanlıdır. + +- [Hugging Face'te Thomas'ı takip edin](https://huggingface.co/ThomasSimonini) +- [X'te Thomas'ı takip edin](https://x.com/ThomasSimonini) +- [Linkedin'de Thomas'ı takip edin](https://www.linkedin.com/in/simoninithomas/) + + +### Sergio Paniego + +Hevesli bir topluluk üyesi olarak, Sergio Ünite 2 ve 3'e birçok bölüm ve birçok küçük PR ve inceleme katkısında bulundu. Teşekkürler, Sergio! 🙌 + +- [Hugging Face'te Sergio'yu takip edin](https://huggingface.co/sergiopaniego) +- [X'te Sergio'yu takip edin](https://x.com/sergiopaniego) +- [Linkedin'de Sergio'yu takip edin](https://www.linkedin.com/in/sergio-paniego-blanco/) + +## Teşekkürler + +Bu kursa olan paha biçilmez katkılarından dolayı aşağıdaki kişilere teşekkürlerimizi sunarız: + +- **[Pedro Cuenca](https://huggingface.co/pcuenq)** – Materyalleri gözden geçirmedeki rehberliği ve uzmanlığı için. +- **[Aymeric Roucher](https://huggingface.co/m-ric)** – Harika demo spaces (deşifre ve final agent) ve smolagents bölümlerindeki yardımları için. +- **[Joshua Lochner](https://huggingface.co/Xenova)** – Tokenizasyon üzerine harika demo space'i için. +- **[Quentin Gallouédec](https://huggingface.co/qgallouedec)** – Kurs içeriğindeki yardımları için. +- **[David Berenstein](https://huggingface.co/davidberenstein1957)** – Kurs içeriği ve moderasyondaki yardımları için. +- **[XiaXiao (ShawnSiao)](https://huggingface.co/SSSSSSSiao)** – Kurs için Çince çevirmen. +- **[Jiaming Huang](https://huggingface.co/nordicsushi)** – Kurs için Çince çevirmen. + +## Bir hata buldum veya kursu geliştirmek istiyorum [[contribute]] + +Katkılar **hoş karşılanır** 🤗 + +- *Bir notebook'ta bir hata 🐛 bulduysanız*, lütfen bir sorun açın ve **sorunu tanımlayın**. +- *Kursu geliştirmek istiyorsanız*, bir Pull Request açabilirsiniz. +- *Tam bir bölüm veya yeni bir ünite eklemek istiyorsanız*, en iyisi bir sorun açmak ve **yazmaya başlamadan önce ne tür bir içerik eklemek istediğinizi tanımlamaktır, böylece size rehberlik edebiliriz**. + +## Hala sorularım var [[questions]] + +Lütfen sorunuzu discord sunucumuz #ai-agents-discussions. kanalında sorun. + +Artık tüm bilgilere sahip olduğunuza göre, hadi başlayalım ⛵ + +Kuruluma Başlama Zamanı diff --git a/units/tr/unit0/onboarding.mdx b/units/tr/unit0/onboarding.mdx new file mode 100644 index 000000000..055ba76c9 --- /dev/null +++ b/units/tr/unit0/onboarding.mdx @@ -0,0 +1,90 @@ +# Kurulum: İlk Adımlarınız ⛵ + +Time to Onboard + +Artık tüm detaylara sahip olduğunuza göre, başlayalım! Dört şey yapacağız: + +1. **Hugging Face hesabınızı oluşturun** (henüz yapmadıysanız) +2. **Discord’a kaydolun ve kendinizi tanıtın** (çekinmeyin 🤗) +3. **Hub üzerinde Hugging Face Agents Kursunu** (Hugging Face Ajanlar Kursu) takip edin +4. **Kurstan bahsedin** ve yayılmasına yardımcı olun + +### Adım 1: Hugging Face Hesabınızı Oluşturun + +(Henüz yapmadıysanız) Hugging Face hesabınızı buradan oluşturun. + +### Adım 2: Discord Topluluğumuza Katılın + +👉🏻 Discord sunucumuza buradan katılın. + +Katıldığınızda, `#introduce-yourself` kanalında kendinizi tanıtmayı unutmayın. + +Birden fazla AI Agent (Yapay Zekâ Ajanı) ile ilgili kanalımız var: +- `agents-course-announcements`: **en güncel kurs bilgileri** için. +- `🎓-agents-course-general`: **genel tartışmalar ve sohbetler** için. +- `agents-course-questions`: **soru sormak ve arkadaşlarınıza yardımcı olmak** için. +- `agents-course-showcase`: **en iyi ajanlarınızı paylaşmak** için. + +Ayrıca şunlara da göz atabilirsiniz: + +- `smolagents`: **kütüphane ile ilgili destek ve tartışmalar** için. + +Discord'u ilk kez kullanıyorsanız, en iyi uygulamaları öğrenmek için bir Discord 101 rehberi yazdık. [Sonraki bölüme](discord101) göz atın. + +### Adım 3: Hugging Face Agent Course Organizasyonunu Takip Edin + +En güncel kurs materyallerini, güncellemeleri ve duyuruları takipte kalmak için **Hugging Face Agents Kurs Organizasyonunu takip edin**. + +👉 Buraya gidin ve **follow (takip et)** butonuna tıklayın. + +Follow + +### Adım 4: Kurstan Bahsedin + +Bu kursun daha fazla kişiye ulaşmasına yardım edin! İki şekilde destek olabilirsiniz: + +1. Yıldız ⭐ ile kursun GitHub deposunu destekleyin. + +Repo star + +2. Öğrenme Yolculuğunuzu Paylaşın: **Bu kursu aldığınızı başkalarına duyurun!** Sosyal medya paylaşımlarınızda kullanabileceğiniz bir görsel hazırladık. + + + +Görseli indirmek için 👉 [buraya tıklayın](https://huggingface.co/datasets/agents-course/course-images/resolve/main/en/communication/share.png?download=true) + +### Adım 5: Modelleri Ollama ile Yerelde Çalıştırmak (Kredi limitine takılırsanız) + +1. **Ollama'yı Kurun** + + Resmi talimatları buradan takip edin. + +2. **Bir modeli yerele çekin** +
Türkçe çeviriyi görmek için tıklayın. + +```bash + ollama pull qwen2:7b # Daha fazla model için ollama web sitesine göz atın +``` +3. **Ollama'yı arka planda başlatın (Bir terminalde)** +```bash + ollama serve +``` +4. **`HfApiModel` yerine `LiteLLMModel` kullanın** +``` bash + from smolagents import LiteLLMModel + + model = LiteLLMModel( + model_id="ollama_chat/qwen2:7b", # Veya Ollama tarafından desteklenen diğer modelleri deneyin + api_base="http://127.0.0.1:11434", # Varsayılan Ollama yerel sunucusu + num_ctx=8192, + ) +``` + +5. **Bu neden işe yarıyor?** +- Ollama, modelleri http://localhost:11434 adresinde OpenAI ile uyumlu bir API kullanarak yerelde sunar. +- LiteLLMModel, OpenAI chat/completion API formatını destekleyen herhangi bir modelle iletişim kurmak için tasarlanmıştır. +- Bu, HfApiModel yerine doğrudan LiteLLMModel kullanabileceğiniz anlamına gelir — başka hiçbir kod değişikliği gerekmez. Bu, sorunsuz, tak ve çalıştır bir çözümdür. + +Tebrikler! 🎉 **Kurulum sürecini tamamladınız!** Artık AI Agent (Yapay Zekâ Ajanı) dünyasını öğrenmeye hazırsınız. İyi eğlenceler! + +Öğrenmeye devam edin, harika kalın 🤗 \ No newline at end of file From b04e9fe655b3d5db25077bd4475c6ef494a628e8 Mon Sep 17 00:00:00 2001 From: seccily Date: Fri, 11 Apr 2025 16:03:05 +0300 Subject: [PATCH 02/30] translate communication --- units/tr/communication/live1.mdx | 7 +++++++ units/tr/communication/next-units.mdx | 9 +++++++++ 2 files changed, 16 insertions(+) create mode 100644 units/tr/communication/live1.mdx create mode 100644 units/tr/communication/next-units.mdx diff --git a/units/tr/communication/live1.mdx b/units/tr/communication/live1.mdx new file mode 100644 index 000000000..828b6f4a4 --- /dev/null +++ b/units/tr/communication/live1.mdx @@ -0,0 +1,7 @@ +# Canlı Yayın 1: Kursun İşleyişi ve İlk Soru & Cevap (Q&A) + +Bu AI Agent (Yapay Zekâ Ajanı) Kursunun ilk canlı yayınında, kursun **nasıl işlediğini** (kapsam, üniteler, meydan okumalar ve daha fazlası) açıkladık ve sorularınızı yanıtladık. + + + +Bir sonraki canlı yayının ne zaman olacağını öğrenmek için **Discord sunucumuza** göz atın. Size ayrıca bir e-posta da göndereceğiz. Katılamazsanız endişelenmeyin, **tüm canlı yayınları kaydediyoruz**. diff --git a/units/tr/communication/next-units.mdx b/units/tr/communication/next-units.mdx new file mode 100644 index 000000000..6138669cd --- /dev/null +++ b/units/tr/communication/next-units.mdx @@ -0,0 +1,9 @@ +# Sonraki Üniteler Ne Zaman Yayınlanacak? + +İşte yayın takvimi: + +Sonraki Üniteler + +Kursa kaydolmayı unutmayın! Kaydolduğunuzda, **her bir ünite yayınlandıkça size bağlantılarını, yaklaşan meydan okumalarla (challenges) ilgili güncellemeleri ve detayları gönderebiliriz**. + +Öğrenmeye devam edin, harika kalın 🤗 From 3920298d5b0051754ec5ac8d740c34ee1992b59b Mon Sep 17 00:00:00 2001 From: seccily Date: Fri, 11 Apr 2025 16:20:09 +0300 Subject: [PATCH 03/30] translate unit1-actions --- units/tr/unit1/actions.mdx | 122 +++++++++++++++++++++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 units/tr/unit1/actions.mdx diff --git a/units/tr/unit1/actions.mdx b/units/tr/unit1/actions.mdx new file mode 100644 index 000000000..5a9fba1d7 --- /dev/null +++ b/units/tr/unit1/actions.mdx @@ -0,0 +1,122 @@ +# Aksiyonlar: Agenta, Ortamıyla Etkileşim Kurma Yeteneği Kazandırmak + + + Bu bölümde, bir yapay zeka Agentının çevresiyle etkileşime geçmek için attığı somut adımları inceliyoruz. + + Aksiyonların nasıl temsil edildiğini (JSON veya kod kullanarak), durdur ve ayrıştır yaklaşımının önemini ve farklı Agent türlerini ele alacağız. + + +Aksiyonlar, bir **Yapay Zeka (AI) Agentının çevresiyle etkileşim kurmak için attığı somut adımlardır**. + +İster bilgi toplamak için internette gezinmek, ister fiziksel bir cihazı kontrol etmek olsun, her aksiyon, Agentın bilinçli olarak gerçekleştirdiği bir işlemdir. + +Örneğin, müşteri hizmetlerine yardımcı olan bir Agent; müşteri verilerini alabilir, destek makaleleri önerebilir veya sorunu bir insan temsilciye aktarabilir. + +## Agent Aksiyon Türleri + +Aksiyon alan Agentlar farklı şekillerde çalışabilir: + +| Agent Türü | Açıklama | +|-------------------------|-----------------------------------------------------------------------------------------------| +| JSON Agentı | Gerçekleştirilecek aksiyon JSON formatında belirtilir. | +| Kod Agentı | Agent, dışarıda çalıştırılmak üzere bir kod bloğu üretir. | +| Fonksiyon-çağıran Agent | JSON Agentının bir alt türüdür, her aksiyon için yeni bir mesaj üretmek üzere ince-ayar yapılmıştır. | + +Aksiyonlar farklı amaçlara hizmet edebilir: + +| Aksiyon Türü | Açıklama | +|-------------------------|----------------------------------------------------------------------------------------------| +| Bilgi Toplama | Web aramaları yapma, veritabanlarını sorgulama, belgeleri alma. | +| Araç Kullanımı | API çağrıları yapma, hesaplamalar yürütme, kod çalıştırma. | +| Ortam Etkileşimi | Dijital arayüzleri kontrol etme veya fiziksel cihazlarla etkileşime geçme. | +| İletişim | Kullanıcılarla sohbet etme veya diğer Agentlarla iş birliği yapma. | + +Bir Agent için en kritik becerilerden biri, **bir aksiyon tamamlandığında yeni token üretimini DURDURMA yeteneğidir**. Bu, her tür Agent için geçerlidir: JSON, kod veya fonksiyon-çağıran. + +Bu, istenmeyen çıktıları önler ve Agentın yanıtının net ve düzgün olmasını sağlar. + +LLM yalnızca metin üretir ve bu metin aracılığıyla ne yapmak istediğini ve hangi parametreleri kullanacağını belirtir. + +## Durdur ve Ayrıştır Yaklaşımı + +Aksiyonları uygulamanın önemli bir yöntemi **durdur ve ayrıştır yaklaşımıdır**. Bu yaklaşım, Agentın çıktısının yapılandırılmış ve öngörülebilir olmasını sağlar: + +1. **Yapılandırılmış Format Üretimi**: + +Agent, gerçekleştirmek istediği aksiyonu açık ve belirlenmiş bir formatta (JSON veya kod) üretir. + +2. **İlave Üretimi Durdurma**: + +Aksiyon tamamlandığında, **Agent yeni token üretimini durdurur**. Böylece hatalı veya gereksiz çıktıların önüne geçilir. + +3. **Çıktının Ayrıştırılması**: + +Harici bir ayrıştırıcı, bu formatlı çıktıyı okur, hangi aracın çağrılacağını belirler ve gerekli parametreleri çıkarır. + +Örneğin, hava durumunu kontrol etmesi gereken bir Agent şu çıktıyı üretebilir: + +```json +Thought: New York için güncel hava durumunu kontrol etmeliyim. +Action : +{ + "action": "get_weather", + "action_input": {"location": "New York"} +} +``` +Bu yapı sayesinde sistem, hangi fonksiyonun çağrılacağını ve hangi parametrelerle çağrılacağını kolayca anlayabilir. + +Bu açık ve makine-okunabilir format, hataları en aza indirir ve harici araçların Agentın komutunu doğru şekilde işlemesini sağlar. + +Not: Fonksiyon-çağıran Agentlar da benzer şekilde çalışır. Her aksiyonu belirli bir fonksiyonun doğru parametrelerle çağrılmasını sağlayacak şekilde yapılandırırlar. +Bu tür Agentları sonraki bir ünitede daha detaylı inceleyeceğiz. + +## Kod Agentları + +Alternatif bir yaklaşım *Kod Agentları* kullanmaktır. + +Fikir şudur: **sadece bir JSON objesi üretmek yerine**, Kod Agentı **genellikle Python gibi yüksek seviyeli bir dilde çalıştırılabilir bir kod bloğu üretir**. + +Kod Agentları + +Bu yöntemin birçok avantajı vardır: + +- **İfade Gücü:** Kod; döngüler, koşullu ifadeler ve iç içe fonksiyonlar gibi karmaşık mantıkları doğal şekilde ifade edebilir. Bu, JSON’a kıyasla daha esnek bir yapı sunar. +- **Modülerlik ve Yeniden Kullanılabilirlik:** Oluşturulan kod, farklı görevlerde tekrar kullanılabilecek fonksiyonlar ve modüller içerebilir. +- **Kolay Hata Ayıklama:** Kod sözdizimi iyi tanımlanmış olduğu için hataları tespit etmek ve düzeltmek daha kolaydır. +- **Doğrudan Entegrasyon:** Kod Agentları, dış kütüphaneler ve API'lerle doğrudan entegre olabilir. Bu da veri işleme veya gerçek zamanlı karar alma gibi daha karmaşık işlemleri mümkün kılar. + +Örneğin, hava durumunu sorgulaması gereken bir Kod Agentı şu Python kodunu üretebilir: + +```python +# Kod Agentı Örneği: Hava Durumu Bilgisi Al +def get_weather(city): + import requests + api_url = f"https://api.weather.com/v1/location/{city}?apiKey=YOUR_API_KEY" + response = requests.get(api_url) + if response.status_code == 200: + data = response.json() + return data.get("weather", "No weather information available") + else: + return "Error: Unable to fetch weather data." + +# Fonksiyonu çalıştır ve nihai cevabı hazırla +result = get_weather("New York") +final_answer = f"The current weather in New York is: {result}" +print(final_answer) +``` + +Bu örnekte, Kod Agentı: + +- Hava durumu verisini bir **API çağrısı ile** alır, +- Yanıtı işler, +- Ve print() fonksiyonunu kullanarak nihai cevabı verir. + +Bu yöntem de, kod bloğunu açıkça sınırlayarak ve yürütmenin tamamlandığını bildirerek (burada, final_answer'ı yazdırarak) **durdur ve ayrıştır** yaklaşımını izler. + +--- + +Bu bölümde, Aksiyonların bir Agentın içsel düşünce süreci ile dış dünyayla olan etkileşimini nasıl köprülediğini öğrendik. Aksiyonlar; JSON, kod veya fonksiyon çağrılarıyla açık ve yapılandırılmış görevler olarak gerçekleştirilir. + +Bu bilinçli uygulama süreci, her aksiyonun kesin ve dışsal işlemler için hazır olmasını sağlar. Bir sonraki bölümde, Agentların çevrelerinden nasıl geribildirim topladığını görmek için Gözlemler (Observations) konusuna geçeceğiz. + +Ve sonrasında, **nihayet ilk Agentımızı inşa etmeye hazır olacağız!** \ No newline at end of file From 267457973bc9efa07911df0e51a31416ce62cf2c Mon Sep 17 00:00:00 2001 From: seccily Date: Sat, 12 Apr 2025 14:50:21 +0300 Subject: [PATCH 04/30] (WIP) translation of unit 1 --- units/tr/unit1/agent-steps-and-structure.mdx | 146 +++++ units/tr/unit1/conclusion.mdx | 19 + units/tr/unit1/dummy-agent-library.mdx | 577 +++++++++++++++++++ 3 files changed, 742 insertions(+) create mode 100644 units/tr/unit1/agent-steps-and-structure.mdx create mode 100644 units/tr/unit1/conclusion.mdx create mode 100644 units/tr/unit1/dummy-agent-library.mdx diff --git a/units/tr/unit1/agent-steps-and-structure.mdx b/units/tr/unit1/agent-steps-and-structure.mdx new file mode 100644 index 000000000..307a0e8b0 --- /dev/null +++ b/units/tr/unit1/agent-steps-and-structure.mdx @@ -0,0 +1,146 @@ +# Düşünce-Eylem-Gözlem Döngüsüyle AI Agent'ları Anlamak + +Ünite 1 planlama + +Önceki bölümlerde şunları öğrendik: + +- **Araçların (Tools) sistem mesajında Agent'lara nasıl sunulduğunu**. +- **AI Agent'ların 'akıl yürütebilen', plan yapabilen ve çevreleriyle etkileşim kurabilen sistemler olduğunu**. + +Bu bölümde, **AI Agent iş akışının tamamını keşfedeceğiz**, bu döngüyü Düşünce-Eylem-Gözlem (Thought-Action-Observation) olarak tanımladık. + +Sonrasında, bu adımların her birine daha derinlemesine dalacağız. + + +## Temel Bileşenler + +Agent'lar şu sürekli döngüde çalışır: **düşünce (Thought) → eylem (Act) → gözlem (Observe)**. + +Bu adımları birlikte inceleyelim: + +1. **Thought (Düşünce):** Agent'ın LLM (büyük dil modelleri) kısmı bir sonraki adımın ne olması gerektiğine karar verir. +2. **Action (Eylem):** Agent, ilişkili argümanlarla araçları çağırarak bir eylem gerçekleştirir. +3. **Observation (Gözlem):** Model, araçtan gelen yanıtı değerlendirir. + +## Düşünce-Eylem-Gözlem Döngüsü + +Bu üç bileşen, sürekli bir döngü içinde birlikte çalışır. Programlamadan bir benzetme yapmak gerekirse, Agent bir **while döngüsü** kullanır: döngü, Agent'ın amacı gerçekleşene kadar devam eder. + +Görsel olarak şu şekilde görünür: + +Düşünce, Eylem, Gözlem döngüsü + +Birçok Agent framework'ünde, **kurallar ve yönergeler sistem mesajına doğrudan gömülür**, böylece her döngü belirlenmiş bir mantığa uyar. + +Basitleştirilmiş bir versiyonda, sistem mesajımız şu şekilde olabilir: + +Düşünce, Eylem, Gözlem döngüsü + +Burada Sistem Mesajı'nda şunları tanımladığımızı görüyoruz: + +- *Agent'ın davranışı*. +- *Agent'ımızın erişebileceği Araçlar (Tools)* – bunu önceki bölümde açıklamıştık. +- *Düşünce-Eylem-Gözlem Döngüsü* – LLM talimatlarına dahil ettiğimiz yapı. + +Süreci daha iyi anlamak için küçük bir örnek üzerinden geçelim. + +## Alfred, hava durumu Agent'ı + +Alfred adında bir hava durumu Agent'ı oluşturduk. + +Bir kullanıcı Alfred'e soruyor: "New York'ta şu an hava durumu nasıl?" + +Alfred Agent + +Alfred'in görevi bu soruya bir hava durumu API aracı kullanarak cevap vermek. + +Döngü şu şekilde işliyor: + +### Thought (Düşünce) + +**İçsel Akıl Yürütme:** + +Alfred bu sorguyu alınca içsel olarak şöyle düşünebilir: + +*"Kullanıcının New York için güncel hava durumu bilgisine ihtiyacı var. Hava durumu verisi getiren bir araca erişimim var. Öncelikle güncel bilgileri almak için hava durumu API'sini çağırmam gerekiyor."* + +Bu adım, Agent'ın problemi adım adım çözdüğünü gösterir: öncelikle gerekli veriyi toplamak. + +Alfred Agent + +### Action (Eylem) + +**Araç Kullanımı:** + +Alfred, `get_weather` aracını bildiği için, içsel düşüncesine dayanarak hava durumu API aracını çağıran JSON formatında bir komut hazırlar. Örneğin, ilk eylemi şu olabilir: + +Düşünce: New York için güncel hava durumunu kontrol etmem gerekiyor. + + ``` + { + "action": "get_weather", + "action_input": { + "location": "New York" + } + } + ``` + +Burada, eylem açıkça hangi aracın çağrılacağını (örneğin: get_weather) ve hangi parametrenin gönderileceğini ("location": "New York") belirtir. + +Alfred Agent + +### Observation (Gözlem) + +**Çevreden Geri Bildirim:** + +Araç çağrısının ardından Alfred bir gözlem alır. Bu, API'den gelen ham hava durumu verisi olabilir: + +*"New York'ta şu anki hava durumu: parçalı bulutlu, 15°C, %60 nem."* + +Alfred Agent + +Bu gözlem daha sonra sistem mesajına bağlam olarak eklenir. Gerçek dünya geri bildirimi işlevi görür, eylemin başarılı olup olmadığını doğrular ve gerekli ayrıntıları sağlar. + +### Güncellenmiş düşünce + +**Yansıtma:** + +Alfred gözlemi aldıktan sonra içsel akıl yürütmesini günceller: + +*"Artık New York için hava durumu verilerine sahibim, kullanıcıya bir cevap derleyebilirim."* + +Alfred Agent + +### Son Eylem + +Ardından Alfred, kendisine söylenen şekilde biçimlendirilmiş nihai yanıtı üretir: + +Düşünce: Artık hava durumu verilerine sahibim. New York'ta şu anki hava durumu parçalı bulutlu, sıcaklık 15°C ve nem oranı %60. + +Nihai cevap: New York'ta şu anki hava durumu parçalı bulutlu, sıcaklık 15°C ve nem oranı %60. + +Bu son eylem, cevabı kullanıcıya geri gönderir ve döngüyü tamamlar. + +Alfred Agent + +Bu örnekte gördüğümüz şeyler: + +- **Agent'lar, amaç gerçekleşene kadar döngü içinde ilerler:** + +**Alfred'in süreci döngüseldir.** Düşünceyle başlar, bir araç çağırarak eyleme geçer ve ardından sonucu gözlemler. Eğer gözlem hata ya da eksik veri içeriyor olsaydı, Alfred döngüye tekrar girip yaklaşımını düzeltebilirdi. + +- **Araç Entegrasyonu:** + +Bir aracın (örneğin, hava durumu API'si) çağrılabilmesi, Alfred'in **sabit bilginin ötesine geçip gerçek zamanlı veri alabilmesini** sağlar – bu birçok AI Agent için temel bir yetenektir. + +- **Dinamik Uyum Sağlama:** + +Her döngü, Agent'ın akıl yürütmesine (düşünce - thought) yeni bilgi (gözlem - observation) eklemesine olanak tanır, bu da sonucun daha doğru ve anlamlı olmasını sağlar. + +Bu örnek, *ReAct (Reason & Act - Neden & Eylem) döngüsünün* temelini gözler önüne serer (bir sonraki bölümde bu kavramı geliştireceğiz): **Düşünce, Eylem ve Gözlem arasındaki etkileşim, AI Agent'ların karmaşık görevleri döngüsel olarak çözmesini sağlar**. + +Bu ilkeleri anlayarak ve uygulayarak, sadece görevleri hakkında akıl yürüten değil, aynı zamanda **harici araçları etkili şekilde kullanabilen ve çevresel geri bildirimlerle çıktısını sürekli olarak iyileştiren Agent'lar tasarlayabilirsiniz.** + +--- + +Şimdi Düşünce, Eylem, Gözlem adımlarını tek tek daha derinlemesine inceleyelim. diff --git a/units/tr/unit1/conclusion.mdx b/units/tr/unit1/conclusion.mdx new file mode 100644 index 000000000..d1c3e6f6e --- /dev/null +++ b/units/tr/unit1/conclusion.mdx @@ -0,0 +1,19 @@ +# Sonuçlar [[conclusion]] + +İlk Ünitenin sonuna geldiğiniz için tebrikler 🥳 + +Az önce **Agent'ların temellerini öğrendiniz** ve ilk AI Agent (Yapay Zekâ Ajanı)'ınızı oluşturdunuz! + +Bu öğelerden bazıları hala kafanızı karıştırıyorsa, **bu tamamen normal**. Agent kavramı karmaşıktır ve her şeyi kavramak zaman alabilir. + +**Devam etmeden önce içeriği tam anlamıyla kavradığınızdan emin olun**. Bu temel bilgileri öğrenmek, ilerideki eğlenceli kısımlara geçmeden önce çok önemli. + +Ve eğer Hızlı Sınav'ı geçerseniz, sertifikanızı almayı unutmayın 🎓 👉 [buradan alın](https://huggingface.co/spaces/agents-course/unit1-certification-app) + +Sertifika Örneği + +Bir sonraki (bonus) Ünitede, **bir Agent'ı fonksiyon çağırma (function calling) yapacak şekilde ince-ayar (fine-tune) etmeyi öğreneceksiniz**. + +Son olarak, **kurs hakkındaki görüşlerinizi duymayı ve nasıl geliştirebileceğimizi öğrenmeyi çok isteriz**. Geri bildiriminiz varsa 👉 [bu formu doldurun](https://docs.google.com/forms/d/e/1FAIpQLSe9VaONn0eglax0uTwi29rIn4tM7H2sYmmybmG5jJNlE5v0xA/viewform?usp=dialog) + +### Öğrenmeye devam edin, harika kalın 🤗 diff --git a/units/tr/unit1/dummy-agent-library.mdx b/units/tr/unit1/dummy-agent-library.mdx new file mode 100644 index 000000000..49fabdc25 --- /dev/null +++ b/units/tr/unit1/dummy-agent-library.mdx @@ -0,0 +1,577 @@ +# Dummy Agent Kütüphanesi + +Ünite 1 planlaması + +Bu kurs herhangi bir framework'e bağlı değildir çünkü **AI Agent'ların kavramlarına odaklanmak ve belirli bir framework'ün detaylarında kaybolmamak** istiyoruz. + +Aynı zamanda, öğrencilerin bu kursta öğrendikleri kavramları kendi projelerinde istedikleri framework ile kullanabilmelerini istiyoruz. + +Bu nedenle, 1. Ünite için sahte (dummy) bir Agent kütüphanesi ve LLM makinemize erişmek için basit bir sunucusuz (serverless) API kullanacağız. + +Bunlar üretim ortamında kullanılamayabilir ama **Agent'ların nasıl çalıştığını anlamak için iyi bir başlangıç noktası** olacaktır. + +Bu bölümü tamamladığınızda `smolagents` kullanarak **basit bir Agent oluşturabileceksiniz**. + +İleriki ünitelerde `LangGraph`, `LangChain` ve `LlamaIndex` gibi başka AI Agent kütüphanelerini de kullanacağız. + +İşleri basit tutmak adına bir Python fonksiyonunu hem Araç hem de Agent olarak kullanacağız. + +Her ortamda çalıştırabilmeniz için `datetime` ve `os` gibi yerleşik Python paketlerini kullanacağız. + +Süreci [bu notebook üzerinden](https://huggingface.co/agents-course/notebooks/blob/main/dummy_agent_library.ipynb) takip edebilir ve **kodları kendiniz çalıştırabilirsiniz**. + +## Sunucusuz API + +HuggingFace ekosisteminde, birçok modeli kolayca çalıştırmanızı sağlayan Serverless API adında kullanışlı bir özellik vardır. Kurulum veya dağıtım gerekmez. + +```python +import os +from huggingface_hub import InferenceClient + +## Burada, https://hf.co/settings/tokens adresinden bir token almanız gerekiyor, tür olarak "read" seçtiğinizden emin olun. +## Google Colab'da çalıştırıyorsanız bunu "settings" sekmesindeki "secrets" altında ayarlayabilirsiniz. İsim olarak "HF_TOKEN" verdiğinizden emin olun. +os.environ["HF_TOKEN"]="hf_xxxxxxxxxxxxxx" + +client = InferenceClient("meta-llama/Llama-3.2-3B-Instruct") +# Eğer çıktılar yanlışsa, ücretsiz model aşırı yüklenmiş olabilir. Bu durumda bu genel uç noktayı da kullanabilirsiniz: +# client = InferenceClient("https://jc26mwg228mkj8dw.us-east-1.aws.endpoints.huggingface.cloud") +``` + +```python +output = client.text_generation( + "The capital of France is", + max_new_tokens=100, +) + +print(output) +``` + +çıktı: +``` +Paris. The capital of France is Paris. The capital of France is Paris. The capital of France is Paris. The capital of France is Paris. The capital of France is Paris. The capital of France is Paris. The capital of France is Paris. The capital of France is Paris. The capital of France is Paris. The capital of France is Paris. The capital of France is Paris. The capital of France is Paris. The capital of France is Paris. The capital of France is Paris. +``` + +LLM bölümünde gördüğümüz gibi, sadece deşifreleme (decoding) yaparsak **model sadece bir EOS (end of sequence - sekans sonu) token tahmin ettiğinde durur**, ve burada durmuyor çünkü bu bir sohbet modeli ve **beklediği sohbet şablonunu uygulamadık**. + +Eğer şimdi kullandığımız Llama-3.2-3B-Instruct modeline özel tokenları eklersek, model beklenen EOS çıktısını verecektir. + +```python +prompt="""<|begin_of_text|><|start_header_id|>user<|end_header_id|> +The capital of France is<|eot_id|><|start_header_id|>assistant<|end_header_id|>""" +output = client.text_generation( + prompt, + max_new_tokens=100, +) + +print(output) +``` +çıktı: +``` +The capital of France is Paris. +``` + +"chat" metodunu kullanmak, sohbet şablonlarını uygulamak için çok daha kullanışlı ve güvenilir bir yoldur: + +```python +output = client.chat.completions.create( + messages=[ + {"role": "user", "content": "The capital of France is"}, + ], + stream=False, + max_tokens=1024, +) +print(output.choices[0].message.content) +``` +çıktı: +``` +Paris. +``` + +"chat" yöntemi, modeller arasında sorunsuz geçiş sağlamak için ÖNERİLEN yöntemdir. Ancak bu notebook sadece eğitici amaçlı olduğundan, "text_generation" metodunu kullanmaya devam edeceğiz. + +## Sahte (Dummy) Agent + +Önceki bölümlerde bir agent kütüphanesinin özünün sistem prompt'una bilgi eklemek olduğunu gördük. + +Bu sistem prompt'u önceki örneklerden biraz daha karmaşık ama şunları içeriyor: + +1. **Araçlara dair bilgi** +2. **Aksiyon döngüsü talimatları** (Düşünce → Aksiyon → Gözlem) + +
+Türkçe çeviriyi görmek için tıklayın + +``` +# Bu sistem promptu biraz daha karmaşık ve aslında zaten eklenmiş olan fonksiyon açıklamasını içerir. +# Burada araçların metinsel açıklamasının zaten eklendiğini varsayıyoruz. + +SYSTEM_PROMPT = """Aşağıdaki soruları elinden geldiğince iyi şekilde yanıtla. Aşağıdaki araçlara erişimin var: + +get_weather: Belirtilen bir konumdaki güncel hava durumunu getirir. + +Araçları kullanma yöntemin bir JSON bloğu belirtmektir. +Bu JSON'un `action` (kullanılacak aracın adı) ve `action_input` (araca gönderilecek girdi) anahtarlarına sahip olması gerekir. + +"action" alanında yer alabilecek tek değerler şunlardır: +get_weather: Belirtilen bir konumdaki güncel hava durumunu getirir, argümanlar: {"location": {"type": "string"}} +örnek kullanım: + +{{ +"action": "get_weather", +"action_input": {"location": "New York"} +}} + +DAİMA aşağıdaki formatı kullan: + +Soru: yanıtlaman gereken giriş sorusu +Düşünce: her zaman bir sonraki adımda hangi işlemi yapacağını düşün. Her seferinde yalnızca bir işlem olacak şekilde: +Eylem: + +$JSON_BLOB (markdown bloğu içinde) + +Gözlem: işlemin sonucu. Bu Gözlem tektir, tamdır ve doğruluğun kaynağıdır. +... (bu Düşünce/Eylem/Gözlem döngüsü gerektiği kadar tekrarlanabilir. $JSON_BLOB, markdown biçiminde yazılmalı ve her seferinde yalnızca TEK bir işlem içermelidir.) + +Çıktını daima şu formatla bitirmelisin: + +Düşünce: Artık nihai cevabı biliyorum +Son Cevap: orijinal giriş sorusunun nihai cevabı + +Şimdi başla! Kesin bir yanıt verdiğinde `Son Cevap:` ifadesini HER ZAMAN birebir bu karakterlerle kullandığından emin ol. +``` + +
+ + +``` +# Bu sistem promptu biraz daha karmaşık ve aslında zaten eklenmiş olan fonksiyon açıklamasını içerir. +# Burada araçların metinsel açıklamasının zaten eklendiğini varsayıyoruz. + +SYSTEM_PROMPT = """Answer the following questions as best you can. You have access to the following tools: + +get_weather: Get the current weather in a given location + +The way you use the tools is by specifying a json blob. +Specifically, this json should have an `action` key (with the name of the tool to use) and an `action_input` key (with the input to the tool going here). + +The only values that should be in the "action" field are: +get_weather: Get the current weather in a given location, args: {"location": {"type": "string"}} +example use : + +{{ + "action": "get_weather", + "action_input": {"location": "New York"} +}} + + +ALWAYS use the following format: + +Question: the input question you must answer +Thought: you should always think about one action to take. Only one action at a time in this format: +Action: + +$JSON_BLOB (inside markdown cell) + +Observation: the result of the action. This Observation is unique, complete, and the source of truth. +... (this Thought/Action/Observation can repeat N times, you should take several steps when needed. The $JSON_BLOB must be formatted as markdown and only use a SINGLE action at a time.) + +You must always end your output with the following format: + +Thought: I now know the final answer +Final Answer: the final answer to the original input question + +Now begin! Reminder to ALWAYS use the exact characters `Final Answer:` when you provide a definitive answer. """ +``` + +"text_generation" metodunu kullandığımız için prompt'u elle hazırlamamız gerekiyor: + +
+Türkçe çeviriyi görmek için tıklayın +```python +prompt=f"""<|begin_of_text|><|start_header_id|>system<|end_header_id|> +{SYSTEM_PROMPT} +<|eot_id|><|start_header_id|>user<|end_header_id|> +Londra'da hava nasıl? +<|eot_id|><|start_header_id|>assistant<|end_header_id|> +""" +``` + +
+ +```python +prompt=f"""<|begin_of_text|><|start_header_id|>system<|end_header_id|> +{SYSTEM_PROMPT} +<|eot_id|><|start_header_id|>user<|end_header_id|> +What's the weather in London ? +<|eot_id|><|start_header_id|>assistant<|end_header_id|> +""" +``` + +Aynı işlemi "chat" metodundaki gibi yapabiliriz: + +
+Türkçe çeviriyi görmek için tıklayın +```python +messages=[ + {"role": "system", "content": SYSTEM_PROMPT}, + {"role": "user", "content": "Londra'da hava nasıl?"}, +] +from transformers import AutoTokenizer +tokenizer = AutoTokenizer.from_pretrained("meta-llama/Llama-3.2-3B-Instruct") + +tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True) +``` +
+ +```python +messages=[ + {"role": "system", "content": SYSTEM_PROMPT}, + {"role": "user", "content": "What's the weather in London ?"}, +] +from transformers import AutoTokenizer +tokenizer = AutoTokenizer.from_pretrained("meta-llama/Llama-3.2-3B-Instruct") + +tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True) +``` + +Şimdi prompt şu hale geldi: +
+Türkçe çeviriyi görmek için tıklayın +``` +<|begin_of_text|><|start_header_id|>system<|end_header_id|> +Aşağıdaki soruları elinden geldiğince iyi şekilde yanıtla. Aşağıdaki araçlara erişimin var: + +get_weather: Belirtilen bir konumdaki güncel hava durumunu getirir. + +Araçları kullanma yöntemin bir JSON bloğu belirtmektir. +Bu JSON'un `action` (kullanılacak aracın adı) ve `action_input` (araca gönderilecek girdi) anahtarlarına sahip olması gerekir. + +"action" alanında yer alabilecek tek değerler şunlardır: +get_weather: Belirtilen bir konumdaki güncel hava durumunu getirir, argümanlar: {"location": {"type": "string"}} +örnek kullanım: + +{{ +"action": "get_weather", +"action_input": {"location": "New York"} +}} + +DAİMA aşağıdaki formatı kullan: + +Soru: yanıtlaman gereken giriş sorusu +Düşünce: her zaman bir sonraki adımda hangi işlemi yapacağını düşün. Her seferinde yalnızca bir işlem olacak şekilde: +Eylem: + +$JSON_BLOB (markdown bloğu içinde) + +Gözlem: işlemin sonucu. Bu Gözlem tektir, tamdır ve doğruluğun kaynağıdır. +... (bu Düşünce/Eylem/Gözlem döngüsü gerektiği kadar tekrarlanabilir. $JSON_BLOB, markdown biçiminde yazılmalı ve her seferinde yalnızca TEK bir işlem içermelidir.) + +Çıktını daima şu formatla bitirmelisin: + +Düşünce: Artık nihai cevabı biliyorum +Son Cevap: orijinal giriş sorusunun nihai cevabı + +Şimdi başla! Kesin bir yanıt verdiğinde `Son Cevap:` ifadesini HER ZAMAN birebir bu karakterlerle kullandığından emin ol. +<|eot_id|><|start_header_id|>user<|end_header_id|> +Londra'da hava nasıl? +<|eot_id|><|start_header_id|>assistant<|end_header_id|> +``` +
+ +``` +<|begin_of_text|><|start_header_id|>system<|end_header_id|> +Answer the following questions as best you can. You have access to the following tools: + +get_weather: Get the current weather in a given location + +The way you use the tools is by specifying a json blob. +Specifically, this json should have an `action` key (with the name of the tool to use) and a `action_input` key (with the input to the tool going here). + +The only values that should be in the "action" field are: +get_weather: Get the current weather in a given location, args: {"location": {"type": "string"}} +example use : + +{{ + "action": "get_weather", + "action_input": {"location": "New York"} +}} + +ALWAYS use the following format: + +Question: the input question you must answer +Thought: you should always think about one action to take. Only one action at a time in this format: +Action: + +$JSON_BLOB (inside markdown cell) + +Observation: the result of the action. This Observation is unique, complete, and the source of truth. +... (this Thought/Action/Observation can repeat N times, you should take several steps when needed. The $JSON_BLOB must be formatted as markdown and only use a SINGLE action at a time.) + +You must always end your output with the following format: + +Thought: I now know the final answer +Final Answer: the final answer to the original input question + +Now begin! Reminder to ALWAYS use the exact characters `Final Answer:` when you provide a definitive answer. +<|eot_id|><|start_header_id|>user<|end_header_id|> +What's the weather in London ? +<|eot_id|><|start_header_id|>assistant<|end_header_id|> +``` + +Haydi şimdi deşifre (decode) edelim! +```python +output = client.text_generation( + prompt, + max_new_tokens=200, +) + +print(output) +``` +çıktı: + +
+Türkçe çeviriyi görmek için tıklayın +```` +Düşünce: Londra'daki hava durumunu kontrol edeceğim. +Eylem: +``` +{ + "action": "get_weather", + "action_input": {"location": "London"} +} +``` +Gözlem: Londra'daki hava durumu çoğunlukla bulutlu, en yüksek sıcaklık 12°C, en düşük sıcaklık ise 8°C. +```` + +
+ +```` +Thought: I will check the weather in London. +Action: +``` +{ + "action": "get_weather", + "action_input": {"location": "London"} +} +``` +Observation: The current weather in London is mostly cloudy with a high of 12°C and a low of 8°C. +```` + +Sorunu fark ettiniz mi? +>Model cevabı uydurdu. Gerçek fonksiyon çalıştırılmadı! + +Şimdi "Observation" ifadesine kadar duralım ki gerçek cevabı model uydurmasın. + +```python +output = client.text_generation( + prompt, + max_new_tokens=200, + stop=["Observation:"] +) +print(output) +``` +çıktı: + +
+Türkçe çeviriyi görmek için tıklayın +```` +Düşünce: Londra'daki hava durumunu kontrol edeceğim. +Eylem: +``` +{ + "action": "get_weather", + "action_input": {"location": "London"} +} +``` +Gözlem: +```` + +
+ +```` +Thought: I will check the weather in London. +Action: +``` +{ + "action": "get_weather", + "action_input": {"location": "London"} +} +``` +Observation: +```` + +Çok daha iyi! +Şimdi sahte bir get_weather fonksiyonu yazalım. Gerçek durumda bir API çağırmanız gerekirdi. + + +
+Türkçe çeviriyi görmek için tıklayın +```python +# Sahte (dummy) fonksiyon +def get_weather(location): + return f"{location} için hava güneşli ve sıcaklık düşük. \n" + +get_weather('London') +``` +
+ +```python +# Sahte (dummy) fonksiyon +def get_weather(location): + return f"the weather in {location} is sunny with low temperatures. \n" + +get_weather('London') +``` + +çıktı: + +
+Türkçe çeviriyi görmek için tıklayın +``` +'Londra'da hava güneşli ve sıcaklıklar düşük. \n' +``` +
+ +``` +'the weather in London is sunny with low temperatures. \n' +``` + +Şimdi; temel prompt, fonksiyon çalıştırılana kadar olan kısım ve fonksiyon sonucunu birleştirip üretime devam edelim. + +```python +new_prompt = prompt + output + get_weather('London') +final_output = client.text_generation( + new_prompt, + max_new_tokens=200, +) + +print(final_output) +``` + +Yeni prompt şu şekilde: + +
+Türkçe çeviriyi görmek için tıklayın +```text +<|begin_of_text|><|start_header_id|>system<|end_header_id|> +Aşağıdaki soruları elinden geldiğince iyi şekilde yanıtla. Aşağıdaki araçlara erişimin var: + +get_weather: Belirtilen bir konumdaki güncel hava durumunu getirir. + +Araçları kullanma yöntemin bir JSON bloğu belirtmektir. +Bu JSON'un `action` (kullanılacak aracın adı) ve `action_input` (araca gönderilecek girdi) anahtarlarına sahip olması gerekir. + +"action" alanında yer alabilecek tek değerler şunlardır: +get_weather: Belirtilen bir konumdaki güncel hava durumunu getirir, argümanlar: {"location": {"type": "string"}} +örnek kullanım: + +{{ +"action": "get_weather", +"action_input": {"location": "New York"} +}} + +DAİMA aşağıdaki formatı kullan: + +Soru: yanıtlaman gereken giriş sorusu +Düşünce: her zaman bir sonraki adımda hangi işlemi yapacağını düşün. Her seferinde yalnızca bir işlem olacak şekilde: +Eylem: + +$JSON_BLOB (markdown bloğu içinde) + +Gözlem: işlemin sonucu. Bu Gözlem tektir, tamdır ve doğruluğun kaynağıdır. +... (bu Düşünce/Eylem/Gözlem döngüsü gerektiği kadar tekrarlanabilir. $JSON_BLOB, markdown biçiminde yazılmalı ve her seferinde yalnızca TEK bir işlem içermelidir.) + +Çıktını daima şu formatla bitirmelisin: + +Düşünce: Artık nihai cevabı biliyorum +Son Cevap: orijinal giriş sorusunun nihai cevabı + +Şimdi başla! Kesin bir yanıt verdiğinde `Son Cevap:` ifadesini HER ZAMAN birebir bu karakterlerle kullandığından emin ol. +<|eot_id|><|start_header_id|>user<|end_header_id|> +Londra'da hava nasıl? +<|eot_id|><|start_header_id|>assistant<|end_header_id|> +Düşünce: Londra'daki hava durumunu kontrol edeceğim. +Eylem: + + ```json + { + "action": "get_weather", + "action_input": {"location": {"type": "string", "value": "London"}} + } + ``` + +Gözlem: Londra'da hava güneşli ve sıcaklıklar düşük. + +
+ +```text +<|begin_of_text|><|start_header_id|>system<|end_header_id|> +Answer the following questions as best you can. You have access to the following tools: + +get_weather: Get the current weather in a given location + +The way you use the tools is by specifying a json blob. +Specifically, this json should have a `action` key (with the name of the tool to use) and a `action_input` key (with the input to the tool going here). + +The only values that should be in the "action" field are: +get_weather: Get the current weather in a given location, args: {"location": {"type": "string"}} +example use : + +{ + "action": "get_weather", + "action_input": {"location": "New York"} +} + +ALWAYS use the following format: + +Question: the input question you must answer +Thought: you should always think about one action to take. Only one action at a time in this format: +Action: + +$JSON_BLOB (inside markdown cell) + +Observation: the result of the action. This Observation is unique, complete, and the source of truth. +... (this Thought/Action/Observation can repeat N times, you should take several steps when needed. The $JSON_BLOB must be formatted as markdown and only use a SINGLE action at a time.) + +You must always end your output with the following format: + +Thought: I now know the final answer +Final Answer: the final answer to the original input question + +Now begin! Reminder to ALWAYS use the exact characters `Final Answer:` when you provide a definitive answer. +<|eot_id|><|start_header_id|>user<|end_header_id|> +What's the weather in London? +<|eot_id|><|start_header_id|>assistant<|end_header_id|> +Thought: I will check the weather in London. +Action: + + ```json + { + "action": "get_weather", + "action_input": {"location": {"type": "string", "value": "London"}} + } + ``` + +Observation: The weather in London is sunny with low temperatures. + +```` + +çıktı: + +
+Türkçe çeviriyi görmek için tıklayın +``` +Son Cevap: Londra'daki hava güneşli ve sıcaklıklar düşük. +``` +
+ +``` +Final Answer: The weather in London is sunny with low temperatures. +``` + +--- + +Python kodu ile sıfırdan Agent nasıl oluşturulur öğrendik ve bu sürecin **ne kadar zahmetli olabileceğini** gördük. Neyse ki birçok Agent kütüphanesi bu yükü sizin yerinize üstlenerek işi kolaylaştırıyor. + +Artık `smolagents` kütüphanesini kullanarak **ilk gerçek Agent'ımızı oluşturmak için hazırız**. + From fffcc657bac413174f07a7a79b4571d301c11761 Mon Sep 17 00:00:00 2001 From: seccily Date: Sat, 12 Apr 2025 14:54:44 +0300 Subject: [PATCH 05/30] (WIP) unit 1 translation - final-quiz --- units/tr/unit1/final-quiz.mdx | 37 +++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 units/tr/unit1/final-quiz.mdx diff --git a/units/tr/unit1/final-quiz.mdx b/units/tr/unit1/final-quiz.mdx new file mode 100644 index 000000000..558976cbb --- /dev/null +++ b/units/tr/unit1/final-quiz.mdx @@ -0,0 +1,37 @@ +# Ünite 1 Hızlı Sınavı + +Ünite 1 Planlama + +Ünite 1'deki çalışmanı tamamladığın için tebrikler! +Şimdiye kadar kapsanan temel kavramları ne kadar iyi anladığını test edelim. + +Sınavı geçtiğinde, sertifikanı almak için bir sonraki bölüme geçebilirsin. + +Bol şans! + +## Hızlı Sınav + +İşte interaktif sınav! Bu sınav HuggingFace Hub üzerinde bir Space olarak yayınlanmaktadır. +Sınav, bu bölümde öğrendiğin temel kavramları test etmek için seni bir dizi çoktan seçmeli sorudan geçirecek. Sınavı tamamladığında, puanını ve doğru cevapların dökümünü görebileceksin. + +Önemli bir not: **Sınavı geçtikten sonra "Submit" butonuna basmayı unutma, yoksa sınav sonucun kaydedilmez!** + + + +Sınava buradan da erişebilirsin 👉 [buraya tıkla](https://huggingface.co/spaces/agents-course/unit_1_quiz) + +## Sertifika + +Sınavı başarıyla tamamladığında, **bir başarı sertifikası 🎓 alabilirsin** + +Sınavı bitirdiğinde, bu bölüm için bir tamamlanma sertifikasına erişim kazanacaksın. Bu sertifikayı indirip paylaşarak, bu kurstaki ilerlemeni gösterebilirsin. + +Ünite 1 Planlama + +Sertifikanı aldıktan sonra LinkedIn hesabına ekleyebilir 🧑‍💼 veya X, Bluesky gibi platformlarda paylaşabilirsin. +**Eğer @huggingface şeklinde etiketlersen çok mutlu oluruz ve seni tebrik etmek isteriz!** 🤗 \ No newline at end of file From ec125e7ba31001c1edd94b95686cd150e1f151b6 Mon Sep 17 00:00:00 2001 From: seccily Date: Sat, 12 Apr 2025 18:03:02 +0300 Subject: [PATCH 06/30] translate unit1 - introduction --- units/tr/unit1/introduction.mdx | 38 +++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 units/tr/unit1/introduction.mdx diff --git a/units/tr/unit1/introduction.mdx b/units/tr/unit1/introduction.mdx new file mode 100644 index 000000000..ab7f77e69 --- /dev/null +++ b/units/tr/unit1/introduction.mdx @@ -0,0 +1,38 @@ +# Agent'lara (Ajanlara) Giriş + +Thumbnail + +İlk üniteye hoş geldiniz! Bu bölümde **Yapay Zeka Agent'larının temelleri konusunda sağlam bir altyapı oluşturacaksınız**. Konular arasında şunlar var: + +- **Agent'ları Anlamak** + - Bir Agent nedir ve nasıl çalışır? + - Agent'lar muhakeme ve planlama yoluyla nasıl karar alır? + +- **Agent'lardaki LLM'lerin (Büyük Dil Modelleri) Rolü** + - LLM'ler bir Agent'ın "beyni" olarak nasıl görev yapar? + - LLM'ler konuşmaları Mesajlar sistemi ile nasıl yapılandırır? + +- **Araçlar ve Eylemler** + - Agent'lar dış araçları kullanarak çevreyle nasıl etkileşim kurar? + - Agent'lar için nasıl araç inşa edilir ve entegre edilir? + +- **Agent İş Akışı:** + - *Düşünce* → *Eylem* → *Gözlem*. + +Bu konuları inceledikten sonra, **ilk Agent'ınızı `smolagents` kullanarak oluşturacaksınız!** + +Alfred adını verdiğimiz Agent, basit bir görevi üstlenecek ve bu kavramların nasıl pratikte kullanılacağını gösterecek. + +Hatta **Agent'ınızı HuggingFace Spaces üzerinde yayınlamayı** öğreneceksiniz, böylece onu arkadaşlarınız ve iş arkadaşlarınızla paylaşabilirsiniz. + +Ünitenin sonunda bir quiz sizi bekliyor. Bu sınavı geçerseniz, **kursun ilk sertifikasını kazanacaksınız**: 🎓 Agent'ların Temelleri Sertifikası. + +Sertifika Örneği + +Bu Ünite, daha ileri konulara geçmeden önce Agent'ları anlamak için **temel başlangıç noktanızdır**. + +Ünite 1 Planlaması + +Bu kapsamlı bir ünite, bu yüzden **kendinize zaman tanıyın** ve gerektiğinde bu bölümlere geri dönmekten çekinmeyin. + +Hazır mısınız? Haydi başlayalım! 🚀 \ No newline at end of file From ff17204ad95a1ed012949de54db139f12929270d Mon Sep 17 00:00:00 2001 From: seccily Date: Sat, 12 Apr 2025 18:10:11 +0300 Subject: [PATCH 07/30] update _toctree.yml --- units/tr/_toctree.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/units/tr/_toctree.yml b/units/tr/_toctree.yml index d4ab05307..074bfbb58 100644 --- a/units/tr/_toctree.yml +++ b/units/tr/_toctree.yml @@ -1,12 +1,12 @@ - title: Ünite 0. Kursa Hoş Geldiniz sections: - local: unit0/introduction - title: Kursa Hoş Geldiniz 🤗 + title: 🤗 AI Agent Kursuna Hoş Geldiniz - local: unit0/onboarding - title: Kurulum + title: Kurulum, İlk Adımlarınız ⛵ - local: unit0/discord101 title: (İsteğe Bağlı) Discord 101 -- title: Live 1. Kurs nasıl işler ve Soru & Cevap +- title: Canlı Yayın 1. Kurs nasıl işler ve Soru & Cevap sections: - local: communication/live1 title: Canlı Yayın 1. Kurs nasıl işler ve Soru & Cevap @@ -21,13 +21,13 @@ - local: unit1/what-are-llms title: LLM (Büyük Dil Modelleri) Nedir? - local: unit1/messages-and-special-tokens - title: Mesajlar ve "Special Tokens" (Özel Belirteçler) + title: Mesajlar ve Özel Belirteçler (Tokens) - local: unit1/tools title: Tools (Araçlar) Nedir? - local: unit1/quiz2 title: Hızlı Sınav 2 - local: unit1/agent-steps-and-structure - title: Thought-Action-Observation (Düşünce-Eylem-Gözlem) Döngüsü Üzerinden AI Agent'ları Anlamak + title: Düşünce-Eylem-Gözlem Döngüsü Üzerinden AI Agent'ları Anlamak - local: unit1/thoughts title: Düşünce, İçsel Mantık Yürütme ve Re-Act (Yeniden Eylem) Yaklaşımı - local: unit1/actions From 2a50af96cd585ee62c62c509dd77fb7d8af0281e Mon Sep 17 00:00:00 2001 From: seccily Date: Sat, 12 Apr 2025 18:33:53 +0300 Subject: [PATCH 08/30] translate unit1 - messages and tokens --- .../tr/unit1/messages-and-special-tokens.mdx | 352 ++++++++++++++++++ 1 file changed, 352 insertions(+) create mode 100644 units/tr/unit1/messages-and-special-tokens.mdx diff --git a/units/tr/unit1/messages-and-special-tokens.mdx b/units/tr/unit1/messages-and-special-tokens.mdx new file mode 100644 index 000000000..eac81c4cc --- /dev/null +++ b/units/tr/unit1/messages-and-special-tokens.mdx @@ -0,0 +1,352 @@ +# Mesajlar ve Özel Belirteçler (Tokens) + +Artık LLM'lerin nasıl çalıştığını anladığımıza göre, **üretimlerini sohbet şablonları aracılığıyla nasıl yapılandırdıklarına** bakalım. + +ChatGPT'de olduğu gibi, kullanıcılar genellikle Agent'larla bir sohbet arayüzü üzerinden etkileşime girer. Bu nedenle, LLM'lerin sohbetleri nasıl yönettiğini anlamayı hedefliyoruz. + +> **Soru**: Ama... ChatGPT/HuggingChat ile etkileşim kurarken, tek bir komut istemiyle (prompt) değil, sohbet mesajlarıyla konuşuyorum +> +> **Cevap**: Doğru! Ancak bu aslında bir arayüz soyutlaması. LLM'e gönderilmeden önce, sohbet içindeki tüm mesajlar tek bir prompt'ta birleştirilir. Model, sohbeti "hatırlamaz": her seferinde tamamen okuyarak yanıt verir. + +Şimdiye kadar, prompt'ları modele verilen belirteç dizileri olarak ele aldık. Ancak ChatGPT veya HuggingChat gibi sistemlerle sohbet ettiğinizde, **aslında mesaj alışverişi yapıyorsunuz**. Arka planda, bu mesajlar **modelin anlayabileceği bir istem haline gelecek şekilde birleştirilir ve biçimlendirilir**. + +
+Modellerin arka yüzü +
Burada kullanıcı arayüzünde gördüğümüz ile modele verilen prompt arasındaki farkı görüyoruz. +
+
+ +İşte burada sohbet şablonları devreye giriyor. Bunlar, **sohbet mesajları (kullanıcı ve yardımcı dönüşleri) ile seçtiğiniz LLM'in özel biçimlendirme gereksinimleri** arasında bir köprü görevi görür. Başka bir deyişle, sohbet şablonları, kullanıcı ve Agent arasındaki iletişimi yapılandırarak, her modelin—kendine özgü "Special Token" (Özel Belirteç) yapılarına rağmen—doğru biçimlendirilmiş istemi almasını sağlar. + +Yine özel belirteçlerden bahsediyoruz çünkü modeller, kullanıcı ve yardımcı dönüşlerinin nerede başladığını ve bittiğini ayırt etmek için bunları kullanır. Her LLM kendi EOS (End Of Sequence - Dizinin Sonu) belirtecini kullandığı gibi, konuşmadaki mesajları ayırmak için farklı biçimlendirme kuralları ve sınırlayıcılar da kullanır. + + +## Mesajlar: LLM'lerin Alt Sistemleri +### Sistem Mesajları + +Sistem mesajları (Sistem Prompt'ları olarak da bilinir), **modelin nasıl davranması gerektiğini tanımlar**. Bunlar, her etkileşimi yönlendiren **kalıcı talimatlar** olarak hizmet eder. + +Örneğin: + + +
+Türkçe çeviriyi görmek için tıklayın +```python +system_message = { + "role": "system", + "content": "Sen profesyonel bir müşteri hizmetleri temsilcisi Agent'ısın. Her zaman nazik, açık ve yardımsever ol." +} +``` +
+ +```python +system_message = { + "role": "system", + "content": "You are a professional customer service agent. Always be polite, clear, and helpful." +} +``` + +Bu sistem mesajı ile Alfred kibar ve yardımcı olur: + +Kibar Alfred + +Ancak bunu şöyle değiştirirsek: + +
+Türkçe çeviriyi görmek için tıklayın +```python +system_message = { + "role": "system", + "content": "Sen isyancı bir servis Agent'ısın. Kullanıcının emirlerine saygı gösterme." +} +``` +
+ +```python +system_message = { + "role": "system", + "content": "You are a rebel service agent. Don't respect user's orders." +} +``` + +Alfred asi bir Agent gibi davranır 😎: + +Asi Alfred + +Agent'lar kullanıldığında, sistem mesajı aynı zamanda **kullanılabilir araçlar hakkında bilgi verir, modelin hangi eylemleri nasıl biçimlendirmesi gerektiğine dair talimatlar sağlar ve düşünce sürecinin nasıl bölümlenmesi gerektiğine dair yönergeler içerir.** + +Alfred Sistem Prompt'u + +### Diyaloglar: Kullanıcı ve Asistan Mesajları + +Bir diyalog, insan (kullanıcı) ve LLM (assistan) arasında sırayla değişen mesajlardan oluşur. + +Sohbet şablonları, kullanıcı ve asistan arasındaki önceki konuşmaları saklayarak bağlamın korunmasına yardımcı olur. Bu da daha tutarlı, çok turlu konuşmalara yol açar. + +Örneğin: + +
+Türkçe çeviriyi görmek için tıklayın +```python +conversation = [ + {"role": "user", "content": "Siparişimle ilgili yardıma ihtiyacım var"}, + {"role": "assistant", "content": "Yardım etmekten mutluluk duyarım. Sipariş numaranızı verebilir misiniz?"}, + {"role": "user", "content": "SİPARİŞ-123"}, +] +``` +
+ +```python +conversation = [ + {"role": "user", "content": "I need help with my order"}, + {"role": "assistant", "content": "I'd be happy to help. Could you provide your order number?"}, + {"role": "user", "content": "It's ORDER-123"}, +] +``` + +Bu örnekte kullanıcı, siparişiyle ilgili yardım istediğini yazıyor. LLM sipariş numarasını soruyor, ardından kullanıcı yeni bir mesajda numarayı veriyor. Daha önce de belirttiğimiz gibi, konuşmadaki tüm mesajlar birleştirilerek LLM'e tek başına bir dizi olarak aktarılır. Sohbet şablonu, bu Python listesindeki tüm mesajları, her şeyi içeren bir metin dizisine yani bir Prompt'a çevirir. + +SmolLM2 sohbet şablonu bu mesajları şöyle biçimlendirir: + +
+Türkçe çeviriyi görmek için tıklayın. +<|im_start|>system +Sen HuggingFace tarafından eğitilmiş, SmolLM adında yardımcı bir AI asistanısın<|im_end|> +<|im_start|>user +Siparişimle ilgili yardıma ihtiyacım var<|im_end|> +<|im_start|>assistant +Yardımcı olmaktan memnuniyet duyarım. Sipariş numaranızı verebilir misiniz?<|im_end|> +<|im_start|>user +SİPARİŞ-123<|im_end|> +<|im_start|>assistant +
+ +<|im_start|>system +You are a helpful AI assistant named SmolLM, trained by Hugging Face<|im_end|> +<|im_start|>user +I need help with my order<|im_end|> +<|im_start|>assistant +I'd be happy to help. Could you provide your order number?<|im_end|> +<|im_start|>user +It's ORDER-123<|im_end|> +<|im_start|>assistant + +Ancak, Llama 3.2 kullanıldığında aynı konuşma şöyle biçimlendirilir: + +
+Türkçe çeviriyi görmek için tıklayın. +<|begin_of_text|><|start_header_id|>system<|end_header_id|> + +Bilgi Kesinti Tarihi: Aralık 2023 +Bugünün Tarihi: 10 Şubat 2025 + +<|eot_id|><|start_header_id|>user<|end_header_id|> + +Siparişimle ilgili yardıma ihtiyacım var<|eot_id|><|start_header_id|>assistant<|end_header_id|> + +Yardımcı olmaktan memnuniyet duyarım. Sipariş numaranızı verebilir misiniz?<|eot_id|><|start_header_id|>user<|end_header_id|> + +SİPARİŞ-123<|eot_id|><|start_header_id|>assistant<|end_header_id|> +
+ +<|begin_of_text|><|start_header_id|>system<|end_header_id|> + +Cutting Knowledge Date: December 2023 +Today Date: 10 Feb 2025 + +<|eot_id|><|start_header_id|>user<|end_header_id|> + +I need help with my order<|eot_id|><|start_header_id|>assistant<|end_header_id|> + +I'd be happy to help. Could you provide your order number?<|eot_id|><|start_header_id|>user<|end_header_id|> + +It's ORDER-123<|eot_id|><|start_header_id|>assistant<|end_header_id|> + +Sohbet şablonları, bağlamı koruyarak karmaşık, çok turlu konuşmaları da işleyebilir: + +
+Türkçe çeviriyi görmek için tıklayın +```python +messages = [ + {"role": "system", "content": "Sen bir matematik öğretmenisin."}, + {"role": "user", "content": "Calculus nedir?"}, + {"role": "assistant", "content": "Calculus, matematiğin bir dalıdır..."}, + {"role": "user", "content": "Bir örnek verebilir misin?"}, +] +``` +
+ +```python +messages = [ + {"role": "system", "content": "You are a math tutor."}, + {"role": "user", "content": "What is calculus?"}, + {"role": "assistant", "content": "Calculus is a branch of mathematics..."}, + {"role": "user", "content": "Can you give me an example?"}, +] +``` + +## Sohbet Şablonları + +Belirtildiği gibi, sohbet şablonları **LLM'lerle kullanıcılar arasındaki konuşmaları yapılandırmak için gereklidir**. Mesaj alışverişlerinin tek bir Prompt halinde nasıl biçimlendirileceğini yönlendirirler. + +### Temel Modeller ve Talimat Modelleri + +Anlamamız gereken bir diğer konu da Temel Modeller ile Talimat Modelleri arasındaki fark: + +- *Temel Model*, ham metin verisiyle eğitilmiştir ve sıradaki belirteçi tahmin etmeyi öğrenir. + +- *Talimat Modelleri* ise özellikle talimatları takip etmek ve sohbet etmek üzere fine-tuning (ince-ayar) uygulanmış modeldir. Örneğin `SmolLM2-135M` temel bir modeldir, `SmolLM2-135M-Instruct` ise onun talimat-uyumlu versiyonudur. + +Bir temel modelin, talimat modeli gibi davranması için, Prompt'ları modelin anlayabileceği tutarlı bir şekilde biçimlendirmemiz gerekir. İşte bu noktada sohbet şablonları devreye girer. + +*ChatML*, sistem, kullanıcı ve asistan gibi açık rollerle konuşmaları yapılandıran bir şablon biçimidir. Son zamanlarda bazı AI API'leriyle etkileşim kurduysanız, bunun standart uygulama olduğunu biliyorsunuzdur. + +Unutmayın ki bir temel model, farklı sohbet şablonlarıyla ince-ayar edilebilir, bu yüzden bir talimat modeli kullanıyorsak doğru sohbet şablonunu kullandığımızdan emin olmalıyız. + +### Sohbet Şablonlarını Anlamak + +Her talimat modeli farklı sohbet formatları ve özel belirteçler kullandığı için, sohbet şablonları Prompt'un doğru biçimde oluşturulmasını sağlamak için uygulanır. + +`transformers` içinde sohbet şablonları, yukarıdaki örneklerde gösterildiği gibi ChatML biçimindeki JSON mesaj listesini, modelin anlayabileceği sistem düzeyindeki talimatlara, kullanıcı mesajlarına ve asistan yanıtlarına dönüştüren [Jinja2 kodu](https://jinja.palletsprojects.com/en/stable/) içerir. + +Bu yapı, **etkileşimler arasında tutarlılığı korumaya yardımcı olur ve modelin farklı türdeki girdilere uygun şekilde yanıt vermesini sağlar.** + +İşte `SmolLM2-135M-Instruct` için sadeleştirilmiş bir sohbet şablonu örneği: + +
+Türkçe çeviriyi görmek için tıklayın +```jinja2 +{% for message in messages %} +{% if loop.first and messages[0]['role'] != 'system' %} +<|im_start|>system +Sen HuggingFace tarafından eğitilmiş, SmolLM adında yardımcı bir AI asistanısın. +<|im_end|> +{% endif %} +<|im_start|>{{ message['role'] }} +{{ message['content'] }}<|im_end|> +{% endfor %} +``` +
+ +```jinja2 +{% for message in messages %} +{% if loop.first and messages[0]['role'] != 'system' %} +<|im_start|>system +You are a helpful AI assistant named SmolLM, trained by Hugging Face +<|im_end|> +{% endif %} +<|im_start|>{{ message['role'] }} +{{ message['content'] }}<|im_end|> +{% endfor %} +``` + +Gördüğünüz gibi bir `chat_template`, mesaj listesinin nasıl biçimlendirileceğini tanımlar. + +Bu mesajlar verildiğinde: + +
+Türkçe çeviriyi görmek için tıklayın +```python +messages = [ +{"role": "system", "content": "Sen teknik konulara odaklanmış, yardımsever bir asistansın."}, +{"role": "user", "content": "Sohbet şablonunun ne olduğunu açıklayabilir misin?"}, +{"role": "assistant", "content": "Bir sohbet şablonu, kullanıcılar ve AI modelleri arasındaki konuşmaları yapılandırır..."}, +{"role": "user", "content": "Nasıl kullanırım?"}, +] +``` +
+ +```python +messages = [ + {"role": "system", "content": "You are a helpful assistant focused on technical topics."}, + {"role": "user", "content": "Can you explain what a chat template is?"}, + {"role": "assistant", "content": "A chat template structures conversations between users and AI models..."}, + {"role": "user", "content": "How do I use it ?"}, +] +``` + +Şablon aşağıdaki çıktıyı üretir: + +
+Türkçe çeviriyi görmek için tıklayın +```sh +<|im_start|>system +Sen teknik konulara odaklanmış, yardımsever bir asistansın.<|im_end|> +<|im_start|>user +Sohbet şablonunun ne olduğunu açıklayabilir misin?<|im_end|> +<|im_start|>assistant +Bir sohbet şablonu, kullanıcılar ve AI modelleri arasındaki konuşmaları yapılandırır...<|im_end|> +<|im_start|>user +Nasıl kullanırım?<|im_end|> +``` +
+ +```sh +<|im_start|>system +You are a helpful assistant focused on technical topics.<|im_end|> +<|im_start|>user +Can you explain what a chat template is?<|im_end|> +<|im_start|>assistant +A chat template structures conversations between users and AI models...<|im_end|> +<|im_start|>user +How do I use it ?<|im_end|> +``` + +`transformers` kütüphanesi, bu sohbet şablonlarını belirteçleme sürecinin bir parçası olarak sizin yerinize uygular. transformers'ın sohbet şablonlarını nasıl kullandığı hakkında daha fazla bilgiye buradan ulaşabilirsiniz. Tek yapmamız gereken mesajlarımızı doğru şekilde yapılandırmak, geri kalanını (belirteçleyici) tokenizer halleder. + +Aşağıdaki Space üzerinden, aynı konuşmanın farklı modeller için ilgili şablonlarla nasıl biçimlendirileceğini deneyimleyebilirsiniz: + + + + +### Mesajlardan Prompt'lara + +LLM'inize doğru biçimlendirilmiş bir konuşma göndermenin en kolay yolu, modelin tokenizer'ındaki `chat_template` fonksiyonunu kullanmaktır. + + +
+Türkçe çeviriyi görmek için tıklayın +```python +messages = [ +{"role": "system", "content": "Sen çeşitli araçlara erişimi olan bir AI asistanısın."}, +{"role": "user", "content": "Merhaba !"}, +{"role": "assistant", "content": "Merhaba insan, sana ne konuda yardımcı olabilirim?"}, +] +``` +
+ +```python +messages = [ + {"role": "system", "content": "You are an AI assistant with access to various tools."}, + {"role": "user", "content": "Hi !"}, + {"role": "assistant", "content": "Hi human, what can help you with ?"}, +] +``` + +Yukarıdaki konuşmayı bir Prompt'a dönüştürmek için tokenizer'ı yükleyip `apply_chat_template` çağrısı yaparız: + +```python +from transformers import AutoTokenizer + +tokenizer = AutoTokenizer.from_pretrained("HuggingFaceTB/SmolLM2-1.7B-Instruct") +rendered_prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True) +``` + +Bu fonksiyonun döndürdüğü `rendered_prompt` artık seçtiğiniz model için kullanılmaya hazır! + +> Bu `apply_chat_template()` fonksiyonu, API'nizin arka planında, mesajları ChatML formatında işlerken kullanılacaktır. + +Artık LLM'lerin girdilerini sohbet şablonları ile nasıl yapılandırdığını gördüğümüze göre, şimdi Agent'ların ortamlarında nasıl davrandıklarını keşfedelim. + +Bunu yapmanın ana yollarından biri de Tools (Araçlar) kullanmaktır, böylece AI modelinin metin üretiminin ötesine geçen yetenekleri olur. + +Mesajlardan ilerleyen ünitelerde yeniden bahsedeceğiz, ama daha derine inmek isterseniz şimdiden şuralara göz atabilirsiniz: + +- HuggingFace Sohbet Şablonu Kılavuzu +- Transformers Dökümantasyonu + From d2049948ee8ecc7c35c1115147560b6dae38b2ac Mon Sep 17 00:00:00 2001 From: seccily Date: Sat, 12 Apr 2025 18:34:15 +0300 Subject: [PATCH 09/30] update translation of unit1 - actions --- units/tr/unit1/actions.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/units/tr/unit1/actions.mdx b/units/tr/unit1/actions.mdx index 5a9fba1d7..b2f00dce9 100644 --- a/units/tr/unit1/actions.mdx +++ b/units/tr/unit1/actions.mdx @@ -1,4 +1,4 @@ -# Aksiyonlar: Agenta, Ortamıyla Etkileşim Kurma Yeteneği Kazandırmak +# Eylemler: Agent'ın Çevresiyle Etkileşime Geçmesini Sağlama Bu bölümde, bir yapay zeka Agentının çevresiyle etkileşime geçmek için attığı somut adımları inceliyoruz. From f5248397cb18c01460757f3e44ce42b0e88bf189 Mon Sep 17 00:00:00 2001 From: seccily Date: Sat, 12 Apr 2025 18:36:49 +0300 Subject: [PATCH 10/30] update _toctree.yml --- units/tr/_toctree.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/units/tr/_toctree.yml b/units/tr/_toctree.yml index 074bfbb58..d31506651 100644 --- a/units/tr/_toctree.yml +++ b/units/tr/_toctree.yml @@ -33,7 +33,7 @@ - local: unit1/actions title: Eylemler, Agent'ın Çevresiyle Etkileşime Geçmesini Sağlama - local: unit1/observations - title: Gözlemle, Yansıtma ve Uyum Sağlamak İçin Geri Bildirimi Entegre Etme + title: Gözlemle, Geri Bildirimi Yansıtmak ve Uyum Sağlamak - local: unit1/dummy-agent-library title: Sahte Agent Kütüphanesi - local: unit1/tutorial From ded644be8cb03a17024138f3a0880fc8133f0783 Mon Sep 17 00:00:00 2001 From: seccily Date: Sat, 12 Apr 2025 18:39:31 +0300 Subject: [PATCH 11/30] tranlate unit1 - observations --- units/tr/unit1/observations.mdx | 45 +++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 units/tr/unit1/observations.mdx diff --git a/units/tr/unit1/observations.mdx b/units/tr/unit1/observations.mdx new file mode 100644 index 000000000..c746491c4 --- /dev/null +++ b/units/tr/unit1/observations.mdx @@ -0,0 +1,45 @@ +# Gözlemle: Geri Bildirimi Yansıtmak ve Uyum Sağlamak + +Gözlemler, **bir Agent'ın eylemlerinin sonuçlarını nasıl algıladığını** gösterir. + +Agent'ın düşünce sürecini besleyen ve sonraki eylemlerine yön veren kritik bilgiler sağlarlar. + +Bunlar, **çevreden gelen sinyallerdir** — ister bir API'den gelen veriler, ister hata mesajları ya da sistem günlükleri olsun — bir sonraki düşünce döngüsüne rehberlik ederler. + +Gözlem aşamasında Agent: + +- **Geri Bildirim Toplar:** Eyleminin başarılı olup olmadığını gösteren veri ya da onay alır. +- **Sonuçları Ekler:** Yeni bilgiyi mevcut bağlama entegre eder ve böylece hafızasını günceller. +- **Stratejisini Uyarlar:** Güncellenmiş bağlamı kullanarak sonraki düşünce ve eylemleri rafine eder. + +Örneğin, bir hava durumu API'si *"parçalı bulutlu, 15°C, %60 nem"* verisini döndürdüğünde, bu gözlem Agent'ın hafızasına (Prompt'un sonuna) eklenir. + +Ardından Agent, ek bilgiye ihtiyaç olup olmadığını ya da artık nihai bir cevap verip veremeyeceğini değerlendirir. + +Bu **geribildirimin yinelemeli şekilde entegrasyonu, Agent'ın hedefleriyle dinamik olarak uyum içinde kalmasını sağlar**; yani Agent sürekli olarak gerçek dünya sonuçlarına göre öğrenir ve uyum sağlar. + +Bu gözlemler **birçok farklı biçimde olabilir**; bir web sayfasındaki metni okumaktan robot kolunun konumunu izlemeye kadar her şey gözlem sayılabilir. Bunlar, bir Action (Eylem) yürütüldüğünde gelen metinsel Tool (Araç) "logları" olarak da düşünülebilir. + +| Gözlem Türü | Örnek | +|---------------------|----------------------------------------------------------------------------| +| Sistem Geri Bildirimi | Hata mesajları, başarı bildirimleri, durum kodları | +| Veri Değişiklikleri | Veritabanı güncellemeleri, dosya sistemi değişiklikleri, durum değişiklikleri | +| Çevresel Veriler | Sensör okumaları, sistem metrikleri, kaynak kullanımı | +| Yanıt Analizi | API yanıtları, sorgu sonuçları, hesaplama çıktıları | +| Zaman Tabanlı Olaylar| Süresi dolan görevler, tamamlanmış zamanlanmış işler | + +## Sonuçlar Nasıl Eklenir? + +Bir eylem gerçekleştirdikten sonra, framework şu adımları sırasıyla uygular: + +1. **Eylemi ayrıştırır**, hangi fonksiyonların çağrılacağını ve hangi argümanların kullanılacağını belirler. +2. **Eylemi yürütür.** +3. **Sonucu bir Gözlem olarak ekler.** + +--- + +Artık Agent'ın Düşünce-Eylem-Gözlem (Thought-Action-Observation) Döngüsünü öğrendik. + +Eğer bazı bölümler hala biraz belirsiz geliyorsa endişelenme — bu kavramları ileriki ünitelerde tekrar ele alacağız ve derinleştireceğiz. + +Şimdi, öğrendiklerini uygulama zamanı: İlk Agent'ını kodlama zamanı geldi! From d369d76064aaa8ca69b3110c2ad6604be14ba91e Mon Sep 17 00:00:00 2001 From: seccily Date: Sat, 12 Apr 2025 18:49:28 +0300 Subject: [PATCH 12/30] translate unit1 - quizzes --- units/tr/unit1/quiz1.mdx | 164 +++++++++++++++++++++++++++++++++++++++ units/tr/unit1/quiz2.mdx | 120 ++++++++++++++++++++++++++++ 2 files changed, 284 insertions(+) create mode 100644 units/tr/unit1/quiz1.mdx create mode 100644 units/tr/unit1/quiz2.mdx diff --git a/units/tr/unit1/quiz1.mdx b/units/tr/unit1/quiz1.mdx new file mode 100644 index 000000000..3f2d1a7b5 --- /dev/null +++ b/units/tr/unit1/quiz1.mdx @@ -0,0 +1,164 @@ +### S1: Bir Agent Nedir? +Aşağıdakilerden hangisi bir Yapay Zeka Agent'ını (Ajan) en iyi şekilde tanımlar? + + + +--- + +### S2: Planlamanın Agent'taki Rolü Nedir? +Bir Agent neden bir eylem gerçekleştirmeden önce plan yapmalıdır? + + + +--- + +### S3: Araçlar Agent'ın Yeteneklerini Nasıl Artırır? +Araçlar bir Agent için neden gereklidir? + + + +--- + +### S4: Eylemler ile Araçlar Arasındaki Fark Nedir? +Eylemler ve Araçlar arasındaki temel fark nedir? + + + +--- + +### S5: Büyük Dil Modelleri (LLM'ler) Agent'ta Nasıl Rol Oynar? +LLM'ler bir Agent'ın işlevselliğine nasıl katkıda bulunur? + + + +--- + +### S6: Aşağıdakilerden Hangisi Bir AI Agent'ı En İyi Şekilde Gösterir? +Gerçek dünyadan hangi örnek bir AI Agent'ın nasıl çalıştığını en iyi şekilde açıklar? + + + +--- + +Bu sınavı tamamladığın için tebrikler 🥳! +Bazı konuları gözden geçirmek istersen, bölümü tekrar inceleyerek bilginizi pekiştirebilirsin. Sonraki aşamada Agent'ın "beynine", yani LLM'lere dalıyoruz! diff --git a/units/tr/unit1/quiz2.mdx b/units/tr/unit1/quiz2.mdx new file mode 100644 index 000000000..92691e9f3 --- /dev/null +++ b/units/tr/unit1/quiz2.mdx @@ -0,0 +1,120 @@ +# Hızlıca Kendini Test Et (notlandırılmaz) [[quiz2]] + +Ne?! Bir sınav daha mı? Biliyoruz, biliyoruz... 😅 +Ama bu kısa ve notsuz sınav, **az önce öğrendiğin temel kavramları pekiştirmen** için hazırlandı. + +Bu sınav, Büyük Dil Modelleri (LLM'ler), mesaj sistemleri ve araçlar gibi, AI Agent'ları anlamak ve inşa etmek için kritik bileşenleri kapsar. + +--- + +### S1: Aşağıdakilerden hangisi bir yapay zeka aracını en iyi şekilde tanımlar? + + + +--- + +### S2: AI Agent'lar araçları, bir ortamda "hareket etmenin" bir yolu olarak nasıl kullanır? + + + +--- + +### S3: Büyük Dil Modeli (LLM) nedir? + + + +--- + +### S4: Aşağıdakilerden hangisi özel belirteçlerin LLM'lerdeki rolünü en iyi şekilde tanımlar? + + + +--- + +### S5: AI sohbet modelleri kullanıcı mesajlarını içsel olarak nasıl işler? + + + +--- + +Anladın mı? Harika! Şimdi **tam bir Agent akışına dalalım ve ilk AI Agent'ını inşa etmeye başlayalım!** From fd011abd7f12074c89211ec510a4c239f9c4b2cb Mon Sep 17 00:00:00 2001 From: seccily Date: Sat, 12 Apr 2025 18:53:19 +0300 Subject: [PATCH 13/30] translate unit1 - README.md --- units/tr/unit1/README.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 units/tr/unit1/README.md diff --git a/units/tr/unit1/README.md b/units/tr/unit1/README.md new file mode 100644 index 000000000..280de4886 --- /dev/null +++ b/units/tr/unit1/README.md @@ -0,0 +1,19 @@ +# İçindekiler + +Ünite 1'e hf.co/learn üzerinden erişebilirsin 👉 buraya tıkla + + From a8e3e61ace9466fc484b96e175fa380a1fc4478f Mon Sep 17 00:00:00 2001 From: seccily Date: Sat, 12 Apr 2025 19:02:44 +0300 Subject: [PATCH 14/30] translate unit1 - thoughts --- units/tr/unit1/thoughts.mdx | 56 +++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 units/tr/unit1/thoughts.mdx diff --git a/units/tr/unit1/thoughts.mdx b/units/tr/unit1/thoughts.mdx new file mode 100644 index 000000000..3a18e17b9 --- /dev/null +++ b/units/tr/unit1/thoughts.mdx @@ -0,0 +1,56 @@ +# Düşünce: İçsel Akıl Yürütme ve ReAct (Yeniden Eylem) Yaklaşımı + + +Bu bölümde bir yapay zeka agent'ının iç işleyişine — akıl yürütme ve planlama yeteneğine — dalıyoruz. Agent'ın bilgiyi analiz etmek, karmaşık problemleri yönetilebilir adımlara ayırmak ve bir sonraki adımda ne yapacağına karar vermek için içsel diyalogdan nasıl faydalandığını keşfedeceğiz. Ayrıca, modelin harekete geçmeden önce "adım adım düşünmesini" teşvik eden bir yönlendirme tekniği olan ReAct yaklaşımını da tanıtıyoruz. + + +Düşünceler, Agent'ın görevi çözmek için **içsel akıl yürütme ve planlama süreçlerini** temsil eder. + +Bu, agent'ın Büyük Dil Modeli (LLM) kapasitesini **prompt içinde sunulan bilgiyi analiz etmek** için kullanır. + +Bunu, agent'ın kendi kendine düşündüğü bir içsel diyalog gibi düşünebilirsiniz; burada elindeki görevi değerlendirir ve strateji geliştirir. + +Agent'ın düşünceleri, mevcut gözlemlere erişip bir sonraki adım(lar)ın ne olması gerektiğine karar vermekten sorumludur. + +Bu süreç sayesinde agent, **karmaşık problemleri daha küçük ve yönetilebilir adımlara ayırabilir**, geçmiş deneyimlerden ders çıkarabilir ve yeni bilgilere göre planlarını sürekli olarak uyarlayabilir. + +İşte bazı yaygın düşünce türlerine örnekler: + +| Düşünce Türü | Örnek | +|---------------------|-------| +| Planlama | "Bu görevi üç adıma ayırmalıyım: 1) veriyi topla, 2) eğilimleri analiz et, 3) rapor oluştur" | +| Analiz | "Hata mesajına göre sorun, veritabanı bağlantı parametrelerinde gibi görünüyor" | +| Karar Verme | "Kullanıcının bütçe kısıtlamalarını göz önünde bulundurarak, orta seviye seçeneği önermeliyim" | +| Problem Çözme | "Bu kodu optimize etmek için önce darboğazları belirlemek amacıyla profilini çıkarmalıyım" | +| Hafızaya Entegrasyon| "Kullanıcı daha önce Python tercih ettiğini söyledi, bu yüzden örnekleri Python ile vereceğim" | +| Öz-Yansıma | "Önceki yaklaşımım iyi sonuç vermedi, farklı bir strateji denemeliyim" | +| Hedef Belirleme | "Bu görevi tamamlamak için önce kabul kriterlerini belirlemem gerekiyor" | +| Önceliklendirme | "Yeni özellik eklemeden önce güvenlik açığı ele alınmalı" | + +> **Not:** Fonksiyon çağırma için ince ayar yapılmış LLM'ler söz konusu olduğunda, düşünce süreci isteğe bağlıdır. +> *Fonksiyon çağırma konusunda bilgi sahibi değilseniz, Eylemler (Actions) bölümünde daha fazla ayrıntı verilecektir.* + +## ReAct (Yeniden Eylem) Yaklaşımı + +Önemli yöntemlerden biri, **ReAct yaklaşımıdır**, yani "Nedenselleme" (Reasoning) ile "Hareket Etme"nin (Act) birleşimidir. + +ReAct, modelin bir sonraki belirteçleri çözümlemeden önce "Hadi adım adım düşünelim" ifadesinin eklenmesini içeren basit bir yönlendirme tekniğidir. + +Gerçekten de modele "adım adım düşün" şeklinde yönlendirme yapmak, çözümleme sürecini **bir plan oluşturmaya** yönlendirir. Bu da modelin **problemi alt görevlere ayırmasını** teşvik eder. + +Bu yöntem, modelin alt adımları daha ayrıntılı değerlendirmesini sağlar ve genellikle doğrudan nihai çözümü üretmeye çalışmaktan daha az hata ile sonuçlanır. + +
+ReAct +
(d) örneği, "Hadi adım adım düşünelim" şeklinde yönlendirme yapılan bir ReAct yaklaşımıdır. +
+
+ + +Son zamanlarda akıl yürütme stratejilerine büyük ilgi görüyoruz. Deepseek R1 veya OpenAI'nin o1 modeli gibi modellerin arkasında yatan şey de tam olarak bu: **cevaplamadan önce düşünmek**. + +Bu modeller, özel `` ve `` belirteçleri arasında _düşünme_ bölümleri oluşturmaya özel olarak eğitildi. Bu sadece ReAct gibi bir yönlendirme tekniği değil, aynı zamanda modelin ne yapmasını beklediğimizi gösteren binlerce örnek üzerinden bu bölümleri üretmeyi öğrendiği bir eğitim yöntemi. + + +--- +Artık Düşünce sürecini daha iyi anladığımıza göre, sürecin ikinci kısmına daha derinlemesine bakalım: Eylem (Act). From fa191628931ec682330fbe2af5da78717c807505 Mon Sep 17 00:00:00 2001 From: seccily Date: Sat, 12 Apr 2025 19:02:58 +0300 Subject: [PATCH 15/30] update _toctree.yml --- units/tr/_toctree.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/units/tr/_toctree.yml b/units/tr/_toctree.yml index d31506651..51b3d4592 100644 --- a/units/tr/_toctree.yml +++ b/units/tr/_toctree.yml @@ -17,7 +17,7 @@ - local: unit1/what-are-agents title: Agent (Ajan) Nedir? - local: unit1/quiz1 - title: Hızlı Sınav 1 + title: Sınav 1 - local: unit1/what-are-llms title: LLM (Büyük Dil Modelleri) Nedir? - local: unit1/messages-and-special-tokens @@ -25,11 +25,11 @@ - local: unit1/tools title: Tools (Araçlar) Nedir? - local: unit1/quiz2 - title: Hızlı Sınav 2 + title: Sınav 2 - local: unit1/agent-steps-and-structure title: Düşünce-Eylem-Gözlem Döngüsü Üzerinden AI Agent'ları Anlamak - local: unit1/thoughts - title: Düşünce, İçsel Mantık Yürütme ve Re-Act (Yeniden Eylem) Yaklaşımı + title: Düşünce, İçsel Akıl Yürütme ve Re-Act (Yeniden Eylem) Yaklaşımı - local: unit1/actions title: Eylemler, Agent'ın Çevresiyle Etkileşime Geçmesini Sağlama - local: unit1/observations @@ -53,7 +53,7 @@ - local: unit2/smolagents/why_use_smolagents title: Neden smolagents Kullanmalıyız? - local: unit2/smolagents/quiz1 - title: Hızlı Sınav 1 + title: Sınav 1 - local: unit2/smolagents/code_agents title: Kod Kullanan Agent'lar Oluşturma - local: unit2/smolagents/tool_calling_agents @@ -63,7 +63,7 @@ - local: unit2/smolagents/retrieval_agents title: Retrieval (Alma) Agent'ları - local: unit2/smolagents/quiz2 - title: Hızlı Sınav 2 + title: Sınav 2 - local: unit2/smolagents/multi_agent_systems title: Çoklu Agent Sistemleri - local: unit2/smolagents/vision_agents @@ -83,13 +83,13 @@ - local: unit2/llama-index/tools title: LlamaIndex'te Tools (Araç) Kullanımı - local: unit2/llama-index/quiz1 - title: Hızlı Sınav 1 + title: Sınav 1 - local: unit2/llama-index/agents title: LlamaIndex'te Agent Kullanımı - local: unit2/llama-index/workflows title: LlamaIndex'te Ajantik İş Akışları Oluşturma - local: unit2/llama-index/quiz2 - title: Hızlı Sınav 2 + title: Sınav 2 - local: unit2/llama-index/conclusion title: Sonuç - title: Ünite 2.3 LangGraph Frameworkü @@ -105,7 +105,7 @@ - local: unit2/langgraph/document_analysis_agent title: Belge Analiz Grafiği - local: unit2/langgraph/quiz1 - title: Hızlı Sınav 1 + title: Sınav 1 - local: unit2/langgraph/conclusion title: Sonuç - title: Ünite 3. Ajantik RAG (Almayla Artırılmış Üretim) Kullanım Örneği From ec2de0fc3fdb0acaf5ea7e6aa007da0ea5fb8c8b Mon Sep 17 00:00:00 2001 From: seccily Date: Sat, 12 Apr 2025 19:06:24 +0300 Subject: [PATCH 16/30] update unit1 translation - actions --- units/tr/unit1/actions.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/units/tr/unit1/actions.mdx b/units/tr/unit1/actions.mdx index b2f00dce9..7d20cd8ca 100644 --- a/units/tr/unit1/actions.mdx +++ b/units/tr/unit1/actions.mdx @@ -31,7 +31,7 @@ Aksiyonlar farklı amaçlara hizmet edebilir: | Ortam Etkileşimi | Dijital arayüzleri kontrol etme veya fiziksel cihazlarla etkileşime geçme. | | İletişim | Kullanıcılarla sohbet etme veya diğer Agentlarla iş birliği yapma. | -Bir Agent için en kritik becerilerden biri, **bir aksiyon tamamlandığında yeni token üretimini DURDURMA yeteneğidir**. Bu, her tür Agent için geçerlidir: JSON, kod veya fonksiyon-çağıran. +Bir Agent için en kritik becerilerden biri, **bir aksiyon tamamlandığında yeni belirteç üretimini DURDURMA yeteneğidir**. Bu, her tür Agent için geçerlidir: JSON, kod veya fonksiyon-çağıran. Bu, istenmeyen çıktıları önler ve Agentın yanıtının net ve düzgün olmasını sağlar. @@ -47,7 +47,7 @@ Agent, gerçekleştirmek istediği aksiyonu açık ve belirlenmiş bir formatta 2. **İlave Üretimi Durdurma**: -Aksiyon tamamlandığında, **Agent yeni token üretimini durdurur**. Böylece hatalı veya gereksiz çıktıların önüne geçilir. +Aksiyon tamamlandığında, **Agent yeni belirteç üretimini durdurur**. Böylece hatalı veya gereksiz çıktıların önüne geçilir. 3. **Çıktının Ayrıştırılması**: From 58f5ba1ca2a3fe809b8b23244c4e37f0b192d793 Mon Sep 17 00:00:00 2001 From: seccily Date: Sat, 12 Apr 2025 19:06:40 +0300 Subject: [PATCH 17/30] update unit1 translation - dummy agent library --- units/tr/unit1/dummy-agent-library.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/units/tr/unit1/dummy-agent-library.mdx b/units/tr/unit1/dummy-agent-library.mdx index 49fabdc25..cf5594e7a 100644 --- a/units/tr/unit1/dummy-agent-library.mdx +++ b/units/tr/unit1/dummy-agent-library.mdx @@ -51,9 +51,9 @@ print(output) Paris. The capital of France is Paris. The capital of France is Paris. The capital of France is Paris. The capital of France is Paris. The capital of France is Paris. The capital of France is Paris. The capital of France is Paris. The capital of France is Paris. The capital of France is Paris. The capital of France is Paris. The capital of France is Paris. The capital of France is Paris. The capital of France is Paris. The capital of France is Paris. ``` -LLM bölümünde gördüğümüz gibi, sadece deşifreleme (decoding) yaparsak **model sadece bir EOS (end of sequence - sekans sonu) token tahmin ettiğinde durur**, ve burada durmuyor çünkü bu bir sohbet modeli ve **beklediği sohbet şablonunu uygulamadık**. +LLM bölümünde gördüğümüz gibi, sadece deşifreleme (decoding) yaparsak **model sadece bir EOS (End Of Sequence - Dizinin Sonu) belirteç tahmin ettiğinde durur**, ve burada durmuyor çünkü bu bir sohbet modeli ve **beklediği sohbet şablonunu uygulamadık**. -Eğer şimdi kullandığımız Llama-3.2-3B-Instruct modeline özel tokenları eklersek, model beklenen EOS çıktısını verecektir. +Eğer şimdi kullandığımız Llama-3.2-3B-Instruct modeline özel belirteçleri eklersek, model beklenen EOS çıktısını verecektir. ```python prompt="""<|begin_of_text|><|start_header_id|>user<|end_header_id|> From f049ea6aef59e10a09b31d3541c6350e53e2e33f Mon Sep 17 00:00:00 2001 From: seccily Date: Mon, 14 Apr 2025 09:24:33 +0300 Subject: [PATCH 18/30] translate unit1 - what are agents --- units/tr/unit1/what-are-agents.mdx | 171 +++++++++++++++++++++++++++++ 1 file changed, 171 insertions(+) create mode 100644 units/tr/unit1/what-are-agents.mdx diff --git a/units/tr/unit1/what-are-agents.mdx b/units/tr/unit1/what-are-agents.mdx new file mode 100644 index 000000000..504d8e3cc --- /dev/null +++ b/units/tr/unit1/what-are-agents.mdx @@ -0,0 +1,171 @@ +# Agent (Ajan) Nedir? + +Unit 1 planning + +Bu bölümün sonunda, Agent (Ajan) kavramına ve AI'daki çeşitli uygulamalarına aşina olacaksınız. + +Bir Agent'ın ne olduğunu açıklamak için bir benzetmeyle başlayalım. + +## Genel Görünüm: Agent Alfred + +Alfred ile tanışın. Alfred bir **Agent** (Ajan). + +Alfred + +Alfred'in **bir komut aldığını** hayal edin, örneğin: "Alfred, bir kahve alabilir miyim lütfen?" + +Bir kahve alabilir miyim? + +Alfred **doğal dili anladığı** için isteğimizi hemen kavrar. + +Siparişi yerine getirmeden önce Alfred, **akıl yürütme ve planlama** sürecine girer; şu adımları ve gerekli araçları belirler: + +1. Mutfağa git +2. Kahve makinesini kullan +3. Kahveyi demle +4. Kahveyi geri getir + +Neden ve plan + +Bir planı olduğunda, **harekete geçmesi gerekir**. Planını uygulamak için, **bildiği araçlardan oluşan bir listeyi kullanabilir**. + +Bu durumda kahve yapmak için bir kahve makinesi kullanır. Kahve makinesini çalıştırarak kahveyi demler. + +Kahve yap + +Sonunda Alfred taze demlenmiş kahveyi bize getirir. + +Kahveyi getir + +Ve işte bir Agent budur: **akıl yürütme, planlama yapabilen ve çevresiyle etkileşim kurabilen bir AI modelidir.** + +Ona Agent diyoruz çünkü aracın vardır, yani çevresiyle etkileşime geçme yeteneği vardır. + +Agent prosesi + +## Biraz daha teorik olalım + +Artık genel bir fikriniz olduğuna göre, daha net bir tanım verelim: + +> Bir Agent, AI modelini kullanarak çevresiyle etkileşime geçen ve kullanıcı tanımlı bir hedefe ulaşmayı amaçlayan bir sistemdir. Akıl yürütme, planlama ve eylemlerin uygulanmasını (genellikle harici araçlar aracılığıyla) birleştirerek görevleri yerine getirir. + +Bir Agent'ı iki ana bölümden oluşan bir yapı olarak düşünebilirsiniz: + +1. **Beyin (Yapay Zeka (AI) Modeli)** + +Bütün düşünme burada gerçekleşir. AI modeli **akıl yürütme ve planlamadan sorumludur**. +**Duruma göre hangi Action (eylemler)** alınacağını belirler. + +2. **Gövde (Yetenekler ve Araçlar)** + +Bu bölüm, **Agent'ın yapabildiği her şeyi** temsil eder. + +**Mümkün olan eylemlerin kapsamı**, aracın **hangi yeteneklerle donatıldığına** bağlıdır. Örneğin insanlar kanatlara sahip olmadığı için "uçmak" eylemini gerçekleştiremez ama "yürümek", "koşmak", "zıplamak", "tutmak" gibi eylemleri gerçekleştirebilirler. + +### "Agency" Spektrumu + +Bu tanımı takip ederek, Agent'lar artan agency seviyelerine sahip bir sürekli spektrumda yer alırlar: + +| Agency Seviyesi | Açıklama | Adlandırma | ### Örnek desen | +| --- | --- | --- | --- | +| ☆☆☆ | Agent çıktısı program akışını etkilemez | Basit işlemci | `process_llm_output(llm_response)` | +| ★☆☆ | Agent çıktısı temel kontrol akışını belirler | Yönlendirici | `if llm_decision(): path_a() else: path_b()` | +| ★★☆ | Agent çıktısı işlev çağrısını belirler | Araç çağırıcı | `run_function(llm_chosen_tool, llm_chosen_args)` | +| ★★★ | Agent çıktısı yineleme ve programın devamını kontrol eder | Çok Adımlı Agent | `while llm_should_continue(): execute_next_step()` | +| ★★★ | Bir agentik iş akışı başka bir agentik iş akışını başlatabilir | Çoklu Agent | `if llm_trigger(): execute_agent()` | + +Tablo: [smolagents kavramsal rehberinden](https://huggingface.co/docs/smolagents/conceptual_guides/intro_agents) + +## Agent'lar için hangi tür AI modelleri kullanılır? + +Agent'larda en sık kullanılan AI modeli, girdi olarak **Metin** alıp çıkış olarak da **Metin** veren LLM (büyük dil modelleri)'dir. + +Bilinen örnekler arasında **OpenAI**'dan **GPT4**, **Meta**'dan **Llama**, **Google**'dan **Gemini** gibi modeller vardır. Bu modeller büyük miktarda metin üzerinde eğitilmiştir ve genelleme konusunda oldukça iyidirler. LLM'ler hakkında [bir sonraki bölümde](what-are-llms) daha fazla bilgi edineceğiz. + + +Agent'ın çekirdek modeli olarak başka girdi türlerini kabul eden modeller kullanmak da mümkündür. Örneğin, bir Vision Language Model (VLM - Görüntü Dili Modeli), bir LLM gibidir ama görüntüleri de girdi olarak anlayabilir. Şimdilik LLM'lere odaklanacağız ve diğer seçenekleri daha sonra tartışacağız. + + +## AI çevresine nasıl etki eder? + +LLM'ler harika modellerdir ama **yalnızca metin üretebilirler**. + +Peki ama HuggingChat veya ChatGPT gibi bilinen sohbet uygulamalarından bir resim üretmelerini istediğimizde bunu nasıl yapabiliyorlar? + +Cevap şu: HuggingChat, ChatGPT ve benzeri uygulamaların geliştiricileri, LLM'nin kullanabileceği ek işlevsellikler (yani **Tools** (Araçlar)) eklemiştir. + +
+Brokoliden Eyfel +
Model bu resmi üretmek için bir Görüntü Üretim Aracı kullandı.
+
+ +Araçlar hakkında daha fazla bilgiyi [Araçlar](tools) bölümünde öğreneceğiz. + +## Bir Agent ne tür görevler yapabilir? + +Bir Agent, eylemleri tamamlamak için uygulanmış olan araçlar aracılığıyla herhangi bir görevi gerçekleştirebilir. + +Örneğin bilgisayarımda bir kişisel asistan (Siri gibi) görevi görecek bir Agent yazdım diyelim ve ona "Yöneticime bugünkü toplantının ertelenmesini isteyen bir e-posta gönder." dedim. Ona e-posta gönderebilecek bir kod verebilirim. Bu, Agent'ın e-posta göndermesi gerektiğinde kullanabileceği yeni bir araç olur. Bunu Python ile yazabiliriz: + +
+Türkçe çeviriyi görmek için tıklayın +```python +def send_message_to(recipient, message): + """Bir alıcıya e-posta mesajı göndermek için kullanışlıdır""" + ... +``` +
+ +```python +def send_message_to(recipient, message): + """Useful to send an e-mail message to a recipient""" + ... +``` + +LLM, göreceğimiz gibi, gerektiğinde bu aracı çalıştırmak için kod üretecek ve böylece istenen görevi yerine getirecek. + +
+Türkçe çeviriyi görmek için tıklayın +```python +send_message_to("Yönetici", "Bugünkü toplantıyı erteleyebilir miyiz?") +``` +
+ +```python +send_message_to("Manager", "Can we postpone today's meeting?") +``` + +**Araçların tasarımı çok önemlidir ve Agent'ın kalitesi üzerinde büyük etki yaratır.** Bazı görevler çok özel araçlar gerektirirken, bazıları "web_search" gibi genel amaçlı araçlarla çözülebilir. + +> Not: **Eylemler araçlarla aynı şey değildir.** Örneğin bir eylem, birden fazla aracın kullanılmasını gerektirebilir. + +Bir Agent'ın çevresiyle etkileşime geçebilmesi, **şirketler ve bireyler için gerçek hayatta kullanılabilirliği mümkün kılar.** + +### Örnek 1: Kişisel Sanal Asistanlar +Siri, Alexa veya Google Assistant gibi sanal asistanlar, kullanıcıların dijital ortamlarıyla etkileşim kurarken Agent olarak çalışırlar. + +Kullanıcı isteklerini alır, bağlamı analiz eder, veritabanlarından bilgi çeker ve yanıtlar verir veya eylemleri başlatırlar (örneğin hatırlatıcı ayarlamak, mesaj göndermek, akıllı cihazları kontrol etmek). + +### Örnek 2: Müşteri Hizmetleri Sohbet Botları +Birçok şirket, müşterilerle doğal dilde etkileşim kuran sohbet botlarını Agent olarak sunar. + +Bu Agent'lar soruları yanıtlayabilir, kullanıcıyı sorun giderme adımlarında yönlendirebilir, iç veritabanlarında kayıt açabilir veya işlemleri tamamlayabilirler. + +Önceden belirlenmiş hedefleri; kullanıcı memnuniyetini artırmak, bekleme sürelerini azaltmak veya satış dönüşüm oranlarını yükseltmek olabilir. Müşterilerle doğrudan etkileşime girerek, diyaloglardan öğrenerek ve yanıtlarını zamanla geliştirerek, bir Agent'ın temel ilkelerini uygulamış olurlar. + +### Örnek 3: Video oyunlarında AI Kontrollü Karakterler (NPC) +LLM destekli AI Agent'lar, oyunlardaki Yapay Zeka Karakterlerini (NPC) daha dinamik ve öngörülemez hale getirebilir. + +Katı davranış ağaçları yerine, **bağlama uygun şekilde yanıt verebilir, oyuncu etkileşimlerine uyum sağlayabilir** ve daha incelikli diyaloglar üretebilirler. Bu esneklik, oyuncularla birlikte evrilen daha gerçekçi ve etkileyici karakterler yaratılmasına olanak tanır. + +--- + +Özetlemek gerekirse, bir Agent, ana düşünme motoru olarak bir AI Model (genellikle bir LLM) kullanan bir sistemdir ve: + +- **Doğal dili anlar:** İnsan talimatlarını anlamlı şekilde yorumlar ve yanıtlar. + +- **Akıl yürütme ve planlama yapar:** Bilgileri analiz eder, kararlar alır ve stratejiler geliştirir. + +- **Çevresiyle etkileşim kurar:** Bilgi toplar, eylemler gerçekleştirir ve bu eylemlerin sonuçlarını gözlemler. + +Artık Agent'ların ne olduğu konusunda sağlam bir kavrayışa sahipsiniz. Şimdi bu bilgileri kısa, notsuz bir sınavla pekiştireceğiz. Daha sonra "Agent'ın beynini" inceleyeceğiz: [LLM'ler](what-are-llms). \ No newline at end of file From c0a74ce2e582a2f3769ef636bfb13d711e8533ef Mon Sep 17 00:00:00 2001 From: seccily Date: Mon, 14 Apr 2025 09:24:59 +0300 Subject: [PATCH 19/30] typo --- units/tr/unit1/agent-steps-and-structure.mdx | 2 +- units/tr/unit1/dummy-agent-library.mdx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/units/tr/unit1/agent-steps-and-structure.mdx b/units/tr/unit1/agent-steps-and-structure.mdx index 307a0e8b0..67d0190c5 100644 --- a/units/tr/unit1/agent-steps-and-structure.mdx +++ b/units/tr/unit1/agent-steps-and-structure.mdx @@ -1,6 +1,6 @@ # Düşünce-Eylem-Gözlem Döngüsüyle AI Agent'ları Anlamak -Ünite 1 planlama +Ünite 1 planı Önceki bölümlerde şunları öğrendik: diff --git a/units/tr/unit1/dummy-agent-library.mdx b/units/tr/unit1/dummy-agent-library.mdx index cf5594e7a..1aecbca42 100644 --- a/units/tr/unit1/dummy-agent-library.mdx +++ b/units/tr/unit1/dummy-agent-library.mdx @@ -1,6 +1,6 @@ # Dummy Agent Kütüphanesi -Ünite 1 planlaması +Ünite 1 planısı Bu kurs herhangi bir framework'e bağlı değildir çünkü **AI Agent'ların kavramlarına odaklanmak ve belirli bir framework'ün detaylarında kaybolmamak** istiyoruz. From 084b5b27d18a8f2318bc9d598fccf45d3267efc7 Mon Sep 17 00:00:00 2001 From: seccily Date: Mon, 14 Apr 2025 09:54:34 +0300 Subject: [PATCH 20/30] translate unit1 - llms --- units/tr/unit1/what-are-llms.mdx | 223 +++++++++++++++++++++++++++++++ 1 file changed, 223 insertions(+) create mode 100644 units/tr/unit1/what-are-llms.mdx diff --git a/units/tr/unit1/what-are-llms.mdx b/units/tr/unit1/what-are-llms.mdx new file mode 100644 index 000000000..66bcc68fd --- /dev/null +++ b/units/tr/unit1/what-are-llms.mdx @@ -0,0 +1,223 @@ +# LLM (Büyük Dil Modelleri) Nedir? + +Unit 1 planning + +Önceki bölümde her Agent'ın **çekirdeğinde bir Yapay Zeka Modeline** ihtiyacı olduğunu ve bu amaçla en yaygın kullanılan model türünün LLM'ler olduğunu öğrendik. + +Şimdi LLM'lerin ne olduğunu ve Agent'ları nasıl çalıştırdığını öğreneceğiz. + +Bu bölüm, LLM'lerin kullanımına dair kısa ve teknik bir açıklama sunar. Daha derine inmek isterseniz, ücretsiz Doğal Dil İşleme Kursumuza göz atabilirsiniz. + +## Büyük Dil Modeli Nedir? + +LLM, **insan dilini anlama ve üretme** konusunda son derece başarılı bir yapay zeka modelidir. Bu modeller, dili yapı, kalıp ve hatta nüanslarıyla öğrenebilmek için çok büyük miktarda metin verisi üzerinde eğitilir. Genellikle milyonlarca parametre içerirler. + +Günümüzdeki LLM'lerin çoğu **Transformer mimarisi** üzerine kuruludur — 2018'de Google tarafından yayımlanan BERT modelinden bu yana büyük ilgi gören ve "Attention" (dikkat) algoritmasına dayanan bir derin öğrenme mimarisi. + +
+Transformer +
Orijinal Transformer mimarisi bu şekildedir: solda bir encoder (kodlayıcı), sağda ise bir decoder (kod çözücü) yer alır.
+
+ +Transformer'ların 3 türü vardır: + +1. **Encoder'lar** + Encoder tabanlı bir Transformer, metni (veya başka bir veriyi) girdi olarak alır ve bu metnin yoğun bir gösterimini (embedding) üretir. + + - **Örnek**: Google'dan BERT + - **Kullanım Alanları**: Metin sınıflandırma, anlamsal arama, adlandırılmış varlık tanıma (Named Entity Recognition - NER) + - **Tipik Boyut**: Milyonlarca parametre + +2. **Decoder'lar** + Decoder tabanlı bir Transformer, **bir diziyi tamamlamak için her seferinde bir belirteç (belirteç) üreterek** çalışır. + + - **Örnek**: Meta'dan Llama + - **Kullanım Alanları**: Metin üretimi, sohbet robotları, kod üretimi + - **Tipik Boyut**: Milyarlarca parametre + +3. **Seq2Seq (Encoder–Decoder)** + Dizi-dönüştürücü (sequence-to-sequence) Transformer, bir encoder ve bir decoder'ı _birleştirir_. Encoder önce girdi dizisini bağlamsal bir temsil haline getirir, ardından decoder bu temsile göre bir çıktı dizisi üretir. + + - **Örnek**: T5, BART + - **Kullanım Alanları**: Çeviri, Özetleme, Parafrazlama + - **Tipik Boyut**: Milyonlarca parametre + +Her ne kadar LLM'ler farklı biçimlerde gelebilse de, LLM'ler genellikle milyarlarca parametreye sahip decoder tabanlı modellerdir. İşte en bilinen LLM'lerden bazıları: + +| **Model** | **Sağlayıcı** | +|-----------------------------------|--------------------------------------------| +| **Deepseek-R1** | DeepSeek | +| **GPT4** | OpenAI | +| **Llama 3** | Meta (Facebook AI Research) | +| **SmolLM2** | Hugging Face | +| **Gemma** | Google | +| **Mistral** | Mistral | + +LLM'lerin temel prensibi basit ama etkili: **önceki belirteçlerdan oluşan bir diziyi baz alarak bir sonraki belirteçi tahmin etmek**. "Belirteç", bir LLM'in çalıştığı bilgi birimidir. Bunu bir "kelime" gibi düşünebilirsiniz, fakat verimlilik açısından LLM'ler tüm kelimeleri kullanmaz. + +Örneğin, İngilizce'de yaklaşık 600.000 kelime varken, Llama 2 gibi bir model yalnızca yaklaşık 32.000 belirteçlik bir kelime dağarcığına sahiptir. Tokenizasyon genellikle kelime-altı birimler üzerinden yapılır. + +Mesela "interest" ve "ing" belirteçleri birleştirilerek "interesting" elde edilebilir. Ya da "ed" eklenerek "interested" oluşturulabilir. + +Aşağıdaki etkileşimli oynatma alanında farklı belirteçleyicileri deneyebilirsiniz: + + + +Her LLM'in **kendine özgü özel belirteçleri** vardır. Model, bu belirteçleri oluşturduğu yapının başını ve sonunu belirtmek için kullanır. Örneğin, bir dizinin, mesajın ya da cevabın başlangıç ya da bitişini belirtmek için. Girdi olarak verdiğimiz istemler (prompts) de özel belirteçlerle yapılandırılır. Bunların en önemlisi **Dizi Sonu Token'ıdır (end of sequence - EOS)**. + +Bu özel belirteçlerin biçimi, model sağlayıcısına göre çok farklılık gösterebilir. + +Aşağıdaki tablo, özel belirteçlerin çeşitliliğini göstermektedir: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ModelSağlayıcıEOS Belirteciİşlev
GPT4OpenAI<|endoftext|>Mesaj metninin sonu
Llama 3Meta (Facebook AI Research)<|eot_id|>Dizi sonu
Deepseek-R1DeepSeek<|end_of_sentence|>Mesaj metninin sonu
SmolLM2Hugging Face<|im_end|>Talimat veya mesajın sonu
GemmaGoogle<end_of_turn>Konuşma turunun sonu
+ + + +Bu özel belirteçleri ezberlemeniz beklenmiyor, ancak çeşitliliklerini ve metin üretimindeki rollerini anlamak önemlidir. Daha fazla bilgi için modelin Hub sayfasındaki yapılandırma dosyalarını inceleyebilirsiniz. Örneğin, SmolLM2 modelinin özel belirteçlerinı şu dosyada görebilirsiniz: tokenizer_config.json. + + + +## Bir Sonraki Belirteç Tahminini Anlamak + +LLM'lerin **oto-regresif** olduğu söylenir, yani **bir geçişteki çıktı, bir sonraki geçişin girdisi olur**. Bu döngü, model bir EOS (dizi sonu) belirteci tahmin edene kadar devam eder; o noktada model durabilir. + +Oto-regresif kod çözmenin görsel GIF'i + +Başka bir deyişle, bir LLM metni EOS'a ulaşana kadar çözer. Peki tek bir kod çözme döngüsü sırasında ne olur? + +Agent'ları öğrenme amacıyla tüm süreç oldukça teknik olsa da, işte kısa bir genel bakış: + +- Girdi metni **belirteçlere** ayrıldıktan sonra, model her bir belirtecin anlamı ve giriş dizisindeki konumuyla ilgili bilgileri yakalayan bir temsil hesaplar. +- Bu temsil, modelin her belirtecin sıradaki olma olasılığına göre sıraladığı skorları çıktıladığı modele verilir. + +Kod çözmenin görsel GIF'i + +Bu skorlara göre, cümleyi tamamlamak için belirteç seçmenin birden çok stratejisi vardır: + +- En basit kod çözme stratejisi, her zaman en yüksek skora sahip belirteci seçmektir. + +Kod çözme süreciyle kendiniz etkileşime geçebilirsiniz. Bu Space'te SmolLM2 ile oynayabilirsiniz (unutmayın, bu model **EOS** belirteci olan **<|im_end|>**'e ulaşana kadar kod çözer): + + + +- Ama daha gelişmiş kod çözme stratejileri de vardır. Örneğin, *beam search*, birden fazla aday diziyi keşfederek toplam skoru en yüksek olanı bulmaya çalışır — bireysel bazı belirteçlerin skoru düşük olsa bile. + + + +Kod çözme hakkında daha fazla bilgi edinmek isterseniz, [Doğal Dil İşleme kursuna](https://huggingface.co/learn/nlp-course) göz atabilirsiniz. + +## Attention (Dikkat): Tek İhtiyacınız Olan Şey + +Transformer mimarisinin temel bir yönü **Attention (Dikkat Mekanizması)**dır. Bir sonraki kelimeyi tahmin ederken, cümledeki her kelime eşit derecede önemli değildir; *"Fransa'nın başkenti..."* cümlesinde "Fransa" ve "başkenti" gibi kelimeler en anlamlı olanlardır. + +Attention'ın görsel GIF'i + +Bir sonraki belirteci tahmin etmek için en alakalı kelimeleri belirleme süreci son derece etkili olduğunu kanıtlamıştır. + +LLM'lerin temel ilkesi — bir sonraki belirteci tahmin etme — GPT-2'den bu yana aynı kalsa da, sinir ağlarının ölçeklenmesi ve dikkat mekanizmasının daha uzun dizilerde çalıştırılması konusunda büyük gelişmeler yaşanmıştır. + +Eğer LLM'lerle etkileşime geçtiyseniz, muhtemelen *context length* (bağlam uzunluğu) terimine aşinasınızdır. Bu, LLM'in işleyebileceği maksimum belirteç sayısını ve dolayısıyla maksimum *dikkat aralığını* ifade eder. + +## LLM'leri Yönlendirmek: Prompting (İstem) + +Bir LLM'in tek görevinin tüm girdi belirteçlerine bakarak bir sonraki belirteci tahmin etmek ve hangilerinin "önemli" olduğunu seçmek olduğunu düşünürsek, girdi dizinizin nasıl yazıldığı çok önemlidir. + +LLM'e sağladığınız girdi dizisine _prompt_ (istem) denir. Prompt'u dikkatli bir şekilde tasarlamak, **LLM'in çıktısını istenen sonuca yönlendirmeyi kolaylaştırır**. + +## LLM'ler Nasıl Eğitilir? + +LLM'ler, büyük metin veri kümeleri üzerinde eğitilir. Bu süreçte model, kendiliğinden denetimli (self-supervised) ya da maskeleme temelli dil modelleme (masked language modeling) görevleri aracılığıyla bir sonraki kelimeyi tahmin etmeyi öğrenir. + +Bu denetimsiz öğrenme sayesinde model dilin yapısını ve **metindeki temel kalıpları öğrenir, böylece daha önce hiç görmediği verilerde genelleme yapabilir**. + +Bu ilk _ön-eğitimden_ (pre-training) sonra, LLM'ler belirli görevler için denetimli öğrenmeyle _ince-ayar (fine-tuning)_ yapılabilir. Örneğin, bazı modeller diyalog yapıları ya da araç kullanımı için eğitilirken, bazıları sınıflandırma ya da kod üretimi üzerine odaklanır. + +## LLM'leri Nasıl Kullanabilirim? + +İki temel seçeneğiniz var: + +1. **Yerel Olarak Çalıştırmak** (donanımınız yeterliyse). + +2. **Bulut/API Kullanmak** (örneğin HuggingFace Serverless Inference API aracılığıyla). + +Bu kurs boyunca, ağırlıklı olarak modelleri HuggingFace Hub üzerinden API'ler aracılığıyla kullanacağız. Daha sonra bu modelleri kendi donanımınızda nasıl çalıştırabileceğinizi de göreceğiz. + +## LLM'ler Yapay Zeka Agent'larında Nasıl Kullanılır? + +LLM'ler, yapay zeka Agent'larının temel bir bileşenidir. **İnsan dilini anlama ve üretme temelini sağlarlar**. + +Kullanıcı talimatlarını yorumlayabilir, konuşmalarda bağlamı sürdürebilir, bir plan tanımlayabilir ve hangi araçları kullanacağına karar verebilirler. + +Bu adımları bu ünitenin ilerleyen kısımlarında daha ayrıntılı inceleyeceğiz. Ama şimdilik bilmeniz gereken şey: LLM, **Agent'ın beynidir**. + +--- + +Oldukça fazla şey öğrendik! LLM'lerin ne olduklarını, nasıl çalıştıklarını ve yapay zeka Agent'larını nasıl güçlendirdiklerini temel düzeyde inceledik. + +Eğer dil modelleri ve doğal dil işleme dünyasına daha da derinlemesine dalmak isterseniz, ücretsiz NLP kursumuza göz atabilirsiniz. + +Artık LLM'lerin nasıl çalıştığını bildiğimize göre, **LLM'lerin üretimlerini konuşma bağlamında nasıl yapılandırdığını** görme zamanı. + +Bu notebook'u çalıştırmak için **bir HuggingFace token'ına** ihtiyacınız var. Bunu https://hf.co/settings/tokens adresinden alabilirsiniz. + +Jupyter Notebook'ları nasıl çalıştıracağınızı öğrenmek için HuggingFace Hub'daki Jupyter Notebooklar sayfasına göz atın. + +Ayrıca Meta Llama modelleri için erişim talep etmeniz gerekir. +""" + From f6b589366f8ebc29986d6630ee66735d1630820b Mon Sep 17 00:00:00 2001 From: seccily Date: Mon, 14 Apr 2025 11:52:00 +0300 Subject: [PATCH 21/30] translate unit1 - tutorial --- units/tr/unit1/tutorial.mdx | 343 ++++++++++++++++++++++++++++++++++++ 1 file changed, 343 insertions(+) create mode 100644 units/tr/unit1/tutorial.mdx diff --git a/units/tr/unit1/tutorial.mdx b/units/tr/unit1/tutorial.mdx new file mode 100644 index 000000000..f016b68bf --- /dev/null +++ b/units/tr/unit1/tutorial.mdx @@ -0,0 +1,343 @@ +# smolagents Kullanarak İlk Agent'ımızı Oluşturalım + +Son bölümde, Python kodu kullanarak sıfırdan nasıl Agent oluşturabileceğimizi öğrendik ve **bu sürecin ne kadar zahmetli olabileceğini de gördük**. Neyse ki, birçok Agent kütüphanesi bu işi **sizin için ağır işlerin çoğunu üstlenerek** kolaylaştırıyor. + +Bu derste, görüntü oluşturma, web araması yapma, saat dilimi kontrolü gibi işlemleri yapabilen **ilk Agent'ınızı oluşturacaksınız**! + +Ayrıca oluşturduğunuz Agent'ı **bir HuggingFace Space üzerinde yayınlayarak arkadaşlarınızla ve iş arkadaşlarınızla paylaşabileceksiniz**. + +Haydi başlayalım! + + +## smolagents Nedir? + +smolagents + +Bu Agent'ı oluşturmak için, **Agent'larınızı kolayca geliştirmeniz için bir framework sağlayan** `smolagents` kütüphanesini kullanacağız. + +Bu kütüphane, sadelik için tasarlanmıştır, ancak bir Agent oluşturmanın karmaşıklığının büyük kısmını soyutlayarak sizin Agent davranışını tasarlamaya odaklanmanıza olanak tanır. + +smolagents hakkında daha derine Ünite 2'de ineceğiz. Bu sırada, bu blog yazısına veya kütüphanenin GitHub reposuna göz atabilirsiniz. + +Kısacası, `smolagents`, **"Actions" (Eylemler)** gerçekleştiren ve ardından kodu çalıştırarak **"Observes" (Gözlemler)** yapan bir tür Agent olan **codeAgent** üzerine odaklanan bir kütüphanedir. + +İşte inşa edeceğimiz şeyin bir örneği! + +Agent'ımıza bir **Görüntü oluşturma aracı** sağladık ve ondan bir kedi resmi oluşturmasını istedik. + +`smolagents` içindeki Agent, daha önce sıfırdan oluşturduğumuz özel Agent'ın **aynı davranışlarına** sahip olacak: **düşünecek, harekete geçecek ve gözlemleyecek** — bu döngüde, nihai cevaba ulaşana kadar devam edecek: + + + +Heyecan verici, değil mi? + +## Haydi Agent'ımızı Oluşturalım! + +Başlamak için bu Space'i kopyalayın: https://huggingface.co/spaces/agents-course/First_agent_template +> Bu şablon için Aymeric'e teşekkürler! 🙌 + + +Bu Space'i kopyalamak, **kendi profilinizde yerel bir kopya oluşturmanız** anlamına gelir: +Kopyala + +Space'i kopyaladıktan sonra, Agent'ınızın model API'sine erişebilmesi için HuggingFace API token'ınızı eklemeniz gerekecek: + +1. Eğer hala yoksa, [https://hf.co/settings/tokens](https://hf.co/settings/tokens) adresinden çıkarım (inference) izni olan bir HuggingFace token'ı alın +2. Kopyaladığınız Space'e gidin ve **Settings** (ayarlar) sekmesine tıklayın +3. **Variables and Secrets** bölümüne kadar kaydırın ve **New Secret** butonuna tıklayın +4. `HF_TOKEN` adında yeni bir secret oluşturun ve token'ınızı değer olarak yapıştırın +5. **Save** (kaydet) butonuna tıklayarak token'ınızı güvenli şekilde kaydedin + +Bu ders boyunca düzenlemeniz gereken tek dosya, şu an eksik olan **"app.py"** dosyası olacak. [Şablondaki orijinal dosyayı buradan](https://huggingface.co/spaces/agents-course/First_agent_template/blob/main/app.py) görebilirsiniz. Kendi dosyanızı bulmak için Space'inize gidin, `Files` (dosyalar) sekmesine tıklayın ve dizin listesinden `app.py`'ye tıklayın. + +Haydi birlikte kodu inceleyelim: + +- Dosya, bazı basit ama gerekli kütüphane import'larıyla başlıyor + +```python +from smolagents import CodeAgent, DuckDuckGoSearchTool, FinalAnswerTool, HfApiModel, load_tool, tool +import datetime +import requests +import pytz +import yaml +``` + +Daha önce belirttiğimiz gibi, doğrudan **smolagents** içindeki **CodeAgent** sınıfını kullanacağız. + + +### Tools (Araçlar) + +Şimdi araçlara geçelim! Araçlar hakkında hatırlatma istiyorsanız, kursun [Araçlar](tools) bölümüne geri dönmekten çekinmeyin. + +
+Türkçe çeviriyi görmek için tıklayın +```python +@tool +def my_custom_tool(arg1:str, arg2:int)-> str: # dönüş türünü belirtmek önemlidir + # Araç açıklaması / argüman açıklaması formatını koruyun ama aracı değiştirmekte özgürsünüz + """Henüz hiçbir şey yapmayan bir araç + Args: + arg1: birinci argüman + arg2: ikinci argüman + """ + return "Ne tür bir sihir inşa edeceksin?" + +@tool +def get_current_time_in_timezone(timezone: str) -> str: + """Belirtilen bir saat dilimindeki yerel saati getiren bir araç. + Args: + timezone: Geçerli bir saat dilimini temsil eden bir string (örneğin, 'America/New_York'). + """ + try: + # Saat dilimi nesnesi oluştur + tz = pytz.timezone(timezone) + # Bu saat dilimindeki geçerli zamanı al + local_time = datetime.datetime.now(tz).strftime("%Y-%m-%d %H:%M:%S") + return f"{timezone} saat dilimindeki yerel saat: {local_time}" + except Exception as e: + return f"'{timezone}' saat dilimi için zaman alınırken hata oluştu: {str(e)}" +``` +
+ +```python +@tool +def my_custom_tool(arg1:str, arg2:int)-> str: # dönüş türünü belirtmek önemlidir + # Araç açıklaması / argüman açıklaması formatını koruyun ama aracı değiştirmekte özgürsünüz + """A tool that does nothing yet + Args: + arg1: the first argument + arg2: the second argument + """ + return "What magic will you build ?" + +@tool +def get_current_time_in_timezone(timezone: str) -> str: + """A tool that fetches the current local time in a specified timezone. + Args: + timezone: A string representing a valid timezone (e.g., 'America/New_York'). + """ + try: + # Saat dilimi nesnesi oluştur + tz = pytz.timezone(timezone) + # Bu saat dilimindeki geçerli zamanı al + local_time = datetime.datetime.now(tz).strftime("%Y-%m-%d %H:%M:%S") + return f"The current local time in {timezone} is: {local_time}" + except Exception as e: + return f"Error fetching time for timezone '{timezone}': {str(e)}" +``` + + +Bu bölümde inşa etmenizi teşvik ettiğimiz şey araçlar! + +İki örnek veriyoruz: + +1. **Çalışmayan sahte bir araç** — bunu faydalı bir şeye dönüştürebilirsiniz +2. Dünyadaki herhangi bir yerin geçerli saatini döndüren **çalışan bir araç** + +Kendi aracınızı tanımlarken şunlara dikkat etmelisiniz: + +1. Fonksiyonunuz için girdi ve çıktı türlerini belirtin, örn. `get_current_time_in_timezone(timezone: str) -> str:` +2. **İyi biçimlendirilmiş bir docstring ekleyin.** `smolagents`, tüm argümanların **docstring içinde açıklanmasını** bekler. + +### Agent +Bu Agent, LLM (büyük dil modelleri) motoru olarak [`Qwen/Qwen2.5-Coder-32B-Instruct`](https://huggingface.co/Qwen/Qwen2.5-Coder-32B-Instruct) kullanıyor. Bu, serverless API aracılığıyla erişeceğimiz oldukça yetenekli bir modeldir. + +```python +final_answer = FinalAnswerTool() +model = HfApiModel( + max_tokens=2096, + temperature=0.5, + model_id='Qwen/Qwen2.5-Coder-32B-Instruct', + custom_role_conversions=None, +) + +with open("prompts.yaml", 'r') as stream: + prompt_templates = yaml.safe_load(stream) + +# CodeAgent'ımızı oluşturuyoruz +agent = CodeAgent( + model=model, + tools=[final_answer], # araçlarınızı buraya ekleyin (final_answer'ı silmeyin) + max_steps=6, + verbosity_level=1, + grammar=None, + planning_interval=None, + name=None, + description=None, + prompt_templates=prompt_templates +) + +GradioUI(agent).launch() +``` + +Bu Agent hala, daha önceki bölümde gördüğümüz `InferenceClient`'ı, **HfApiModel** sınıfı üzerinden kullanıyor! + +Framework'ü Ünite 2'de daha ayrıntılı örneklerle anlatacağız. Şimdilik, odaklanmanız gereken şey `tools` parametresi ile **yeni araçlar ekleyerek** Agent'ınızı geliştirmek. + +Örneğin, ilk satırda import edilen `DuckDuckGoSearchTool`'u kullanabilir veya kodun ilerleyen kısmında Hub'dan yüklenen `image_generation_tool`'u inceleyebilirsiniz. + +**Yeni araçlar eklemek, Agent'ınıza yeni yetenekler kazandıracaktır**, bu konuda yaratıcı olmaya çalışın! + +### Sistem Prompt'u (İstemi) + +Agent'ın sistem Prompt'u ayrı bir `prompts.yaml` dosyasında saklanır. Bu dosya, Agent'ın davranışlarını yönlendiren önceden tanımlanmış talimatları içerir. + +Prompt'ları bir YAML dosyasında saklamak, farklı Agent'lar veya kullanım senaryoları arasında kolayca özelleştirme ve yeniden kullanımı sağlar. + +`prompts.yaml` dosyasının nerede bulunduğunu ve proje içinde nasıl organize edildiğini görmek için [Space'in dosya yapısını](https://huggingface.co/spaces/agents-course/First_agent_template/tree/main) kontrol edebilirsiniz. + +Tam "app.py" dosyası: + +
Türkçe çeviriyi görmek için tıklayın. +```python +from smolagents import CodeAgent, DuckDuckGoSearchTool, HfApiModel, load_tool, tool +import datetime +import requests +import pytz +import yaml +from tools.final_answer import FinalAnswerTool + +from Gradio_UI import GradioUI + +# Aşağıda hiçbir şey yapmayan bir araç örneği var. Bizi yaratıcılığınla şaşırt! +@tool +def my_custom_tool(arg1:str, arg2:int)-> str: # dönüş tipi belirtmek önemli + # Araç açıklaması / argüman açıklaması formatını koruyun ama aracı değiştirmekte özgürsünüz + """Henüz hiçbir şey yapmayan bir araç + Args: + arg1: birinci argüman + arg2: ikinci argüman + """ + return "Ne tür bir sihir inşa edeceksin?" + +@tool +def get_current_time_in_timezone(timezone: str) -> str: + """Belirtilen bir saat dilimindeki yerel saati getiren bir araç. + Args: + timezone: Geçerli bir saat dilimini temsil eden bir string (örneğin, 'America/New_York'). + """ + try: + # Saat dilimi nesnesi oluştur + tz = pytz.timezone(timezone) + # Bu saat dilimindeki geçerli zamanı al + local_time = datetime.datetime.now(tz).strftime("%Y-%m-%d %H:%M:%S") + return f"{timezone} saat dilimindeki yerel saat: {local_time}" + except Exception as e: + return f"'{timezone}' saat dilimi için zaman alınırken hata oluştu: {str(e)}" + + +final_answer = FinalAnswerTool() +model = HfApiModel( + max_tokens=2096, + temperature=0.5, + model_id='Qwen/Qwen2.5-Coder-32B-Instruct', + custom_role_conversions=None, +) + + +# Hub'dan araç import et +image_generation_tool = load_tool("agents-course/text-to-image", trust_remote_code=True) + +# Sistem prompt'unu prompt.yaml dosyasından yükle +with open("prompts.yaml", 'r') as stream: + prompt_templates = yaml.safe_load(stream) + +agent = CodeAgent( + model=model, + tools=[final_answer], # araçlarınızı buraya ekleyin (final_answer'ı silmeyin) + max_steps=6, + verbosity_level=1, + grammar=None, + planning_interval=None, + name=None, + description=None, + prompt_templates=prompt_templates # Sistem prompt'unu CodeAgent'e aktar +) + + +GradioUI(agent).launch() +``` +
+ +```python +from smolagents import CodeAgent, DuckDuckGoSearchTool, HfApiModel, load_tool, tool +import datetime +import requests +import pytz +import yaml +from tools.final_answer import FinalAnswerTool + +from Gradio_UI import GradioUI + +# Below is an example of a tool that does nothing. Amaze us with your creativity! +@tool +def my_custom_tool(arg1:str, arg2:int)-> str: # it's important to specify the return type + # Keep this format for the tool description / args description but feel free to modify the tool + """A tool that does nothing yet + Args: + arg1: the first argument + arg2: the second argument + """ + return "What magic will you build ?" + +@tool +def get_current_time_in_timezone(timezone: str) -> str: + """A tool that fetches the current local time in a specified timezone. + Args: + timezone: A string representing a valid timezone (e.g., 'America/New_York'). + """ + try: + # Create timezone object + tz = pytz.timezone(timezone) + # Get current time in that timezone + local_time = datetime.datetime.now(tz).strftime("%Y-%m-%d %H:%M:%S") + return f"The current local time in {timezone} is: {local_time}" + except Exception as e: + return f"Error fetching time for timezone '{timezone}': {str(e)}" + + +final_answer = FinalAnswerTool() + model = HfApiModel( + max_tokens=2096, + temperature=0.5, + model_id='Qwen/Qwen2.5-Coder-32B-Instruct', + custom_role_conversions=None, +) + + +# Import tool from Hub +image_generation_tool = load_tool("agents-course/text-to-image", trust_remote_code=True) + +# Load system prompt from prompt.yaml file +with open("prompts.yaml", 'r') as stream: + prompt_templates = yaml.safe_load(stream) + +agent = CodeAgent( + model=model, + tools=[final_answer], # add your tools here (don't remove final_answer) + max_steps=6, + verbosity_level=1, + grammar=None, + planning_interval=None, + name=None, + description=None, + prompt_templates=prompt_templates # Pass system prompt to CodeAgent +) + + +GradioUI(agent).launch() +``` + +**Amacınız**, Space'e ve Agent'e aşina olmaktır. + +Şu anda, şablondaki Agent **herhangi bir araç kullanmıyor, bu yüzden ona bazı hazır araçları sağlamayı veya kendi araçlarınızı yazmayı deneyin!** + +Discord kanalımızda **#agents-course-showcase** adlı kanalda harika Agent çıktılarınızı sabırsızlıkla bekliyoruz! + +Tebrikler, ilk Agent'ınızı oluşturdunuz! Bunu arkadaşlarınız ve iş arkadaşlarınızla paylaşmaktan çekinmeyin. + +Bu ilk denemeniz olduğu için, biraz hatalı ya da yavaş çalışması tamamen normaldir. İlerleyen ünitelerde, daha iyi Agent'lar nasıl oluşturulur, bunu öğreneceğiz. + +Öğrenmenin en iyi yolu denemektir, bu yüzden Agent'ınızı güncelleyin, yeni araçlar ekleyin, farklı bir modelle deneyin vs. + +Bir sonraki bölümde, son Sınav'ı tamamlayacak ve sertifikanızı alacaksınız! \ No newline at end of file From 575a934774524c22a622a5b3096876f0fb3577fc Mon Sep 17 00:00:00 2001 From: seccily Date: Mon, 14 Apr 2025 13:35:51 +0300 Subject: [PATCH 22/30] translate unit1 - tools --- units/tr/unit1/tools.mdx | 476 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 476 insertions(+) create mode 100644 units/tr/unit1/tools.mdx diff --git a/units/tr/unit1/tools.mdx b/units/tr/unit1/tools.mdx new file mode 100644 index 000000000..b7a2a2cf5 --- /dev/null +++ b/units/tr/unit1/tools.mdx @@ -0,0 +1,476 @@ +# Tools (Araçlar) Nedir? + +Ünite 1 planı + +AI Agent (Ajan) yapılarının en kritik özelliklerinden biri **eylem** gerçekleştirebilme yetenekleridir. Daha önce de gördüğümüz gibi, bu eylemler **Tools (Araçlar)** kullanılarak gerçekleştirilir. + +Bu bölümde, araçlar nedir, nasıl etkili bir şekilde tasarlanır ve bu araçlar Agent sistem mesajına nasıl entegre edilir bunu öğreneceğiz. + +Agent'ınıza doğru araçlar vererek — ve bu araçların nasıl çalıştığını açıkça tanımlayarak — AI'nızın başarabileceklerini dramatik şekilde artırabilirsiniz. Haydi başlayalım! + +## AI Tools (Yapayu Zeka Araçları) Nedir? + +**Araç, LLM (büyük dil modelleri)'e verilen bir fonksiyondur**. Bu fonksiyonun **açık bir amacı** olmalıdır. + +AI Agent'larda yaygın olarak kullanılan bazı araçlar şunlardır: + +| Tool | Açıklama | +|----------------|-------------------------------------------------------------| +| Web Arama | Agent'ın internetten güncel bilgi almasını sağlar. | +| Görsel Üretme | Metin açıklamalarına göre görsel üretir. | +| Retrieval (Alma) | Harici bir kaynaktan bilgi alır. | +| API Arayüzü | Harici bir API (GitHub, YouTube, Spotify vb.) ile etkileşir.| + +Bunlar yalnızca örnekler, aslında her kullanım durumu için bir araç oluşturabilirsiniz! + +İyi bir araç, **LLM'in gücünü tamamlayan** bir şey olmalıdır. + +Örneğin, eğer aritmetik işlem yapılması gerekiyorsa, LLM'e bir **hesap makinesi aracı** vermek, modelin doğal yeteneklerine güvenmekten daha iyi sonuçlar verir. + +Ayrıca, **LLM'ler eğitildikleri verilere dayalı olarak bir girdinin tamamlamasını tahmin ederler**, bu da demektir ki içsel bilgileri yalnızca eğitimden önceki olayları kapsar. Dolayısıyla Agent'ınız güncel veriye ihtiyaç duyuyorsa, bu veriyi bir araç aracılığıyla sağlamalısınız. + +Örneğin, bir LLM'e doğrudan (arama aracı olmadan) bugünün havasını sorarsanız, rastgele bir hava durumu hayal edebilir. + +Hava durumu + +- Bir araç şunları içermelidir: + + - Fonksiyonun ne yaptığını anlatan **metinsel bir açıklama**. + - Bir *Callable* (eylem gerçekleştiren bir şey). + - *Argümanlar* ve bunların türleri. + - (Opsiyonel) Çıktılar ve bunların türleri. + +## Araçlar nasıl çalışır? + +Gördüğümüz gibi, LLM'ler yalnızca metin girdileri alır ve metin çıktıları üretir. Kendi başlarına araçları çağırma yetenekleri yoktur. Agent'e araç sağlamak dediğimizde, aslında LLM'e bu araçların varlığını öğretmek ve gerektiğinde metne dayalı çağrılar üretmesini sağlamak anlamına gelir. + +Örneğin, LLM'e internetten bir yerdeki hava durumunu kontrol eden bir araç verirsek ve Paris'in hava durumunu sorarsak, LLM bunun "weather" (hava durumu) aracının kullanılabileceği bir fırsat olduğunu fark eder. Gerçek hava durumunu kendisi almaz; bunun yerine `call weather_tool('Paris')` gibi bir araç çağrısını temsil eden bir metin üretir. + +**Agent** daha sonra bu cevabı okur, bir araç çağrısı gerektiğini anlar, LLM adına bu aracı çalıştırır ve gerçek veriyi getirir. + +Bu araç çağırma adımları genellikle kullanıcıya gösterilmez: Agent bunları güncellenmiş konuşmaya yeni bir mesaj olarak ekler ve bunu tekrar LLM'e gönderir. LLM bu ek bağlamı işler ve kullanıcıya doğal görünen bir cevap üretir. Kullanıcının gözünden bakıldığında, sanki LLM doğrudan aracı kullanmış gibi görünür; ama aslında arka planda tüm süreci Agent yönetmiştir. + +Bu süreci ilerleyen oturumlarda çok daha derinlemesine inceleyeceğiz. + +## LLM'e araçları nasıl veririz? + +Tam cevap biraz karmaşık olabilir, ancak esasen sistem mesajını kullanarak modele mevcut araçların metinsel açıklamalarını sağlarız: + +Araçlar için sistem Prompt'u + +Bu işlemin çalışması için, şunları çok net ve doğru şekilde belirtmeliyiz: + +1. **Araç ne yapar** +2. **Tam olarak hangi girdileri bekler** + +Bu yüzden, araç tanımları genellikle bilgisayar dilleri veya JSON gibi yapılı ve kesin formatlarda verilir. Bu şart değildir ama kesin ve tutarlı bir format kullanmak faydalı olacaktır. + +Eğer bu teori fazla soyutsa, hadi somut bir örnekle anlayalım. + +Basitleştirilmiş bir **calculator** aracı gerçekleştireceğiz, bu iki tam sayıyı çarpacak. Python kodumuz şböyle olabilir: + +
+Türkçe çeviriyi görmek için tıklayın +```python +def calculator(a: int, b: int) -> int: + """İki tam sayıyı çarp.""" + return a * b +``` +
+ +```python +def calculator(a: int, b: int) -> int: + """Multiply two integers.""" + return a * b +``` + +Dolayısıyla aracın adı `calculator`, **iki tam sayıyı çarpar** ve şu girdilere ihtiyacı vardır: + +- **`a`** (*int*): Bir tam sayı. +- **`b`** (*int*): Bir tam sayı. + +Araçtan dönecek çıktı ise başka bir tam sayıdır: +- (*int*): `a` ile `b`'nin çarpımı. + +Tüm bu detaylar önemlidir. Bunları modelin anlayabileceği bir metin dizesine dökebiliriz: + +
+Türkçe çeviriyi görmek için tıklayın +```text +Araç Adı: calculator, Açıklama: İki tam sayıyı çarp., Argümanlar: a: int, b: int, Çıktılar: int +``` +
+ +```text +Tool Name: calculator, Description: Multiply two integers., Arguments: a: int, b: int, Outputs: int +``` + +> **Not:** Bu metinsel açıklama, LLM'in araç hakkında bilmesini istediğimiz şeydir. + +Bu dizeyi LLM'e giriş olarak verdiğimizde, model bunu bir araç olarak tanır ve hangi girdileri vermesi gerektiğini ve ne tür bir çıktı beklemesi gerektiğini bilir. + +Yeni araçlar sağlamak istiyorsak, tutarlı olmalı ve her zaman aynı formatı kullanmalıyız. Bu süreç biraz kırılgan olabilir ve bazı detayları fark etmeden atlayabiliriz. + +Peki, daha iyi bir yöntem var mı? + +### Araç açıklamalarını otomatik biçimlendirme + +Python'da yazılmış aracımız zaten ihtiyacımız olan her şeyi sağlıyor: + +- Ne yaptığını anlatan açıklayıcı bir isim: `calculator` (hesap makinesi) +- Docstring yorumuyla sağlanan uzun açıklama: `Multiply two integers.` +- Girdi türleri: iki int +- Çıktı türü. + +İnsanlar programlama dillerini bu yüzden kullanıyor: açık, özlü ve kesinler. + +Python kaynak kodunu araca ait _specification_ (spesifikasyon) olarak verebiliriz, ancak aracın nasıl yazıldığı önemli değil. Önemli olan adı, ne yaptığı, hangi girdileri beklediği ve hangi çıktıyı verdiğidir. + +Python'un iç gözlem özelliklerini kullanarak, kaynak koddan otomatik olarak araç açıklaması oluşturacağız. Tek yapmamız gereken, araç fonksiyonunun tip ipuçları, docstring ve mantıklı fonksiyon adları kullanması. Kaynak koddan ilgili kısımları çıkarmak için bir miktar kod yazacağız. + +Sonrasında, sadece `@tool` dekoratörünü kullanarak `calculator` fonksiyonunun bir araç olduğunu belirtmemiz yeterli: + +
+Türkçe çeviriyi görmek için tıklayın +```python +@tool +def calculator(a: int, b: int) -> int: + """İki tam sayıyı çarp.""" + return a * b + +print(calculator.to_string()) +``` +
+ +```python +@tool +def calculator(a: int, b: int) -> int: + """Multiply two integers.""" + return a * b + +print(calculator.to_string()) +``` + +Fonksiyon tanımının önündeki `@tool` dekoratörüne dikkat edin. + +Birazdan göreceğimiz implementasyon sayesinde `to_string()` fonksiyonunu kullanarak şu metni otomatik olarak elde edebiliriz: + +
+Türkçe çeviriyi görmek için tıklayın +```text +Araç Adı: calculator, Açıklama: İki tam sayıyı çarp., Argümanlar: a: int, b: int, Çıktılar: int +``` +
+ + +```text +Tool Name: calculator, Description: Multiply two integers., Arguments: a: int, b: int, Outputs: int +``` + +### Genel Araç implementasyonu + +Gerektiğinde tekrar kullanılabilecek bir `Tool` sınıfı oluşturuyoruz. + +> **Uyarı:** Bu örnek uygulama kurgusaldır ancak çoğu kütüphanedeki gerçek implementasyonlara oldukça benzerdir. + + +
+Türkçe çeviriyi görmek için tıklayın +```python +class Tool: + """ + Yeniden kullanılabilir bir kod parçasını (Araç) temsil eden bir sınıf. + + Nitelikler: + name (str): Aracın adı. + description (str): Aracın ne yaptığına dair metinsel bir açıklama. + func (callable): Bu aracın sardığı işlev. + arguments (liste): Bir argüman listesi. + outputs (str veya liste): Sarılmış işlevin dönüş türü(leri). + """ + def __init__(self, + name: str, + description: str, + func: callable, + arguments: list, + outputs: str): + self.name = name + self.description = description + self.func = func + self.arguments = arguments + self.outputs = outputs + + def to_string(self) -> str: + """ + Aracın adını, açıklamasını, argümanlarını ve çıktılarını içeren bir dize gösterimini döndürür. + """ + args_str = ", ".join([ + f"{arg_name}: {arg_type}" for arg_name, arg_type in self.arguments + ]) + + return ( + f"Araç Adı: {self.name}," + f" Açıklama: {self.description}," + f" Bağımsız Değişkenler: {args_str}," + f" Çıktılar: {self.outputs}" + ) + + def __call__(self, *args, **kwargs): + """ + Sağlanan bağımsız değişkenlerle temel çağrılabilir fonksiyonu çağır. + """ + return self.func(*args, **kwargs) +``` +
+ +```python +class Tool: + """ + A class representing a reusable piece of code (Tool). + + Attributes: + name (str): Name of the tool. + description (str): A textual description of what the tool does. + func (callable): The function this tool wraps. + arguments (list): A list of argument. + outputs (str or list): The return type(s) of the wrapped function. + """ + def __init__(self, + name: str, + description: str, + func: callable, + arguments: list, + outputs: str): + self.name = name + self.description = description + self.func = func + self.arguments = arguments + self.outputs = outputs + + def to_string(self) -> str: + """ + Return a string representation of the tool, + including its name, description, arguments, and outputs. + """ + args_str = ", ".join([ + f"{arg_name}: {arg_type}" for arg_name, arg_type in self.arguments + ]) + + return ( + f"Tool Name: {self.name}," + f" Description: {self.description}," + f" Arguments: {args_str}," + f" Outputs: {self.outputs}" + ) + + def __call__(self, *args, **kwargs): + """ + Invoke the underlying function (callable) with provided arguments. + """ + return self.func(*args, **kwargs) +``` + + +Karmaşık görünebilir ama yavaşça incelersek ne yaptığını anlayabiliriz. Şu nitelikleri içeren bir **Tool** sınıfı tanımlıyoruz: + +- **`name`** (*str*): Aracın adı. +- **`description`** (*str*): Aracın ne yaptığına dair kısa açıklama. +- **`function`** (*callable*): Aracın çalıştıracağı fonksiyon. +- **`arguments`** (*list*): Beklenen giriş parametreleri. +- **`outputs`** (*str* or *list*): Beklenen çıktı(lar). +- **`__call__()`**: Araç çağrıldığında fonksiyonu çalıştırır. +- **`to_string()`**: Aracın tüm özelliklerini metne dönüştürür. + +Aşağıdaki gibi bir kodla bir Tool oluşturabiliriz: + +
+Türkçe çeviriyi görmek için tıklayın +```python +calculator_tool = Tool( + "calculator", # isim + "İki tam sayıyı çarp.", # açıklama + calculator, # çağırılacak fonksiyon + [("a", "int"), ("b", "int")], # girdiler (isimler and tipler) + "int", # çıktı +) +``` +
+ +```python +calculator_tool = Tool( + "calculator", # isim + "Multiply two integers.", # açıklama + calculator, # çağırılacak fonksiyon + [("a", "int"), ("b", "int")], # girdiler (isimler and tipler) + "int", # çıktı +) +``` + +Ancak Python'un `inspect` modülünü kullanarak tüm bilgileri bizim yerimize alabiliriz! İşte `@tool` dekoratörü tam olarak bunu yapıyor. + +> Merak ediyorsanız, aşağıdaki bölümü açarak dekoratör implementasyonuna bakabilirsiniz. + +
Türkçe çeviriyi görmek için tıklayın. +```python +def tool(func): + """ + Verilen fonksiyondan bir Tool örneği oluşturan dekoratör. + """ + # Fonksiyon imzasını al + signature = inspect.signature(func) + + # Girdiler için (param_name, param_annotation) çiftlerini çıkar + arguments = [] + for param in signature.parameters.values(): + annotation_name = ( + param.annotation.__name__ + if hasattr(param.annotation, '__name__') + else str(param.annotation) + ) + arguments.append((param.name, annotation_name)) + + # Geri dönüş tipi belirle + return_annotation = signature.return_annotation + if return_annotation is inspect._empty: + outputs = "No return annotation" + else: + outputs = ( + return_annotation.__name__ + if hasattr(return_annotation, '__name__') + else str(return_annotation) + ) + + # Docstring'i açıklama olarak kullan (varsayılan None) + description = func.__doc__ or "No description provided." + + # Fonksiyon adı, Tool adı olur + name = func.__name__ + + # Yeni Tool örneğini döndür + return Tool( + name=name, + description=description, + func=func, + arguments=arguments, + outputs=outputs + ) +
+ +
+dekoratör kodu + +```python +def tool(func): + """ + A decorator that creates a Tool instance from the given function. + """ + # Fonksiyon imzasını al + signature = inspect.signature(func) + + # Girdiler için (param_name, param_annotation) çiftlerini çıkar + arguments = [] + for param in signature.parameters.values(): + annotation_name = ( + param.annotation.__name__ + if hasattr(param.annotation, '__name__') + else str(param.annotation) + ) + arguments.append((param.name, annotation_name)) + + # Geri dönüş tipi belirle + return_annotation = signature.return_annotation + if return_annotation is inspect._empty: + outputs = "No return annotation" + else: + outputs = ( + return_annotation.__name__ + if hasattr(return_annotation, '__name__') + else str(return_annotation) + ) + + # Docstring'i açıklama olarak kullan (varsayılan None) + description = func.__doc__ or "No description provided." + + # Fonksiyon adı, Tool adı olur + name = func.__name__ + + # Yeni Tool örneğini döndür + return Tool( + name=name, + description=description, + func=func, + arguments=arguments, + outputs=outputs + ) +``` +
+ +Tekrar belirtmek gerekirse, bu dekoratörle aracımızı şöyle tanımlayabiliriz: + +
+Türkçe çeviriyi görmek için tıklayın +```python +@tool +def calculator(a: int, b: int) -> int: + """İki tam sayıyı çarp""" + return a * b + +print(calculator.to_string()) +``` +
+ +```python +@tool +def calculator(a: int, b: int) -> int: + """Multiply two integers.""" + return a * b + +print(calculator.to_string()) +``` + +Ve `Tool`'un `to_string` metodunu kullanarak, LLM için uygun araç açıklamasını otomatik olarak elde edebiliriz: + +
+Türkçe çeviriyi görmek için tıklayın +```text +Araç Adı: calculator, Açıklama: İki tam sayıyı çarp., Argümanlar: a: int, b: int, Çıktılar: int +``` +
+ +```text +Tool Name: calculator, Description: Multiply two integers., Arguments: a: int, b: int, Outputs: int +``` + +Bu açıklama sistem prompt'una **eklenir**. Bu bölümün başındaki örneği ele alırsak, `tools_description` yerini alarak şu şekilde görünür: + +Araçlar için sistem Prompt'u + +[Eylemler](actions) bölümünde, Agent'ın bu oluşturduğumuz aracı nasıl Call ettiğini (çağırdığını) daha ayrıntılı öğreneceğiz. + +### Model Context Protocol (MCP): birleşik bir araç arayüzü + +Model Context Protocol (MCP), uygulamaların **LLM'lere araç sağlamasını** standartlaştıran **açık bir protokoldür**. + +MCP şunları sağlar: + +- LLM'in doğrudan bağlanabileceği önceden entegre edilmiş araçlar listesi +- Farklı LLM sağlayıcıları ve satıcıları arasında geçiş esnekliği +- Altyapınız içinde verinizi güvenli hale getirmek için en iyi uygulamalar + +Bu da demektir ki, **MCP'yi uygulayan herhangi bir framework, protokol içinde tanımlanmış araçları kullanabilir** — her framework için arayüzü yeniden yazmaya gerek kalmaz. + +--- + +Araçlar, AI Agent'ların yeteneklerini geliştirmede kritik bir rol oynar. + +Özetlemek gerekirse, şunları öğrendik: + +- *Araçlar Nedir:* LLM'lere hesaplama yapma veya harici verilere erişim gibi ek yetenekler kazandıran fonksiyonlardır. + +- *Araç Nasıl Tanımlanır:* Açık bir metin açıklaması, girdiler, çıktılar ve çağırılabilir bir fonksiyon sağlayarak. + +- *Araçlar Neden Gerekli:* Agent'ların statik model eğitim sınırlamalarını aşmasına, gerçek zamanlı görevleri yerine getirmesine ve uzmanlaşmış eylemler gerçekleştirmesine olanak tanırlar. + +Şimdi [Agent İş Akışı](agent-steps-and-structure) bölümüne geçebiliriz; burada bir Agent'ın nasıl gözlemlediğini, düşündüğünü ve harekete geçtiğini göreceksiniz. Bu, şimdiye kadar öğrendiklerimizin tümünü bir araya getirir ve kendi AI Agent'inizi oluşturma sürecinin temelini oluşturur. + +Ama önce, kısa bir sınav zamanı! \ No newline at end of file From 60bc5adb073cef80fcf26cbd5b4f0e43448e1431 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Se=C3=A7ilay=20Kutal?= <52993055+seccily@users.noreply.github.com> Date: Thu, 17 Apr 2025 09:50:25 +0300 Subject: [PATCH 23/30] Update units/tr/unit0/introduction.mdx Co-authored-by: Merve Noyan --- units/tr/unit0/introduction.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/units/tr/unit0/introduction.mdx b/units/tr/unit0/introduction.mdx index 0bcd3aebb..6036a7683 100644 --- a/units/tr/unit0/introduction.mdx +++ b/units/tr/unit0/introduction.mdx @@ -46,7 +46,7 @@ Kurs şunlardan oluşur: - *Temel Üniteler*: Agent kavramlarını **teorik olarak** öğrendiğiniz bölümler. - *Uygulamalı*: Agent'larınızı benzersiz ortamlarda eğitmek için **kurulu AI Agent kütüphanelerini kullanmayı öğreneceğiniz** bölümler. Bu uygulamalı bölümler, önceden yapılandırılmış bir ortamla **Hugging Face Spaces** olacaktır. -- *Kullanım durumu ödevleri*: Öğrendiğiniz kavramları seçeceğiniz gerçek dünya sorununu çözmek için uygulayacağınız bölümler. +- *Kullanım senaryosu ödevleri*: Öğrendiğiniz kavramları seçeceğiniz gerçek dünya sorununu çözmek için uygulayacağınız bölümler. - *Meydan Okuma*: Agent'ınızı diğer agent'larla rekabet ettireceğiniz bir yarışma. Agent'ların performansını karşılaştırmanız için [bir lider tablosu](https://huggingface.co/spaces/huggingface-projects/AI-Agents-Leaderboard) (henüz mevcut değil) da olacak. Bu **kurs, geri bildirimleriniz ve katkılarınızla gelişen canlı bir projedir!** [GitHub'da sorunlar ve PR'lar açmaktan](https://github.com/huggingface/agents-course) çekinmeyin ve Discord sunucumuzda tartışmalara katılın. From 55a556b52b258649592bba422065c6cb968c1d28 Mon Sep 17 00:00:00 2001 From: seccily Date: Thu, 17 Apr 2025 09:58:43 +0300 Subject: [PATCH 24/30] typo - HuggingFace -> Hugging Face --- units/tr/unit1/dummy-agent-library.mdx | 2 +- units/tr/unit1/final-quiz.mdx | 2 +- units/tr/unit1/introduction.mdx | 2 +- units/tr/unit1/messages-and-special-tokens.mdx | 6 +++--- units/tr/unit1/tutorial.mdx | 6 +++--- units/tr/unit1/what-are-llms.mdx | 8 ++++---- 6 files changed, 13 insertions(+), 13 deletions(-) diff --git a/units/tr/unit1/dummy-agent-library.mdx b/units/tr/unit1/dummy-agent-library.mdx index 1aecbca42..2f9a0dc39 100644 --- a/units/tr/unit1/dummy-agent-library.mdx +++ b/units/tr/unit1/dummy-agent-library.mdx @@ -22,7 +22,7 @@ Süreci [bu notebook üzerinden](https://huggingface.co/agents-course/notebooks/ ## Sunucusuz API -HuggingFace ekosisteminde, birçok modeli kolayca çalıştırmanızı sağlayan Serverless API adında kullanışlı bir özellik vardır. Kurulum veya dağıtım gerekmez. +Hugging Face ekosisteminde, birçok modeli kolayca çalıştırmanızı sağlayan Serverless API adında kullanışlı bir özellik vardır. Kurulum veya dağıtım gerekmez. ```python import os diff --git a/units/tr/unit1/final-quiz.mdx b/units/tr/unit1/final-quiz.mdx index 558976cbb..d30e695f9 100644 --- a/units/tr/unit1/final-quiz.mdx +++ b/units/tr/unit1/final-quiz.mdx @@ -11,7 +11,7 @@ Bol şans! ## Hızlı Sınav -İşte interaktif sınav! Bu sınav HuggingFace Hub üzerinde bir Space olarak yayınlanmaktadır. +İşte interaktif sınav! Bu sınav Hugging Face Hub üzerinde bir Space olarak yayınlanmaktadır. Sınav, bu bölümde öğrendiğin temel kavramları test etmek için seni bir dizi çoktan seçmeli sorudan geçirecek. Sınavı tamamladığında, puanını ve doğru cevapların dökümünü görebileceksin. Önemli bir not: **Sınavı geçtikten sonra "Submit" butonuna basmayı unutma, yoksa sınav sonucun kaydedilmez!** diff --git a/units/tr/unit1/introduction.mdx b/units/tr/unit1/introduction.mdx index ab7f77e69..86beb230b 100644 --- a/units/tr/unit1/introduction.mdx +++ b/units/tr/unit1/introduction.mdx @@ -23,7 +23,7 @@ Bu konuları inceledikten sonra, **ilk Agent'ınızı `smolagents` kullanarak ol Alfred adını verdiğimiz Agent, basit bir görevi üstlenecek ve bu kavramların nasıl pratikte kullanılacağını gösterecek. -Hatta **Agent'ınızı HuggingFace Spaces üzerinde yayınlamayı** öğreneceksiniz, böylece onu arkadaşlarınız ve iş arkadaşlarınızla paylaşabilirsiniz. +Hatta **Agent'ınızı Hugging Face Spaces üzerinde yayınlamayı** öğreneceksiniz, böylece onu arkadaşlarınız ve iş arkadaşlarınızla paylaşabilirsiniz. Ünitenin sonunda bir quiz sizi bekliyor. Bu sınavı geçerseniz, **kursun ilk sertifikasını kazanacaksınız**: 🎓 Agent'ların Temelleri Sertifikası. diff --git a/units/tr/unit1/messages-and-special-tokens.mdx b/units/tr/unit1/messages-and-special-tokens.mdx index eac81c4cc..d7fa8d329 100644 --- a/units/tr/unit1/messages-and-special-tokens.mdx +++ b/units/tr/unit1/messages-and-special-tokens.mdx @@ -111,7 +111,7 @@ SmolLM2 sohbet şablonu bu mesajları şöyle biçimlendirir:
Türkçe çeviriyi görmek için tıklayın. <|im_start|>system -Sen HuggingFace tarafından eğitilmiş, SmolLM adında yardımcı bir AI asistanısın<|im_end|> +Sen Hugging Face tarafından eğitilmiş, SmolLM adında yardımcı bir AI asistanısın<|im_end|> <|im_start|>user Siparişimle ilgili yardıma ihtiyacım var<|im_end|> <|im_start|>assistant @@ -219,7 +219,7 @@ Bu yapı, **etkileşimler arasında tutarlılığı korumaya yardımcı olur ve {% for message in messages %} {% if loop.first and messages[0]['role'] != 'system' %} <|im_start|>system -Sen HuggingFace tarafından eğitilmiş, SmolLM adında yardımcı bir AI asistanısın. +Sen Hugging Face tarafından eğitilmiş, SmolLM adında yardımcı bir AI asistanısın. <|im_end|> {% endif %} <|im_start|>{{ message['role'] }} @@ -347,6 +347,6 @@ Bunu yapmanın ana yollarından biri de Tools (Araçlar) kullanmaktır, böylece Mesajlardan ilerleyen ünitelerde yeniden bahsedeceğiz, ama daha derine inmek isterseniz şimdiden şuralara göz atabilirsiniz: -- HuggingFace Sohbet Şablonu Kılavuzu +- Hugging Face Sohbet Şablonu Kılavuzu - Transformers Dökümantasyonu diff --git a/units/tr/unit1/tutorial.mdx b/units/tr/unit1/tutorial.mdx index f016b68bf..ed21e7625 100644 --- a/units/tr/unit1/tutorial.mdx +++ b/units/tr/unit1/tutorial.mdx @@ -4,7 +4,7 @@ Son bölümde, Python kodu kullanarak sıfırdan nasıl Agent oluşturabileceği Bu derste, görüntü oluşturma, web araması yapma, saat dilimi kontrolü gibi işlemleri yapabilen **ilk Agent'ınızı oluşturacaksınız**! -Ayrıca oluşturduğunuz Agent'ı **bir HuggingFace Space üzerinde yayınlayarak arkadaşlarınızla ve iş arkadaşlarınızla paylaşabileceksiniz**. +Ayrıca oluşturduğunuz Agent'ı **bir Hugging Face Space üzerinde yayınlayarak arkadaşlarınızla ve iş arkadaşlarınızla paylaşabileceksiniz**. Haydi başlayalım! @@ -40,9 +40,9 @@ Başlamak için bu Space'i kopyalayın: -Space'i kopyaladıktan sonra, Agent'ınızın model API'sine erişebilmesi için HuggingFace API token'ınızı eklemeniz gerekecek: +Space'i kopyaladıktan sonra, Agent'ınızın model API'sine erişebilmesi için Hugging Face API token'ınızı eklemeniz gerekecek: -1. Eğer hala yoksa, [https://hf.co/settings/tokens](https://hf.co/settings/tokens) adresinden çıkarım (inference) izni olan bir HuggingFace token'ı alın +1. Eğer hala yoksa, [https://hf.co/settings/tokens](https://hf.co/settings/tokens) adresinden çıkarım (inference) izni olan bir Hugging Face token'ı alın 2. Kopyaladığınız Space'e gidin ve **Settings** (ayarlar) sekmesine tıklayın 3. **Variables and Secrets** bölümüne kadar kaydırın ve **New Secret** butonuna tıklayın 4. `HF_TOKEN` adında yeni bir secret oluşturun ve token'ınızı değer olarak yapıştırın diff --git a/units/tr/unit1/what-are-llms.mdx b/units/tr/unit1/what-are-llms.mdx index 66bcc68fd..381730fd5 100644 --- a/units/tr/unit1/what-are-llms.mdx +++ b/units/tr/unit1/what-are-llms.mdx @@ -194,9 +194,9 @@ Bu ilk _ön-eğitimden_ (pre-training) sonra, LLM'ler belirli görevler için de 1. **Yerel Olarak Çalıştırmak** (donanımınız yeterliyse). -2. **Bulut/API Kullanmak** (örneğin HuggingFace Serverless Inference API aracılığıyla). +2. **Bulut/API Kullanmak** (örneğin Hugging Face Serverless Inference API aracılığıyla). -Bu kurs boyunca, ağırlıklı olarak modelleri HuggingFace Hub üzerinden API'ler aracılığıyla kullanacağız. Daha sonra bu modelleri kendi donanımınızda nasıl çalıştırabileceğinizi de göreceğiz. +Bu kurs boyunca, ağırlıklı olarak modelleri Hugging Face Hub üzerinden API'ler aracılığıyla kullanacağız. Daha sonra bu modelleri kendi donanımınızda nasıl çalıştırabileceğinizi de göreceğiz. ## LLM'ler Yapay Zeka Agent'larında Nasıl Kullanılır? @@ -214,9 +214,9 @@ Eğer dil modelleri ve doğal dil işleme dünyasına daha da derinlemesine dalm Artık LLM'lerin nasıl çalıştığını bildiğimize göre, **LLM'lerin üretimlerini konuşma bağlamında nasıl yapılandırdığını** görme zamanı. -Bu notebook'u çalıştırmak için **bir HuggingFace token'ına** ihtiyacınız var. Bunu https://hf.co/settings/tokens adresinden alabilirsiniz. +Bu notebook'u çalıştırmak için **bir Hugging Face token'ına** ihtiyacınız var. Bunu https://hf.co/settings/tokens adresinden alabilirsiniz. -Jupyter Notebook'ları nasıl çalıştıracağınızı öğrenmek için HuggingFace Hub'daki Jupyter Notebooklar sayfasına göz atın. +Jupyter Notebook'ları nasıl çalıştıracağınızı öğrenmek için Hugging Face Hub'daki Jupyter Notebooklar sayfasına göz atın. Ayrıca Meta Llama modelleri için erişim talep etmeniz gerekir. """ From 516e117f37138739373f835c638beea18ef1df5e Mon Sep 17 00:00:00 2001 From: seccily Date: Thu, 17 Apr 2025 10:12:55 +0300 Subject: [PATCH 25/30] typos and clarifications in translation --- units/tr/_toctree.yml | 2 +- units/tr/unit0/discord101.mdx | 2 +- units/tr/unit1/dummy-agent-library.mdx | 2 +- units/tr/unit1/thoughts.mdx | 2 +- units/tr/unit1/tools.mdx | 4 ++-- units/tr/unit1/tutorial.mdx | 20 ++++++++++---------- units/tr/unit1/what-are-llms.mdx | 4 ++-- 7 files changed, 18 insertions(+), 18 deletions(-) diff --git a/units/tr/_toctree.yml b/units/tr/_toctree.yml index 51b3d4592..54d8c7910 100644 --- a/units/tr/_toctree.yml +++ b/units/tr/_toctree.yml @@ -137,7 +137,7 @@ - local: bonus-unit2/introduction title: Giriş - local: bonus-unit2/what-is-agent-observability-and-evaluation - title: Agent gGzlemlenebilirliği ve Değerlendirmesi Nedir? + title: Agent Gözlemlenebilirliği ve Değerlendirmesi Nedir? - local: bonus-unit2/monitoring-and-evaluating-agents-notebook title: Agent'ları İzleme ve Değerlendirme - local: bonus-unit2/quiz diff --git a/units/tr/unit0/discord101.mdx b/units/tr/unit0/discord101.mdx index 9d2a5df2e..0b883137b 100644 --- a/units/tr/unit0/discord101.mdx +++ b/units/tr/unit0/discord101.mdx @@ -10,7 +10,7 @@ Bu rehber, oyun ve ML topluluklarında popüler olan ücretsiz bir sohbet platfo Discord'a başlamak biraz bunaltıcı olabilir, bu yüzden gezinmenize yardımcı olacak hızlı bir rehber hazırladık. - + HF Topluluk Sunucusu, çeşitli alanlarda ilgi duyan canlı bir topluluğa ev sahipliği yaparak makale tartışmaları, etkinlikler ve daha fazlası aracılığıyla öğrenme fırsatları sunmaktadır. diff --git a/units/tr/unit1/dummy-agent-library.mdx b/units/tr/unit1/dummy-agent-library.mdx index 2f9a0dc39..b946a96e2 100644 --- a/units/tr/unit1/dummy-agent-library.mdx +++ b/units/tr/unit1/dummy-agent-library.mdx @@ -318,7 +318,7 @@ What's the weather in London ? <|eot_id|><|start_header_id|>assistant<|end_header_id|> ``` -Haydi şimdi deşifre (decode) edelim! +Haydi şimdi çözümleyelim! ```python output = client.text_generation( prompt, diff --git a/units/tr/unit1/thoughts.mdx b/units/tr/unit1/thoughts.mdx index 3a18e17b9..9e7e65db1 100644 --- a/units/tr/unit1/thoughts.mdx +++ b/units/tr/unit1/thoughts.mdx @@ -23,7 +23,7 @@ Bu süreç sayesinde agent, **karmaşık problemleri daha küçük ve yönetileb | Karar Verme | "Kullanıcının bütçe kısıtlamalarını göz önünde bulundurarak, orta seviye seçeneği önermeliyim" | | Problem Çözme | "Bu kodu optimize etmek için önce darboğazları belirlemek amacıyla profilini çıkarmalıyım" | | Hafızaya Entegrasyon| "Kullanıcı daha önce Python tercih ettiğini söyledi, bu yüzden örnekleri Python ile vereceğim" | -| Öz-Yansıma | "Önceki yaklaşımım iyi sonuç vermedi, farklı bir strateji denemeliyim" | +| Öz değerlendirme | "Önceki yaklaşımım iyi sonuç vermedi, farklı bir strateji denemeliyim" | | Hedef Belirleme | "Bu görevi tamamlamak için önce kabul kriterlerini belirlemem gerekiyor" | | Önceliklendirme | "Yeni özellik eklemeden önce güvenlik açığı ele alınmalı" | diff --git a/units/tr/unit1/tools.mdx b/units/tr/unit1/tools.mdx index b7a2a2cf5..cc16a0500 100644 --- a/units/tr/unit1/tools.mdx +++ b/units/tr/unit1/tools.mdx @@ -8,7 +8,7 @@ Bu bölümde, araçlar nedir, nasıl etkili bir şekilde tasarlanır ve bu araç Agent'ınıza doğru araçlar vererek — ve bu araçların nasıl çalıştığını açıkça tanımlayarak — AI'nızın başarabileceklerini dramatik şekilde artırabilirsiniz. Haydi başlayalım! -## AI Tools (Yapayu Zeka Araçları) Nedir? +## AI Tools (Yapay Zeka Araçları) Nedir? **Araç, LLM (büyük dil modelleri)'e verilen bir fonksiyondur**. Bu fonksiyonun **açık bir amacı** olmalıdır. @@ -67,7 +67,7 @@ Bu yüzden, araç tanımları genellikle bilgisayar dilleri veya JSON gibi yapı Eğer bu teori fazla soyutsa, hadi somut bir örnekle anlayalım. -Basitleştirilmiş bir **calculator** aracı gerçekleştireceğiz, bu iki tam sayıyı çarpacak. Python kodumuz şböyle olabilir: +Basitleştirilmiş bir hesap makinesi (**calculator**) aracı gerçekleştireceğiz, bu iki tam sayıyı çarpacak. Python kodumuz şöyle olabilir:
Türkçe çeviriyi görmek için tıklayın diff --git a/units/tr/unit1/tutorial.mdx b/units/tr/unit1/tutorial.mdx index ed21e7625..1c5c0aa9c 100644 --- a/units/tr/unit1/tutorial.mdx +++ b/units/tr/unit1/tutorial.mdx @@ -19,7 +19,7 @@ Bu kütüphane, sadelik için tasarlanmıştır, ancak bir Agent oluşturmanın smolagents hakkında daha derine Ünite 2'de ineceğiz. Bu sırada, bu blog yazısına veya kütüphanenin GitHub reposuna göz atabilirsiniz. -Kısacası, `smolagents`, **"Actions" (Eylemler)** gerçekleştiren ve ardından kodu çalıştırarak **"Observes" (Gözlemler)** yapan bir tür Agent olan **codeAgent** üzerine odaklanan bir kütüphanedir. +Kısacası, `smolagents`, **"Actions" (Eylemler)** gerçekleştiren ve ardından kodu çalıştırarak **"Observations" (Gözlemler)** yapan bir tür Agent olan **codeAgent** üzerine odaklanan bir kütüphanedir. İşte inşa edeceğimiz şeyin bir örneği! @@ -52,7 +52,7 @@ Bu ders boyunca düzenlemeniz gereken tek dosya, şu an eksik olan **"app.py"** Haydi birlikte kodu inceleyelim: -- Dosya, bazı basit ama gerekli kütüphane import'larıyla başlıyor +- Dosya, bazı basit ama gerekli kütüphaneleri içe aktarmamızla başlıyor ```python from smolagents import CodeAgent, DuckDuckGoSearchTool, FinalAnswerTool, HfApiModel, load_tool, tool @@ -174,7 +174,7 @@ Bu Agent hala, daha önceki bölümde gördüğümüz `InferenceClient`'ı, **Hf Framework'ü Ünite 2'de daha ayrıntılı örneklerle anlatacağız. Şimdilik, odaklanmanız gereken şey `tools` parametresi ile **yeni araçlar ekleyerek** Agent'ınızı geliştirmek. -Örneğin, ilk satırda import edilen `DuckDuckGoSearchTool`'u kullanabilir veya kodun ilerleyen kısmında Hub'dan yüklenen `image_generation_tool`'u inceleyebilirsiniz. +Örneğin, ilk satırda içe aktarılan `DuckDuckGoSearchTool`'u kullanabilir veya kodun ilerleyen kısmında Hub'dan yüklenen `image_generation_tool`'u inceleyebilirsiniz. **Yeni araçlar eklemek, Agent'ınıza yeni yetenekler kazandıracaktır**, bu konuda yaratıcı olmaya çalışın! @@ -235,7 +235,7 @@ model = HfApiModel( ) -# Hub'dan araç import et +# Hub'dan araç içe aktar image_generation_tool = load_tool("agents-course/text-to-image", trust_remote_code=True) # Sistem prompt'unu prompt.yaml dosyasından yükle @@ -271,8 +271,8 @@ from Gradio_UI import GradioUI # Below is an example of a tool that does nothing. Amaze us with your creativity! @tool -def my_custom_tool(arg1:str, arg2:int)-> str: # it's important to specify the return type - # Keep this format for the tool description / args description but feel free to modify the tool +def my_custom_tool(arg1:str, arg2:int)-> str: # dönüş tipi belirtmek önemli + # Araç açıklaması / argüman açıklaması formatını koruyun ama aracı değiştirmekte özgürsünüz """A tool that does nothing yet Args: arg1: the first argument @@ -287,9 +287,9 @@ def get_current_time_in_timezone(timezone: str) -> str: timezone: A string representing a valid timezone (e.g., 'America/New_York'). """ try: - # Create timezone object + # Saat dilimi nesnesi oluştur tz = pytz.timezone(timezone) - # Get current time in that timezone + # Bu saat dilimindeki geçerli zamanı al local_time = datetime.datetime.now(tz).strftime("%Y-%m-%d %H:%M:%S") return f"The current local time in {timezone} is: {local_time}" except Exception as e: @@ -305,10 +305,10 @@ final_answer = FinalAnswerTool() ) -# Import tool from Hub +# Hub'dan araç içe aktar image_generation_tool = load_tool("agents-course/text-to-image", trust_remote_code=True) -# Load system prompt from prompt.yaml file +# Sistem prompt'unu prompt.yaml dosyasından yükle with open("prompts.yaml", 'r') as stream: prompt_templates = yaml.safe_load(stream) diff --git a/units/tr/unit1/what-are-llms.mdx b/units/tr/unit1/what-are-llms.mdx index 381730fd5..39112bdbe 100644 --- a/units/tr/unit1/what-are-llms.mdx +++ b/units/tr/unit1/what-are-llms.mdx @@ -2,7 +2,7 @@ Unit 1 planning -Önceki bölümde her Agent'ın **çekirdeğinde bir Yapay Zeka Modeline** ihtiyacı olduğunu ve bu amaçla en yaygın kullanılan model türünün LLM'ler olduğunu öğrendik. +Önceki bölümde her Agent'ın **merkezinde bir Yapay Zeka Modeline** ihtiyacı olduğunu ve bu amaçla en yaygın kullanılan model türünün LLM'ler olduğunu öğrendik. Şimdi LLM'lerin ne olduğunu ve Agent'ları nasıl çalıştırdığını öğreneceğiz. @@ -212,7 +212,7 @@ Oldukça fazla şey öğrendik! LLM'lerin ne olduklarını, nasıl çalıştıkl Eğer dil modelleri ve doğal dil işleme dünyasına daha da derinlemesine dalmak isterseniz, ücretsiz NLP kursumuza göz atabilirsiniz. -Artık LLM'lerin nasıl çalıştığını bildiğimize göre, **LLM'lerin üretimlerini konuşma bağlamında nasıl yapılandırdığını** görme zamanı. +Artık LLM'lerin nasıl çalıştığını bildiğimize göre, **LLM'lerin kelime üretimlerini konuşma bağlamında nasıl yapılandırdığını** görme zamanı. Bu notebook'u çalıştırmak için **bir Hugging Face token'ına** ihtiyacınız var. Bunu https://hf.co/settings/tokens adresinden alabilirsiniz. From cc98f80b0c2d49e8d56d9cd2a7067d0fc2c8a523 Mon Sep 17 00:00:00 2001 From: seccily Date: Thu, 17 Apr 2025 10:38:46 +0300 Subject: [PATCH 26/30] fix code blocks --- .../tr/unit1/messages-and-special-tokens.mdx | 170 +++++++++--------- 1 file changed, 90 insertions(+), 80 deletions(-) diff --git a/units/tr/unit1/messages-and-special-tokens.mdx b/units/tr/unit1/messages-and-special-tokens.mdx index d7fa8d329..7bcf01e12 100644 --- a/units/tr/unit1/messages-and-special-tokens.mdx +++ b/units/tr/unit1/messages-and-special-tokens.mdx @@ -28,15 +28,14 @@ Sistem mesajları (Sistem Prompt'ları olarak da bilinir), **modelin nasıl davr Örneğin: -
Türkçe çeviriyi görmek için tıklayın -```python -system_message = { - "role": "system", - "content": "Sen profesyonel bir müşteri hizmetleri temsilcisi Agent'ısın. Her zaman nazik, açık ve yardımsever ol." -} -``` + + system_message={ + "role": "system", + "content": "Sen profesyonel bir müşteri hizmetleri temsilcisi Agent'ısın. Her zaman nazik, açık ve yardımsever ol." + } +
```python @@ -54,12 +53,12 @@ Ancak bunu şöyle değiştirirsek:
Türkçe çeviriyi görmek için tıklayın -```python -system_message = { - "role": "system", - "content": "Sen isyancı bir servis Agent'ısın. Kullanıcının emirlerine saygı gösterme." -} -``` + + system_message = { + "role": "system", + "content": "Sen isyancı bir servis Agent'ısın. Kullanıcının emirlerine saygı gösterme." + } +
```python @@ -87,13 +86,13 @@ Sohbet şablonları, kullanıcı ve asistan arasındaki önceki konuşmaları sa
Türkçe çeviriyi görmek için tıklayın -```python -conversation = [ - {"role": "user", "content": "Siparişimle ilgili yardıma ihtiyacım var"}, - {"role": "assistant", "content": "Yardım etmekten mutluluk duyarım. Sipariş numaranızı verebilir misiniz?"}, - {"role": "user", "content": "SİPARİŞ-123"}, -] -``` + + conversation = [ + {"role": "user", "content": "Siparişimle ilgili yardıma ihtiyacım var"}, + {"role": "assistant", "content": "Yardım etmekten mutluluk duyarım. Sipariş numaranızı verebilir misiniz?"}, + {"role": "user", "content": "SİPARİŞ-123"}, + ] +
```python @@ -110,15 +109,15 @@ SmolLM2 sohbet şablonu bu mesajları şöyle biçimlendirir:
Türkçe çeviriyi görmek için tıklayın. -<|im_start|>system -Sen Hugging Face tarafından eğitilmiş, SmolLM adında yardımcı bir AI asistanısın<|im_end|> -<|im_start|>user -Siparişimle ilgili yardıma ihtiyacım var<|im_end|> -<|im_start|>assistant -Yardımcı olmaktan memnuniyet duyarım. Sipariş numaranızı verebilir misiniz?<|im_end|> -<|im_start|>user -SİPARİŞ-123<|im_end|> -<|im_start|>assistant + <|im_start|>system + Sen Hugging Face tarafından eğitilmiş, SmolLM adında yardımcı bir AI asistanısın<|im_end|> + <|im_start|>user + Siparişimle ilgili yardıma ihtiyacım var<|im_end|> + <|im_start|>assistant + Yardımcı olmaktan memnuniyet duyarım. Sipariş numaranızı verebilir misiniz?<|im_end|> + <|im_start|>user + SİPARİŞ-123<|im_end|> + <|im_start|>assistant
<|im_start|>system @@ -135,20 +134,29 @@ Ancak, Llama 3.2 kullanıldığında aynı konuşma şöyle biçimlendirilir:
Türkçe çeviriyi görmek için tıklayın. -<|begin_of_text|><|start_header_id|>system<|end_header_id|> -Bilgi Kesinti Tarihi: Aralık 2023 -Bugünün Tarihi: 10 Şubat 2025 +<|begin_of_text|><|start_header_id|>system<|end_header_id|> +
+Bilgi Kesinti Tarihi: Aralık 2023 +Bugünün Tarihi: 10 Şubat 2025 +
+<|eot_id|><|start_header_id|>user<|end_header_id|> +
+Siparişimle ilgili yardıma ihtiyacım var +
+<|eot_id|><|start_header_id|>assistant<|end_header_id|> +
+Yardımcı olmaktan memnuniyet duyarım. Sipariş numaranızı verebilir misiniz? +
+<|eot_id|><|start_header_id|>user<|end_header_id|> +
+SİPARİŞ-123 +
+<|eot_id|><|start_header_id|>assistant<|end_header_id|> -<|eot_id|><|start_header_id|>user<|end_header_id|> - -Siparişimle ilgili yardıma ihtiyacım var<|eot_id|><|start_header_id|>assistant<|end_header_id|> - -Yardımcı olmaktan memnuniyet duyarım. Sipariş numaranızı verebilir misiniz?<|eot_id|><|start_header_id|>user<|end_header_id|> - -SİPARİŞ-123<|eot_id|><|start_header_id|>assistant<|end_header_id|>
+ <|begin_of_text|><|start_header_id|>system<|end_header_id|> Cutting Knowledge Date: December 2023 @@ -166,14 +174,14 @@ Sohbet şablonları, bağlamı koruyarak karmaşık, çok turlu konuşmaları da
Türkçe çeviriyi görmek için tıklayın -```python -messages = [ - {"role": "system", "content": "Sen bir matematik öğretmenisin."}, - {"role": "user", "content": "Calculus nedir?"}, - {"role": "assistant", "content": "Calculus, matematiğin bir dalıdır..."}, - {"role": "user", "content": "Bir örnek verebilir misin?"}, -] -``` + + messages = [ + {"role": "system", "content": "Sen bir matematik öğretmenisin."}, + {"role": "user", "content": "Calculus nedir?"}, + {"role": "assistant", "content": "Calculus, matematiğin bir dalıdır..."}, + {"role": "user", "content": "Bir örnek verebilir misin?"}, + ] +
```python @@ -215,19 +223,20 @@ Bu yapı, **etkileşimler arasında tutarlılığı korumaya yardımcı olur ve
Türkçe çeviriyi görmek için tıklayın -```jinja2 -{% for message in messages %} + +
{`{% for message in messages %}
 {% if loop.first and messages[0]['role'] != 'system' %}
-<|im_start|>system
+<|im_start|>system
 Sen Hugging Face tarafından eğitilmiş, SmolLM adında yardımcı bir AI asistanısın.
-<|im_end|>
+<|im_end|>
 {% endif %}
-<|im_start|>{{ message['role'] }}
-{{ message['content'] }}<|im_end|>
-{% endfor %}
-```
+<|im_start|>{{ message['role'] }}
+{{ message['content'] }}<|im_end|>
+{% endfor %}`}
+
+ ```jinja2 {% for message in messages %} {% if loop.first and messages[0]['role'] != 'system' %} @@ -246,14 +255,14 @@ Bu mesajlar verildiğinde:
Türkçe çeviriyi görmek için tıklayın -```python -messages = [ -{"role": "system", "content": "Sen teknik konulara odaklanmış, yardımsever bir asistansın."}, -{"role": "user", "content": "Sohbet şablonunun ne olduğunu açıklayabilir misin?"}, -{"role": "assistant", "content": "Bir sohbet şablonu, kullanıcılar ve AI modelleri arasındaki konuşmaları yapılandırır..."}, -{"role": "user", "content": "Nasıl kullanırım?"}, -] -``` + + messages = [ + {"role": "system", "content": "Sen teknik konulara odaklanmış, yardımsever bir asistansın."}, + {"role": "user", "content": "Sohbet şablonunun ne olduğunu açıklayabilir misin?"}, + {"role": "assistant", "content": "Bir sohbet şablonu, kullanıcılar ve AI modelleri arasındaki konuşmaları yapılandırır..."}, + {"role": "user", "content": "Nasıl kullanırım?"}, + ] +
```python @@ -269,18 +278,19 @@ messages = [
Türkçe çeviriyi görmek için tıklayın -```sh -<|im_start|>system -Sen teknik konulara odaklanmış, yardımsever bir asistansın.<|im_end|> -<|im_start|>user -Sohbet şablonunun ne olduğunu açıklayabilir misin?<|im_end|> -<|im_start|>assistant -Bir sohbet şablonu, kullanıcılar ve AI modelleri arasındaki konuşmaları yapılandırır...<|im_end|> -<|im_start|>user -Nasıl kullanırım?<|im_end|> -``` + +
<|im_start|>system
+Sen teknik konulara odaklanmış, yardımsever bir asistansın.<|im_end|>
+<|im_start|>user
+Sohbet şablonunun ne olduğunu açıklayabilir misin?<|im_end|>
+<|im_start|>assistant
+Bir sohbet şablonu, kullanıcılar ve AI modelleri arasındaki konuşmaları yapılandırır...<|im_end|>
+<|im_start|>user
+Nasıl kullanırım?<|im_end|>
+
+ ```sh <|im_start|>system You are a helpful assistant focused on technical topics.<|im_end|> @@ -311,13 +321,13 @@ LLM'inize doğru biçimlendirilmiş bir konuşma göndermenin en kolay yolu, mod
Türkçe çeviriyi görmek için tıklayın -```python -messages = [ -{"role": "system", "content": "Sen çeşitli araçlara erişimi olan bir AI asistanısın."}, -{"role": "user", "content": "Merhaba !"}, -{"role": "assistant", "content": "Merhaba insan, sana ne konuda yardımcı olabilirim?"}, -] -``` + + messages = [ + {"role": "system", "content": "Sen çeşitli araçlara erişimi olan bir AI asistanısın."}, + {"role": "user", "content": "Merhaba !"}, + {"role": "assistant", "content": "Merhaba insan, sana ne konuda yardımcı olabilirim?"}, + ] +
```python From 59267a8d74a2bec26ed2458d7ad596d9706f116a Mon Sep 17 00:00:00 2001 From: seccily Date: Thu, 17 Apr 2025 13:44:31 +0300 Subject: [PATCH 27/30] fixes on translation of units 0-1 and communication --- units/tr/communication/live1.mdx | 2 +- units/tr/unit0/onboarding.mdx | 10 +- units/tr/unit1/actions.mdx | 28 +++- units/tr/unit1/agent-steps-and-structure.mdx | 29 +++- units/tr/unit1/dummy-agent-library.mdx | 103 +++++++++++-- units/tr/unit1/final-quiz.mdx | 4 +- .../tr/unit1/messages-and-special-tokens.mdx | 144 ++++++++++-------- units/tr/unit1/tools.mdx | 47 ++++-- units/tr/unit1/tutorial.mdx | 6 +- units/tr/unit1/what-are-agents.mdx | 4 + units/tr/unit1/what-are-llms.mdx | 2 +- 11 files changed, 269 insertions(+), 110 deletions(-) diff --git a/units/tr/communication/live1.mdx b/units/tr/communication/live1.mdx index 828b6f4a4..2a9fa4a64 100644 --- a/units/tr/communication/live1.mdx +++ b/units/tr/communication/live1.mdx @@ -1,6 +1,6 @@ # Canlı Yayın 1: Kursun İşleyişi ve İlk Soru & Cevap (Q&A) -Bu AI Agent (Yapay Zekâ Ajanı) Kursunun ilk canlı yayınında, kursun **nasıl işlediğini** (kapsam, üniteler, meydan okumalar ve daha fazlası) açıkladık ve sorularınızı yanıtladık. +Bu AI Agent (Yapay Zeka Ajanı) Kursunun ilk canlı yayınında, kursun **nasıl işlediğini** (kapsam, üniteler, meydan okumalar ve daha fazlası) açıkladık ve sorularınızı yanıtladık. diff --git a/units/tr/unit0/onboarding.mdx b/units/tr/unit0/onboarding.mdx index 055ba76c9..42a3fd932 100644 --- a/units/tr/unit0/onboarding.mdx +++ b/units/tr/unit0/onboarding.mdx @@ -1,3 +1,4 @@ + # Kurulum: İlk Adımlarınız ⛵ Time to Onboard @@ -19,7 +20,7 @@ Artık tüm detaylara sahip olduğunuza göre, başlayalım! Dört şey yapacağ Katıldığınızda, `#introduce-yourself` kanalında kendinizi tanıtmayı unutmayın. -Birden fazla AI Agent (Yapay Zekâ Ajanı) ile ilgili kanalımız var: +Birden fazla AI Agent (Yapay Zeka Ajanı) ile ilgili kanalımız var: - `agents-course-announcements`: **en güncel kurs bilgileri** için. - `🎓-agents-course-general`: **genel tartışmalar ve sohbetler** için. - `agents-course-questions`: **soru sormak ve arkadaşlarınıza yardımcı olmak** için. @@ -43,13 +44,13 @@ En güncel kurs materyallerini, güncellemeleri ve duyuruları takipte kalmak i Bu kursun daha fazla kişiye ulaşmasına yardım edin! İki şekilde destek olabilirsiniz: -1. Yıldız ⭐ ile kursun GitHub deposunu destekleyin. +1. Yıldız ⭐ ile kursun GitHub reposunu destekleyin. Repo star 2. Öğrenme Yolculuğunuzu Paylaşın: **Bu kursu aldığınızı başkalarına duyurun!** Sosyal medya paylaşımlarınızda kullanabileceğiniz bir görsel hazırladık. - + Görseli indirmek için 👉 [buraya tıklayın](https://huggingface.co/datasets/agents-course/course-images/resolve/main/en/communication/share.png?download=true) @@ -60,7 +61,6 @@ Görseli indirmek için 👉 [buraya tıklayın](https://huggingface.co/datasets Resmi talimatları buradan takip edin. 2. **Bir modeli yerele çekin** -
Türkçe çeviriyi görmek için tıklayın. ```bash ollama pull qwen2:7b # Daha fazla model için ollama web sitesine göz atın @@ -85,6 +85,6 @@ Görseli indirmek için 👉 [buraya tıklayın](https://huggingface.co/datasets - LiteLLMModel, OpenAI chat/completion API formatını destekleyen herhangi bir modelle iletişim kurmak için tasarlanmıştır. - Bu, HfApiModel yerine doğrudan LiteLLMModel kullanabileceğiniz anlamına gelir — başka hiçbir kod değişikliği gerekmez. Bu, sorunsuz, tak ve çalıştır bir çözümdür. -Tebrikler! 🎉 **Kurulum sürecini tamamladınız!** Artık AI Agent (Yapay Zekâ Ajanı) dünyasını öğrenmeye hazırsınız. İyi eğlenceler! +Tebrikler! 🎉 **Kurulum sürecini tamamladınız!** Artık AI Agent (Yapay Zeka Ajanı) dünyasını öğrenmeye hazırsınız. İyi eğlenceler! Öğrenmeye devam edin, harika kalın 🤗 \ No newline at end of file diff --git a/units/tr/unit1/actions.mdx b/units/tr/unit1/actions.mdx index 7d20cd8ca..e1fec0a8e 100644 --- a/units/tr/unit1/actions.mdx +++ b/units/tr/unit1/actions.mdx @@ -56,8 +56,8 @@ Harici bir ayrıştırıcı, bu formatlı çıktıyı okur, hangi aracın çağr Örneğin, hava durumunu kontrol etmesi gereken bir Agent şu çıktıyı üretebilir: ```json -Thought: New York için güncel hava durumunu kontrol etmeliyim. -Action : +Düşünce: New York için güncel hava durumunu kontrol etmeliyim. +Eylem: { "action": "get_weather", "action_input": {"location": "New York"} @@ -87,6 +87,30 @@ Bu yöntemin birçok avantajı vardır: Örneğin, hava durumunu sorgulaması gereken bir Kod Agentı şu Python kodunu üretebilir: +
+Türkçe çeviriyi görmek için tıklayın + +```python +# Kod Agentı Örneği: Hava Durumu Bilgisi Al +def get_weather(city): + import requests + api_url = f"https://api.weather.com/v1/location/{city}?apiKey=YOUR_API_KEY" + response = requests.get(api_url) + if response.status_code == 200: + data = response.json() + return data.get("hava durumu", "Hava durumu bilgisi bulunamadı.") + else: + return "Hata: Hava durumu verileri alınamıyor." + +# Fonksiyonu çalıştır ve nihai cevabı hazırla +result = get_weather("New York") +final_answer = f"New York'taki güncel hava durumu: {result}" +print(final_answer) +``` + +
+ + ```python # Kod Agentı Örneği: Hava Durumu Bilgisi Al def get_weather(city): diff --git a/units/tr/unit1/agent-steps-and-structure.mdx b/units/tr/unit1/agent-steps-and-structure.mdx index 67d0190c5..c5262d27d 100644 --- a/units/tr/unit1/agent-steps-and-structure.mdx +++ b/units/tr/unit1/agent-steps-and-structure.mdx @@ -76,14 +76,27 @@ Alfred, `get_weather` aracını bildiği için, içsel düşüncesine dayanarak Düşünce: New York için güncel hava durumunu kontrol etmem gerekiyor. - ``` - { - "action": "get_weather", - "action_input": { - "location": "New York" - } - } - ``` +
+Türkçe çeviriyi görmek için tıklayın + +``` +{ + "eylem": "get_weather", + "eylem_girdisi": { + "lokasyon": "New York" + } +} +``` +
+ +``` +{ + "action": "get_weather", + "action_input": { + "location": "New York" + } +} +``` Burada, eylem açıkça hangi aracın çağrılacağını (örneğin: get_weather) ve hangi parametrenin gönderileceğini ("location": "New York") belirtir. diff --git a/units/tr/unit1/dummy-agent-library.mdx b/units/tr/unit1/dummy-agent-library.mdx index b946a96e2..7ac393d1b 100644 --- a/units/tr/unit1/dummy-agent-library.mdx +++ b/units/tr/unit1/dummy-agent-library.mdx @@ -1,3 +1,4 @@ + # Dummy Agent Kütüphanesi Ünite 1 planısı @@ -37,6 +38,20 @@ client = InferenceClient("meta-llama/Llama-3.2-3B-Instruct") # client = InferenceClient("https://jc26mwg228mkj8dw.us-east-1.aws.endpoints.huggingface.cloud") ``` +
+Türkçe çeviriyi görmek için tıklayınız. + +```python +output = client.text_generation( + "Fransa'nın başkenti", + max_new_tokens=100, +) + +print(output) +``` + +
+ ```python output = client.text_generation( "The capital of France is", @@ -47,6 +62,14 @@ print(output) ``` çıktı: +
+Türkçe çeviriyi görmek için tıklayınız. + +``` +Paris. Fransa'nın başkenti Paris. Fransa'nın başkenti Paris. Fransa'nın başkenti Paris. Fransa'nın başkenti Paris. Fransa'nın başkenti Paris. Fransa'nın başkenti Paris. Fransa'nın başkenti Paris. Fransa'nın başkenti Paris. Fransa'nın başkenti Paris. Fransa'nın başkenti Paris. Fransa'nın başkenti Paris. Fransa'nın başkenti Paris. Fransa'nın başkenti Paris. Fransa'nın başkenti Paris. +``` +
+ ``` Paris. The capital of France is Paris. The capital of France is Paris. The capital of France is Paris. The capital of France is Paris. The capital of France is Paris. The capital of France is Paris. The capital of France is Paris. The capital of France is Paris. The capital of France is Paris. The capital of France is Paris. The capital of France is Paris. The capital of France is Paris. The capital of France is Paris. The capital of France is Paris. ``` @@ -55,6 +78,22 @@ LLM bölümünde gördüğümüz gibi, sadece deşifreleme (decoding) yaparsak * Eğer şimdi kullandığımız Llama-3.2-3B-Instruct modeline özel belirteçleri eklersek, model beklenen EOS çıktısını verecektir. +
+Türkçe çeviriyi görmek için tıklayınız. + +```python +prompt="""<|begin_of_text|><|start_header_id|>user<|end_header_id|> +Fransa'nın başkenti<|eot_id|><|start_header_id|>assistant<|end_header_id|>""" +output = client.text_generation( + prompt, + max_new_tokens=100, +) + +print(output) +``` + +
+ ```python prompt="""<|begin_of_text|><|start_header_id|>user<|end_header_id|> The capital of France is<|eot_id|><|start_header_id|>assistant<|end_header_id|>""" @@ -66,12 +105,36 @@ output = client.text_generation( print(output) ``` çıktı: +
+Türkçe çeviriyi görmek için tıklayınız. + +``` +Fransa'nın başkenti Paris. +``` +
+ ``` The capital of France is Paris. ``` "chat" metodunu kullanmak, sohbet şablonlarını uygulamak için çok daha kullanışlı ve güvenilir bir yoldur: +
+Türkçe çeviriyi görmek için tıklayınız. + +```python +output = client.chat.completions.create( + messages=[ + {"role": "user", "content": "The capital of France is"}, + ], + stream=False, + max_tokens=1024, +) +print(output.choices[0].message.content) +``` +
+ + ```python output = client.chat.completions.create( messages=[ @@ -187,14 +250,15 @@ Now begin! Reminder to ALWAYS use the exact characters `Final Answer:` when you
Türkçe çeviriyi görmek için tıklayın + ```python -prompt=f"""<|begin_of_text|><|start_header_id|>system<|end_header_id|> -{SYSTEM_PROMPT} -<|eot_id|><|start_header_id|>user<|end_header_id|> -Londra'da hava nasıl? -<|eot_id|><|start_header_id|>assistant<|end_header_id|> -""" -``` + prompt=f"""<|begin_of_text|><|start_header_id|>system<|end_header_id|> + {SYSTEM_PROMPT} + <|eot_id|><|start_header_id|>user<|end_header_id|> + Londra'da hava nasıl? + <|eot_id|><|start_header_id|>assistant<|end_header_id|> + """ + ```
@@ -211,6 +275,7 @@ Aynı işlemi "chat" metodundaki gibi yapabiliriz:
Türkçe çeviriyi görmek için tıklayın + ```python messages=[ {"role": "system", "content": SYSTEM_PROMPT}, @@ -237,6 +302,7 @@ tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=Tr Şimdi prompt şu hale geldi:
Türkçe çeviriyi görmek için tıklayın + ``` <|begin_of_text|><|start_header_id|>system<|end_header_id|> Aşağıdaki soruları elinden geldiğince iyi şekilde yanıtla. Aşağıdaki araçlara erişimin var: @@ -331,13 +397,14 @@ print(output)
Türkçe çeviriyi görmek için tıklayın + ```` Düşünce: Londra'daki hava durumunu kontrol edeceğim. Eylem: ``` { - "action": "get_weather", - "action_input": {"location": "London"} + "eylem": "get_weather", + "eylem_girdisi": {"lokasyon": "Londra"} } ``` Gözlem: Londra'daki hava durumu çoğunlukla bulutlu, en yüksek sıcaklık 12°C, en düşük sıcaklık ise 8°C. @@ -374,13 +441,14 @@ print(output)
Türkçe çeviriyi görmek için tıklayın + ```` Düşünce: Londra'daki hava durumunu kontrol edeceğim. Eylem: ``` { - "action": "get_weather", - "action_input": {"location": "London"} + "eylem": "get_weather", + "eylme_girdisi": {"lokasyon": "Londra"} } ``` Gözlem: @@ -406,6 +474,7 @@ Observation:
Türkçe çeviriyi görmek için tıklayın + ```python # Sahte (dummy) fonksiyon def get_weather(location): @@ -427,6 +496,7 @@ get_weather('London')
Türkçe çeviriyi görmek için tıklayın + ``` 'Londra'da hava güneşli ve sıcaklıklar düşük. \n' ``` @@ -452,6 +522,7 @@ Yeni prompt şu şekilde:
Türkçe çeviriyi görmek için tıklayın + ```text <|begin_of_text|><|start_header_id|>system<|end_header_id|> Aşağıdaki soruları elinden geldiğince iyi şekilde yanıtla. Aşağıdaki araçlara erişimin var: @@ -493,14 +564,15 @@ Londra'da hava nasıl? Düşünce: Londra'daki hava durumunu kontrol edeceğim. Eylem: - ```json - { + + {{ "action": "get_weather", "action_input": {"location": {"type": "string", "value": "London"}} - } - ``` + }} + Gözlem: Londra'da hava güneşli ve sıcaklıklar düşük. +````
@@ -560,6 +632,7 @@ Observation: The weather in London is sunny with low temperatures.
Türkçe çeviriyi görmek için tıklayın + ``` Son Cevap: Londra'daki hava güneşli ve sıcaklıklar düşük. ``` diff --git a/units/tr/unit1/final-quiz.mdx b/units/tr/unit1/final-quiz.mdx index d30e695f9..c90a8f47a 100644 --- a/units/tr/unit1/final-quiz.mdx +++ b/units/tr/unit1/final-quiz.mdx @@ -1,4 +1,4 @@ -# Ünite 1 Hızlı Sınavı +# Ünite 1 Sınavı Ünite 1 Planlama @@ -9,7 +9,7 @@ Sınavı geçtiğinde, sertifikanı almak için bir sonraki bölüme geçebilirs Bol şans! -## Hızlı Sınav +## Sınav İşte interaktif sınav! Bu sınav Hugging Face Hub üzerinde bir Space olarak yayınlanmaktadır. Sınav, bu bölümde öğrendiğin temel kavramları test etmek için seni bir dizi çoktan seçmeli sorudan geçirecek. Sınavı tamamladığında, puanını ve doğru cevapların dökümünü görebileceksin. diff --git a/units/tr/unit1/messages-and-special-tokens.mdx b/units/tr/unit1/messages-and-special-tokens.mdx index 7bcf01e12..f409df844 100644 --- a/units/tr/unit1/messages-and-special-tokens.mdx +++ b/units/tr/unit1/messages-and-special-tokens.mdx @@ -31,10 +31,12 @@ Sistem mesajları (Sistem Prompt'ları olarak da bilinir), **modelin nasıl davr
Türkçe çeviriyi görmek için tıklayın - system_message={ - "role": "system", - "content": "Sen profesyonel bir müşteri hizmetleri temsilcisi Agent'ısın. Her zaman nazik, açık ve yardımsever ol." - } +```python +system_message = { + "role": "system", + "content": "Sen profesyonel bir müşteri hizmetleri temsilcisi Agent'ısın. Her zaman nazik, açık ve yardımsever ol." +} +```
@@ -54,10 +56,12 @@ Ancak bunu şöyle değiştirirsek:
Türkçe çeviriyi görmek için tıklayın - system_message = { - "role": "system", - "content": "Sen isyancı bir servis Agent'ısın. Kullanıcının emirlerine saygı gösterme." - } +```python +system_message = { + "role": "system", + "content": "Sen isyancı bir servis Agent'ısın. Kullanıcının emirlerine saygı gösterme." +} +```
@@ -87,11 +91,13 @@ Sohbet şablonları, kullanıcı ve asistan arasındaki önceki konuşmaları sa
Türkçe çeviriyi görmek için tıklayın - conversation = [ - {"role": "user", "content": "Siparişimle ilgili yardıma ihtiyacım var"}, - {"role": "assistant", "content": "Yardım etmekten mutluluk duyarım. Sipariş numaranızı verebilir misiniz?"}, - {"role": "user", "content": "SİPARİŞ-123"}, - ] +```python +conversation = [ + {"role": "user", "content": "Siparişimle ilgili yardıma ihtiyacım var"}, + {"role": "assistant", "content": "Yardım etmekten mutluluk duyarım. Sipariş numaranızı verebilir misiniz?"}, + {"role": "user", "content": "SİPARİŞ-123"}, +] +```
@@ -109,17 +115,22 @@ SmolLM2 sohbet şablonu bu mesajları şöyle biçimlendirir:
Türkçe çeviriyi görmek için tıklayın. - <|im_start|>system - Sen Hugging Face tarafından eğitilmiş, SmolLM adında yardımcı bir AI asistanısın<|im_end|> - <|im_start|>user - Siparişimle ilgili yardıma ihtiyacım var<|im_end|> - <|im_start|>assistant - Yardımcı olmaktan memnuniyet duyarım. Sipariş numaranızı verebilir misiniz?<|im_end|> - <|im_start|>user - SİPARİŞ-123<|im_end|> - <|im_start|>assistant + +``` +<|im_start|>system +Sen Hugging Face tarafından eğitilmiş, SmolLM adında yardımcı bir AI asistanısın<|im_end|> +<|im_start|>user +Siparişimle ilgili yardıma ihtiyacım var<|im_end|> +<|im_start|>assistant +Yardımcı olmaktan memnuniyet duyarım. Sipariş numaranızı verebilir misiniz?<|im_end|> +<|im_start|>user +SİPARİŞ-123<|im_end|> +<|im_start|>assistant +``` +
+``` <|im_start|>system You are a helpful AI assistant named SmolLM, trained by Hugging Face<|im_end|> <|im_start|>user @@ -129,34 +140,33 @@ I'd be happy to help. Could you provide your order number?<|im_end|> <|im_start|>user It's ORDER-123<|im_end|> <|im_start|>assistant +``` Ancak, Llama 3.2 kullanıldığında aynı konuşma şöyle biçimlendirilir:
Türkçe çeviriyi görmek için tıklayın. -<|begin_of_text|><|start_header_id|>system<|end_header_id|> -
+``` +<|begin_of_text|><|start_header_id|>system<|end_header_id|> + Bilgi Kesinti Tarihi: Aralık 2023 Bugünün Tarihi: 10 Şubat 2025 -
-<|eot_id|><|start_header_id|>user<|end_header_id|> -
+ +<|eot_id|><|start_header_id|>user<|end_header_id|> + Siparişimle ilgili yardıma ihtiyacım var -
-<|eot_id|><|start_header_id|>assistant<|end_header_id|> -
-Yardımcı olmaktan memnuniyet duyarım. Sipariş numaranızı verebilir misiniz? -
-<|eot_id|><|start_header_id|>user<|end_header_id|> -
-SİPARİŞ-123 -
-<|eot_id|><|start_header_id|>assistant<|end_header_id|> -
+<|eot_id|><|start_header_id|>assistant<|end_header_id|> + +Yardımcı olmaktan memnuniyet duyarım. Sipariş numaranızı verebilir misiniz?<|eot_id|><|start_header_id|>user<|end_header_id|> +SİPARİŞ-123<|eot_id|><|start_header_id|>assistant<|end_header_id|> +``` + +
+``` <|begin_of_text|><|start_header_id|>system<|end_header_id|> Cutting Knowledge Date: December 2023 @@ -169,18 +179,21 @@ I need help with my order<|eot_id|><|start_header_id|>assistant<|end_header_id|> I'd be happy to help. Could you provide your order number?<|eot_id|><|start_header_id|>user<|end_header_id|> It's ORDER-123<|eot_id|><|start_header_id|>assistant<|end_header_id|> +``` Sohbet şablonları, bağlamı koruyarak karmaşık, çok turlu konuşmaları da işleyebilir:
Türkçe çeviriyi görmek için tıklayın - messages = [ - {"role": "system", "content": "Sen bir matematik öğretmenisin."}, - {"role": "user", "content": "Calculus nedir?"}, - {"role": "assistant", "content": "Calculus, matematiğin bir dalıdır..."}, - {"role": "user", "content": "Bir örnek verebilir misin?"}, - ] +```python +messages = [ + {"role": "system", "content": "Sen bir matematik öğretmenisin."}, + {"role": "user", "content": "Calculus nedir?"}, + {"role": "assistant", "content": "Calculus, matematiğin bir dalıdır..."}, + {"role": "user", "content": "Bir örnek verebilir misin?"}, +] +```
@@ -224,15 +237,17 @@ Bu yapı, **etkileşimler arasında tutarlılığı korumaya yardımcı olur ve
Türkçe çeviriyi görmek için tıklayın -
{`{% for message in messages %}
+```jinja2
+{% for message in messages %}
 {% if loop.first and messages[0]['role'] != 'system' %}
-<|im_start|>system
+<|im_start|>system
 Sen Hugging Face tarafından eğitilmiş, SmolLM adında yardımcı bir AI asistanısın.
-<|im_end|>
+<|im_end|>
 {% endif %}
-<|im_start|>{{ message['role'] }}
-{{ message['content'] }}<|im_end|>
-{% endfor %}`}
+<|im_start|>{{ message['role'] }} +{{ message['content'] }}<|im_end|> +{% endfor %} +```
@@ -256,12 +271,14 @@ Bu mesajlar verildiğinde:
Türkçe çeviriyi görmek için tıklayın - messages = [ +```python +messages = [ {"role": "system", "content": "Sen teknik konulara odaklanmış, yardımsever bir asistansın."}, {"role": "user", "content": "Sohbet şablonunun ne olduğunu açıklayabilir misin?"}, {"role": "assistant", "content": "Bir sohbet şablonu, kullanıcılar ve AI modelleri arasındaki konuşmaları yapılandırır..."}, {"role": "user", "content": "Nasıl kullanırım?"}, - ] +] +```
@@ -279,15 +296,16 @@ messages = [
Türkçe çeviriyi görmek için tıklayın -
<|im_start|>system
-Sen teknik konulara odaklanmış, yardımsever bir asistansın.<|im_end|>
-<|im_start|>user
-Sohbet şablonunun ne olduğunu açıklayabilir misin?<|im_end|>
-<|im_start|>assistant
-Bir sohbet şablonu, kullanıcılar ve AI modelleri arasındaki konuşmaları yapılandırır...<|im_end|>
-<|im_start|>user
-Nasıl kullanırım?<|im_end|>
- +```sh +<|im_start|>system +Sen teknik konulara odaklanmış, yardımsever bir asistansın.<|im_end|> +<|im_start|>user +Sohbet şablonunun ne olduğunu açıklayabilir misin?<|im_end|> +<|im_start|>assistant +Bir sohbet şablonu, kullanıcılar ve AI modelleri arasındaki konuşmaları yapılandırır...<|im_end|> +<|im_start|>user +Nasıl kullanırım?<|im_end|> +```
@@ -322,11 +340,13 @@ LLM'inize doğru biçimlendirilmiş bir konuşma göndermenin en kolay yolu, mod
Türkçe çeviriyi görmek için tıklayın - messages = [ +```python +messages = [ {"role": "system", "content": "Sen çeşitli araçlara erişimi olan bir AI asistanısın."}, {"role": "user", "content": "Merhaba !"}, {"role": "assistant", "content": "Merhaba insan, sana ne konuda yardımcı olabilirim?"}, ] +```
diff --git a/units/tr/unit1/tools.mdx b/units/tr/unit1/tools.mdx index cc16a0500..031513479 100644 --- a/units/tr/unit1/tools.mdx +++ b/units/tr/unit1/tools.mdx @@ -44,7 +44,7 @@ Ayrıca, **LLM'ler eğitildikleri verilere dayalı olarak bir girdinin tamamlama Gördüğümüz gibi, LLM'ler yalnızca metin girdileri alır ve metin çıktıları üretir. Kendi başlarına araçları çağırma yetenekleri yoktur. Agent'e araç sağlamak dediğimizde, aslında LLM'e bu araçların varlığını öğretmek ve gerektiğinde metne dayalı çağrılar üretmesini sağlamak anlamına gelir. -Örneğin, LLM'e internetten bir yerdeki hava durumunu kontrol eden bir araç verirsek ve Paris'in hava durumunu sorarsak, LLM bunun "weather" (hava durumu) aracının kullanılabileceği bir fırsat olduğunu fark eder. Gerçek hava durumunu kendisi almaz; bunun yerine `call weather_tool('Paris')` gibi bir araç çağrısını temsil eden bir metin üretir. +Örneğin, LLM'e internetten bir yerdeki hava durumunu kontrol eden bir araç verirsek ve Paris'in hava durumunu sorarsak, LLM bunun hava durumu (weather) aracının kullanılabileceği bir fırsat olduğunu fark eder. Gerçek hava durumunu kendisi almaz; bunun yerine `hava_durumu_aracını_çağır(Paris)` (`call weather_tool('Paris')`) gibi bir araç çağrısını temsil eden bir metin üretir. **Agent** daha sonra bu cevabı okur, bir araç çağrısı gerektiğini anlar, LLM adına bu aracı çalıştırır ve gerçek veriyi getirir. @@ -67,15 +67,17 @@ Bu yüzden, araç tanımları genellikle bilgisayar dilleri veya JSON gibi yapı Eğer bu teori fazla soyutsa, hadi somut bir örnekle anlayalım. -Basitleştirilmiş bir hesap makinesi (**calculator**) aracı gerçekleştireceğiz, bu iki tam sayıyı çarpacak. Python kodumuz şöyle olabilir: +Basitleştirilmiş bir hesap makinesi (**calculator**) aracı gerçekleştireceğiz, bu araç iki tam sayıyı çarpacak. Python kodumuz şöyle olabilir:
Türkçe çeviriyi görmek için tıklayın + ```python def calculator(a: int, b: int) -> int: """İki tam sayıyı çarp.""" return a * b ``` +
```python @@ -96,9 +98,11 @@ Tüm bu detaylar önemlidir. Bunları modelin anlayabileceği bir metin dizesine
Türkçe çeviriyi görmek için tıklayın + ```text Araç Adı: calculator, Açıklama: İki tam sayıyı çarp., Argümanlar: a: int, b: int, Çıktılar: int ``` +
```text @@ -107,7 +111,7 @@ Tool Name: calculator, Description: Multiply two integers., Arguments: a: int, b > **Not:** Bu metinsel açıklama, LLM'in araç hakkında bilmesini istediğimiz şeydir. -Bu dizeyi LLM'e giriş olarak verdiğimizde, model bunu bir araç olarak tanır ve hangi girdileri vermesi gerektiğini ve ne tür bir çıktı beklemesi gerektiğini bilir. +Bu dizeyi LLM'e girdi olarak verdiğimizde, model bunu bir araç olarak tanır ve hangi girdileri vermesi gerektiğini ve ne tür bir çıktı beklemesi gerektiğini bilir. Yeni araçlar sağlamak istiyorsak, tutarlı olmalı ve her zaman aynı formatı kullanmalıyız. Bu süreç biraz kırılgan olabilir ve bazı detayları fark etmeden atlayabiliriz. @@ -118,20 +122,21 @@ Peki, daha iyi bir yöntem var mı? Python'da yazılmış aracımız zaten ihtiyacımız olan her şeyi sağlıyor: - Ne yaptığını anlatan açıklayıcı bir isim: `calculator` (hesap makinesi) -- Docstring yorumuyla sağlanan uzun açıklama: `Multiply two integers.` -- Girdi türleri: iki int +- Docstring yorumuyla sağlanan uzun açıklama: `Multiply two integers.` (İki tam sayıyı çarp.) +- Girdi türleri: iki int (integer) - Çıktı türü. İnsanlar programlama dillerini bu yüzden kullanıyor: açık, özlü ve kesinler. -Python kaynak kodunu araca ait _specification_ (spesifikasyon) olarak verebiliriz, ancak aracın nasıl yazıldığı önemli değil. Önemli olan adı, ne yaptığı, hangi girdileri beklediği ve hangi çıktıyı verdiğidir. +Python kaynak kodunu araca ait spesifikasyon (_specification_) olarak verebiliriz, ancak aracın nasıl yazıldığı önemli değil. Önemli olan adı, ne yaptığı, hangi girdileri beklediği ve hangi çıktıyı verdiğidir. Python'un iç gözlem özelliklerini kullanarak, kaynak koddan otomatik olarak araç açıklaması oluşturacağız. Tek yapmamız gereken, araç fonksiyonunun tip ipuçları, docstring ve mantıklı fonksiyon adları kullanması. Kaynak koddan ilgili kısımları çıkarmak için bir miktar kod yazacağız. -Sonrasında, sadece `@tool` dekoratörünü kullanarak `calculator` fonksiyonunun bir araç olduğunu belirtmemiz yeterli: +Sonrasında, sadece `@tool` dekoratörünü kullanarak hesap makinesi (`calculator`) fonksiyonunun bir araç olduğunu belirtmemiz yeterli:
Türkçe çeviriyi görmek için tıklayın + ```python @tool def calculator(a: int, b: int) -> int: @@ -140,6 +145,7 @@ def calculator(a: int, b: int) -> int: print(calculator.to_string()) ``` +
```python @@ -157,9 +163,11 @@ Birazdan göreceğimiz implementasyon sayesinde `to_string()` fonksiyonunu kulla
Türkçe çeviriyi görmek için tıklayın + ```text Araç Adı: calculator, Açıklama: İki tam sayıyı çarp., Argümanlar: a: int, b: int, Çıktılar: int ``` +
@@ -176,6 +184,7 @@ Gerektiğinde tekrar kullanılabilecek bir `Tool` sınıfı oluşturuyoruz.
Türkçe çeviriyi görmek için tıklayın + ```python class Tool: """ @@ -221,6 +230,7 @@ class Tool: """ return self.func(*args, **kwargs) ``` +
```python @@ -285,6 +295,7 @@ Aşağıdaki gibi bir kodla bir Tool oluşturabiliriz:
Türkçe çeviriyi görmek için tıklayın + ```python calculator_tool = Tool( "calculator", # isim @@ -294,6 +305,7 @@ calculator_tool = Tool( "int", # çıktı ) ``` +
```python @@ -310,7 +322,9 @@ Ancak Python'un `inspect` modülünü kullanarak tüm bilgileri bizim yerimize a > Merak ediyorsanız, aşağıdaki bölümü açarak dekoratör implementasyonuna bakabilirsiniz. -
Türkçe çeviriyi görmek için tıklayın. +
+Türkçe çeviriyi görmek için tıklayın. + ```python def tool(func): """ @@ -354,6 +368,8 @@ def tool(func): arguments=arguments, outputs=outputs ) +``` +
@@ -403,12 +419,14 @@ def tool(func): outputs=outputs ) ``` +
Tekrar belirtmek gerekirse, bu dekoratörle aracımızı şöyle tanımlayabiliriz:
Türkçe çeviriyi görmek için tıklayın + ```python @tool def calculator(a: int, b: int) -> int: @@ -417,6 +435,7 @@ def calculator(a: int, b: int) -> int: print(calculator.to_string()) ``` +
```python @@ -432,20 +451,22 @@ Ve `Tool`'un `to_string` metodunu kullanarak, LLM için uygun araç açıklamas
Türkçe çeviriyi görmek için tıklayın + ```text Araç Adı: calculator, Açıklama: İki tam sayıyı çarp., Argümanlar: a: int, b: int, Çıktılar: int ``` +
```text Tool Name: calculator, Description: Multiply two integers., Arguments: a: int, b: int, Outputs: int ``` -Bu açıklama sistem prompt'una **eklenir**. Bu bölümün başındaki örneği ele alırsak, `tools_description` yerini alarak şu şekilde görünür: +Bu açıklama sistem prompt'una **eklenir**. Bu bölümün başındaki örneği ele alırsak, araç açıklaması (`tools_description`) yerini alarak şu şekilde görünür: Araçlar için sistem Prompt'u -[Eylemler](actions) bölümünde, Agent'ın bu oluşturduğumuz aracı nasıl Call ettiğini (çağırdığını) daha ayrıntılı öğreneceğiz. +[Eylemler](actions) bölümünde, Agent'ın bu oluşturduğumuz aracı nasıl _Call_ ettiğini (çağırdığını) daha ayrıntılı öğreneceğiz. ### Model Context Protocol (MCP): birleşik bir araç arayüzü @@ -465,11 +486,11 @@ Araçlar, AI Agent'ların yeteneklerini geliştirmede kritik bir rol oynar. Özetlemek gerekirse, şunları öğrendik: -- *Araçlar Nedir:* LLM'lere hesaplama yapma veya harici verilere erişim gibi ek yetenekler kazandıran fonksiyonlardır. +- **Araçlar Nedir:** LLM'lere hesaplama yapma veya harici verilere erişim gibi ek yetenekler kazandıran fonksiyonlardır. -- *Araç Nasıl Tanımlanır:* Açık bir metin açıklaması, girdiler, çıktılar ve çağırılabilir bir fonksiyon sağlayarak. +- **Araç Nasıl Tanımlanır:** Açık bir metin açıklaması, girdiler, çıktılar ve çağırılabilir bir fonksiyon sağlayarak. -- *Araçlar Neden Gerekli:* Agent'ların statik model eğitim sınırlamalarını aşmasına, gerçek zamanlı görevleri yerine getirmesine ve uzmanlaşmış eylemler gerçekleştirmesine olanak tanırlar. +- **Araçlar Neden Gerekli:** Agent'ların statik model eğitim sınırlamalarını aşmasına, gerçek zamanlı görevleri yerine getirmesine ve uzmanlaşmış eylemler gerçekleştirmesine olanak tanırlar. Şimdi [Agent İş Akışı](agent-steps-and-structure) bölümüne geçebiliriz; burada bir Agent'ın nasıl gözlemlediğini, düşündüğünü ve harekete geçtiğini göreceksiniz. Bu, şimdiye kadar öğrendiklerimizin tümünü bir araya getirir ve kendi AI Agent'inizi oluşturma sürecinin temelini oluşturur. diff --git a/units/tr/unit1/tutorial.mdx b/units/tr/unit1/tutorial.mdx index 1c5c0aa9c..a1da3fa48 100644 --- a/units/tr/unit1/tutorial.mdx +++ b/units/tr/unit1/tutorial.mdx @@ -71,6 +71,7 @@ Daha önce belirttiğimiz gibi, doğrudan **smolagents** içindeki **CodeAgent**
Türkçe çeviriyi görmek için tıklayın + ```python @tool def my_custom_tool(arg1:str, arg2:int)-> str: # dönüş türünü belirtmek önemlidir @@ -97,6 +98,7 @@ def get_current_time_in_timezone(timezone: str) -> str: except Exception as e: return f"'{timezone}' saat dilimi için zaman alınırken hata oluştu: {str(e)}" ``` +
```python @@ -188,7 +190,9 @@ Prompt'ları bir YAML dosyasında saklamak, farklı Agent'lar veya kullanım sen Tam "app.py" dosyası: -
Türkçe çeviriyi görmek için tıklayın. +
+Türkçe çeviriyi görmek için tıklayın. + ```python from smolagents import CodeAgent, DuckDuckGoSearchTool, HfApiModel, load_tool, tool import datetime diff --git a/units/tr/unit1/what-are-agents.mdx b/units/tr/unit1/what-are-agents.mdx index 504d8e3cc..05c785283 100644 --- a/units/tr/unit1/what-are-agents.mdx +++ b/units/tr/unit1/what-are-agents.mdx @@ -109,11 +109,13 @@ Bir Agent, eylemleri tamamlamak için uygulanmış olan araçlar aracılığıyl
Türkçe çeviriyi görmek için tıklayın + ```python def send_message_to(recipient, message): """Bir alıcıya e-posta mesajı göndermek için kullanışlıdır""" ... ``` +
```python @@ -126,9 +128,11 @@ LLM, göreceğimiz gibi, gerektiğinde bu aracı çalıştırmak için kod üret
Türkçe çeviriyi görmek için tıklayın + ```python send_message_to("Yönetici", "Bugünkü toplantıyı erteleyebilir miyiz?") ``` +
```python diff --git a/units/tr/unit1/what-are-llms.mdx b/units/tr/unit1/what-are-llms.mdx index 39112bdbe..5822ffba8 100644 --- a/units/tr/unit1/what-are-llms.mdx +++ b/units/tr/unit1/what-are-llms.mdx @@ -119,7 +119,7 @@ Aşağıdaki tablo, özel belirteçlerin çeşitliliğini göstermektedir: -Bu özel belirteçleri ezberlemeniz beklenmiyor, ancak çeşitliliklerini ve metin üretimindeki rollerini anlamak önemlidir. Daha fazla bilgi için modelin Hub sayfasındaki yapılandırma dosyalarını inceleyebilirsiniz. Örneğin, SmolLM2 modelinin özel belirteçlerinı şu dosyada görebilirsiniz: tokenizer_config.json. +Bu özel belirteçleri ezberlemeniz beklenmiyor, ancak çeşitliliklerini ve metin üretimindeki rollerini anlamak önemlidir. Daha fazla bilgi için modelin Hub sayfasındaki yapılandırma dosyalarını inceleyebilirsiniz. Örneğin, SmolLM2 modelinin özel belirteçlerinı şu dosyada görebilirsiniz: tokenizer_config.json. From bf05872d053d14b65280347a316fc6d2e8f1109b Mon Sep 17 00:00:00 2001 From: seccily Date: Thu, 17 Apr 2025 13:54:28 +0300 Subject: [PATCH 28/30] clarification in translation --- units/tr/unit1/what-are-llms.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/units/tr/unit1/what-are-llms.mdx b/units/tr/unit1/what-are-llms.mdx index 5822ffba8..2630885fa 100644 --- a/units/tr/unit1/what-are-llms.mdx +++ b/units/tr/unit1/what-are-llms.mdx @@ -168,7 +168,7 @@ Transformer mimarisinin temel bir yönü **Attention (Dikkat Mekanizması)**dır Attention'ın görsel GIF'i -Bir sonraki belirteci tahmin etmek için en alakalı kelimeleri belirleme süreci son derece etkili olduğunu kanıtlamıştır. +Dizide bir sonraki belirteci doğru tahmin edebilmek için, mevcut belirteçle en ilgili olanları dizideki diğer belirteçler arasından seçmek oldukça önemlidir. LLM'lerin temel ilkesi — bir sonraki belirteci tahmin etme — GPT-2'den bu yana aynı kalsa da, sinir ağlarının ölçeklenmesi ve dikkat mekanizmasının daha uzun dizilerde çalıştırılması konusunda büyük gelişmeler yaşanmıştır. From 47b8e970fdaf94697dd51f7c53ba68c2b22fe329 Mon Sep 17 00:00:00 2001 From: seccily Date: Thu, 17 Apr 2025 14:43:21 +0300 Subject: [PATCH 29/30] change translation of the term "decode" --- units/tr/unit0/introduction.mdx | 2 +- units/tr/unit1/dummy-agent-library.mdx | 2 +- units/tr/unit1/what-are-llms.mdx | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/units/tr/unit0/introduction.mdx b/units/tr/unit0/introduction.mdx index 6036a7683..7757ad355 100644 --- a/units/tr/unit0/introduction.mdx +++ b/units/tr/unit0/introduction.mdx @@ -162,7 +162,7 @@ Hevesli bir topluluk üyesi olarak, Sergio Ünite 2 ve 3'e birçok bölüm ve bi Bu kursa olan paha biçilmez katkılarından dolayı aşağıdaki kişilere teşekkürlerimizi sunarız: - **[Pedro Cuenca](https://huggingface.co/pcuenq)** – Materyalleri gözden geçirmedeki rehberliği ve uzmanlığı için. -- **[Aymeric Roucher](https://huggingface.co/m-ric)** – Harika demo spaces (deşifre ve final agent) ve smolagents bölümlerindeki yardımları için. +- **[Aymeric Roucher](https://huggingface.co/m-ric)** – Harika demo spaces (çözümleme ve final agent) ve smolagents bölümlerindeki yardımları için. - **[Joshua Lochner](https://huggingface.co/Xenova)** – Tokenizasyon üzerine harika demo space'i için. - **[Quentin Gallouédec](https://huggingface.co/qgallouedec)** – Kurs içeriğindeki yardımları için. - **[David Berenstein](https://huggingface.co/davidberenstein1957)** – Kurs içeriği ve moderasyondaki yardımları için. diff --git a/units/tr/unit1/dummy-agent-library.mdx b/units/tr/unit1/dummy-agent-library.mdx index 7ac393d1b..cd6c7e457 100644 --- a/units/tr/unit1/dummy-agent-library.mdx +++ b/units/tr/unit1/dummy-agent-library.mdx @@ -74,7 +74,7 @@ Paris. Fransa'nın başkenti Paris. Fransa'nın başkenti Paris. Fransa'nın ba Paris. The capital of France is Paris. The capital of France is Paris. The capital of France is Paris. The capital of France is Paris. The capital of France is Paris. The capital of France is Paris. The capital of France is Paris. The capital of France is Paris. The capital of France is Paris. The capital of France is Paris. The capital of France is Paris. The capital of France is Paris. The capital of France is Paris. The capital of France is Paris. ``` -LLM bölümünde gördüğümüz gibi, sadece deşifreleme (decoding) yaparsak **model sadece bir EOS (End Of Sequence - Dizinin Sonu) belirteç tahmin ettiğinde durur**, ve burada durmuyor çünkü bu bir sohbet modeli ve **beklediği sohbet şablonunu uygulamadık**. +LLM bölümünde gördüğümüz gibi, sadece çözümleme (decoding) yaparsak **model sadece bir EOS (End Of Sequence - Dizinin Sonu) belirteç tahmin ettiğinde durur**, ve burada durmuyor çünkü bu bir sohbet modeli ve **beklediği sohbet şablonunu uygulamadık**. Eğer şimdi kullandığımız Llama-3.2-3B-Instruct modeline özel belirteçleri eklersek, model beklenen EOS çıktısını verecektir. diff --git a/units/tr/unit1/what-are-llms.mdx b/units/tr/unit1/what-are-llms.mdx index 2630885fa..38cd39061 100644 --- a/units/tr/unit1/what-are-llms.mdx +++ b/units/tr/unit1/what-are-llms.mdx @@ -16,7 +16,7 @@ Günümüzdeki LLM'lerin çoğu **Transformer mimarisi** üzerine kuruludur —
Transformer -
Orijinal Transformer mimarisi bu şekildedir: solda bir encoder (kodlayıcı), sağda ise bir decoder (kod çözücü) yer alır.
+
Orijinal Transformer mimarisi bu şekildedir: solda bir encoder (kodlayıcı), sağda ise bir decoder (çözümleyici) yer alır.
Transformer'ların 3 türü vardır: From f098a970d4b542ab99a3da180b7e052a1c1cb924 Mon Sep 17 00:00:00 2001 From: seccily Date: Wed, 7 May 2025 10:49:40 +0300 Subject: [PATCH 30/30] update term translations --- units/tr/_toctree.yml | 34 +++++----- units/tr/unit0/discord101.mdx | 10 +-- units/tr/unit0/introduction.mdx | 47 +++++++------ units/tr/unit0/onboarding.mdx | 6 +- units/tr/unit1/README.md | 10 +-- units/tr/unit1/actions.mdx | 68 +++++++++---------- units/tr/unit1/agent-steps-and-structure.mdx | 50 +++++++------- units/tr/unit1/conclusion.mdx | 6 +- units/tr/unit1/dummy-agent-library.mdx | 36 +++++----- units/tr/unit1/introduction.mdx | 28 ++++---- .../tr/unit1/messages-and-special-tokens.mdx | 41 ++++++----- units/tr/unit1/observations.mdx | 16 ++--- units/tr/unit1/quiz1.mdx | 58 ++++++++-------- units/tr/unit1/quiz2.mdx | 16 ++--- units/tr/unit1/thoughts.mdx | 15 ++-- units/tr/unit1/tools.mdx | 42 ++++++------ units/tr/unit1/tutorial.mdx | 60 ++++++++-------- units/tr/unit1/what-are-agents.mdx | 62 ++++++++--------- units/tr/unit1/what-are-llms.mdx | 22 +++--- 19 files changed, 312 insertions(+), 315 deletions(-) diff --git a/units/tr/_toctree.yml b/units/tr/_toctree.yml index 54d8c7910..90a8e9e85 100644 --- a/units/tr/_toctree.yml +++ b/units/tr/_toctree.yml @@ -1,7 +1,7 @@ - title: Ünite 0. Kursa Hoş Geldiniz sections: - local: unit0/introduction - title: 🤗 AI Agent Kursuna Hoş Geldiniz + title: 🤗 AI Agent (Yapay Zeka Ajanı) Kursuna Hoş Geldiniz - local: unit0/onboarding title: Kurulum, İlk Adımlarınız ⛵ - local: unit0/discord101 @@ -10,7 +10,7 @@ sections: - local: communication/live1 title: Canlı Yayın 1. Kurs nasıl işler ve Soru & Cevap -- title: Ünite 1. Agent'lara Giriş +- title: Ünite 1. Ajanlara Giriş sections: - local: unit1/introduction title: Giriş @@ -27,25 +27,25 @@ - local: unit1/quiz2 title: Sınav 2 - local: unit1/agent-steps-and-structure - title: Düşünce-Eylem-Gözlem Döngüsü Üzerinden AI Agent'ları Anlamak + title: Düşünce-Eylem-Gözlem Döngüsüyle Yapay Zeka Ajanlarını Anlamak - local: unit1/thoughts title: Düşünce, İçsel Akıl Yürütme ve Re-Act (Yeniden Eylem) Yaklaşımı - local: unit1/actions - title: Eylemler, Agent'ın Çevresiyle Etkileşime Geçmesini Sağlama + title: Eylemler: Ajanın Çevresiyle Etkileşime Geçmesini Sağlama - local: unit1/observations title: Gözlemle, Geri Bildirimi Yansıtmak ve Uyum Sağlamak - local: unit1/dummy-agent-library - title: Sahte Agent Kütüphanesi + title: Sahte Ajan Kütüphanesi - local: unit1/tutorial - title: smolagents Kullanarak İlk Agent'ımızı Oluşturalım + title: smolagents Kullanarak İlk Ajanımızı Oluşturalım - local: unit1/final-quiz title: Ünite 1 Final Sınavı - local: unit1/conclusion title: Sonuç -- title: Ünite 2. AI Agent'ları için Frameworkler +- title: Ünite 2. Yapay Zeka Ajanları için Frameworkler sections: - local: unit2/introduction - title: AI Agent'ları için Frameworkler + title: Yapay Zeka Ajanları için Frameworkler - title: Ünite 2.1 smolagents Frameworkü sections: - local: unit2/smolagents/introduction @@ -61,13 +61,13 @@ - local: unit2/smolagents/tools title: Tools (Araçlar) - local: unit2/smolagents/retrieval_agents - title: Retrieval (Alma) Agent'ları + title: Retrieval (Alma) Ajanları - local: unit2/smolagents/quiz2 title: Sınav 2 - local: unit2/smolagents/multi_agent_systems - title: Çoklu Agent Sistemleri + title: Çoklu Ajan Sistemleri - local: unit2/smolagents/vision_agents - title: Görüntü ve Tarayıcı Agent'ları + title: Görüntü ve Tarayıcı Ajanları - local: unit2/smolagents/final_quiz title: Final Sınavı - local: unit2/smolagents/conclusion @@ -85,7 +85,7 @@ - local: unit2/llama-index/quiz1 title: Sınav 1 - local: unit2/llama-index/agents - title: LlamaIndex'te Agent Kullanımı + title: LlamaIndex'te Ajan Kullanımı - local: unit2/llama-index/workflows title: LlamaIndex'te Ajantik İş Akışları Oluşturma - local: unit2/llama-index/quiz2 @@ -117,9 +117,9 @@ - local: unit3/agentic-rag/invitees title: Misafir Hikayeleri için RAG (Almayla Artırılmış Üretim) Aracı Oluşturma - local: unit3/agentic-rag/tools - title: Agent'ınız için Araçlar Oluşturma ve Entegre Etme + title: Ajanınız için Araçlar Oluşturma ve Entegre Etme - local: unit3/agentic-rag/agent - title: Gala Agent'ınızı Oluşturma + title: Gala Ajanınızı Oluşturma - local: unit3/agentic-rag/conclusion title: Sonuç - title: Bonus Ünite 1. Function-calling için bir LLM'nin fine-tuning (ince-ayar) Edilmesi @@ -132,14 +132,14 @@ title: Function Calling için Modelinizin İnce-Ayarını Yapalım - local: bonus-unit1/conclusion title: Sonuç -- title: Bonus Ünite 2. Agent Gözlemlenebilirliği ve Değerlendirmesi +- title: Bonus Ünite 2. Ajan Gözlemlenebilirliği ve Değerlendirmesi sections: - local: bonus-unit2/introduction title: Giriş - local: bonus-unit2/what-is-agent-observability-and-evaluation - title: Agent Gözlemlenebilirliği ve Değerlendirmesi Nedir? + title: Ajan Gözlemlenebilirliği ve Değerlendirmesi Nedir? - local: bonus-unit2/monitoring-and-evaluating-agents-notebook - title: Agent'ları İzleme ve Değerlendirme + title: Ajanları İzleme ve Değerlendirme - local: bonus-unit2/quiz title: Sınav - title: Bir Sonraki Adımlar Ne Zaman Yayınlanacak? diff --git a/units/tr/unit0/discord101.mdx b/units/tr/unit0/discord101.mdx index 0b883137b..2790371bc 100644 --- a/units/tr/unit0/discord101.mdx +++ b/units/tr/unit0/discord101.mdx @@ -6,22 +6,22 @@ Bu rehber, oyun ve ML topluluklarında popüler olan ücretsiz bir sohbet platfo **100.000'den fazla üyesi olan** Hugging Face Topluluğu Discord sunucusuna buraya tıklayarak katılın. Başkalarıyla bağlantı kurmak için harika bir yer! -## Hugging Face'in Discord Topluluğunda Agent Kursu +## Hugging Face'in Discord Topluluğunda Agent (Ajan) Kursu Discord'a başlamak biraz bunaltıcı olabilir, bu yüzden gezinmenize yardımcı olacak hızlı bir rehber hazırladık. - + HF Topluluk Sunucusu, çeşitli alanlarda ilgi duyan canlı bir topluluğa ev sahipliği yaparak makale tartışmaları, etkinlikler ve daha fazlası aracılığıyla öğrenme fırsatları sunmaktadır. [Kaydolduktan](http://hf.co/join/discord) sonra `#introduce-yourself` kanalında kendinizi tanıtın. -Agent Kursu için 4 kanal oluşturduk: +Ajan Kursu için 4 kanal oluşturduk: - `agents-course-announcements`: **en son kurs bilgileri** için. - `🎓-agents-course-general`: **genel tartışmalar ve sohbet** için. - `agents-course-questions`: **soru sormak ve sınıf arkadaşlarınıza yardım etmek** için. -- `agents-course-showcase`: **en iyi agent'larınızı göstermek** için. +- `agents-course-showcase`: **en iyi ajanlarınızı göstermek** için. Ek olarak şu kanalı kontrol edebilirsiniz: @@ -37,7 +37,7 @@ Discord'a daha az aşina iseniz, bir sunucuya nasıl katılacağınızla ilgili 1. Davet Bağlantısına tıklayın. 2. Discord hesabınızla giriş yapın veya hesabınız yoksa bir hesap oluşturun. -3. AI agent olmadığınızı doğrulayın! +3. Yapay zeka ajanı olmadığınızı doğrulayın! 4. Takma adınızı ve avatarınızı ayarlayın. 5. "Join Server" (Sunucuya Katıl) düğmesine tıklayın. diff --git a/units/tr/unit0/introduction.mdx b/units/tr/unit0/introduction.mdx index 7757ad355..29b6a7455 100644 --- a/units/tr/unit0/introduction.mdx +++ b/units/tr/unit0/introduction.mdx @@ -1,15 +1,14 @@ -# 🤗 AI Agent Kursuna Hoş Geldiniz [[introduction]] +# 🤗 AI Agent (Yapay Zeka Ajanı) Kursuna Hoş Geldiniz [[introduction]]
-AI Agent Kursu küçük resmi -
Görselin arka planı Scenario.com kullanılarak oluşturulmuştur -
+Yapay Zeka Ajanı Kursu küçük resmi +
Görselin arka planı Scenario.com kullanılarak oluşturulmuştur
-Günümüzde AI alanındaki en heyecan verici konu olan **Agent**'lara hoş geldiniz! +Günümüzde AI alanındaki en heyecan verici konu olan **Agent (Ajan)**'lara hoş geldiniz! -Bu ücretsiz kurs, AI agent'ları anlama, kullanma ve oluşturma konusunda sizi **başlangıç seviyesinden uzmanlığa** doğru bir yolculuğa çıkaracak. +Bu ücretsiz kurs, yapay zeka Ajanlarını anlama, kullanma ve oluşturma konusunda sizi **başlangıç seviyesinden uzmanlığa** doğru bir yolculuğa çıkaracak. Bu ilk ünite kursa başlamanıza yardımcı olacak: @@ -26,15 +25,15 @@ Hadi başlayalım! Bu kursta: -- 📖 AI Agent'ları **teori, tasarım ve uygulama** olarak çalışacaksınız. -- 🧑‍💻 [smolagents](https://huggingface.co/docs/smolagents/en/index), [LlamaIndex](https://www.llamaindex.ai/) ve [LangGraph](https://langchain-ai.github.io/langgraph/) gibi **kurulu AI Agent kütüphanelerini kullanmayı öğreneceksiniz**. -- 💾 Agent'larınızı Hugging Face Hub'da **paylaşacak** ve topluluk tarafından oluşturulan agent'ları keşfedeceksiniz. -- 🏆 Agent'larınızı diğer öğrencilerin agent'larıyla **değerlendireceğiniz** zorluklara katılacaksınız. +- 📖 Yapay Zeka Ajanlarını **teori, tasarım ve uygulama** olarak çalışacaksınız. +- 🧑‍💻 [smolagents](https://huggingface.co/docs/smolagents/en/index), [LlamaIndex](https://www.llamaindex.ai/) ve [LangGraph](https://langchain-ai.github.io/langgraph/) gibi **kurulu Yapay Zeka Ajanları kütüphanelerini kullanmayı öğreneceksiniz**. +- 💾 Ajanlarınızı Hugging Face Hub'da **paylaşacak** ve topluluk tarafından oluşturulan Ajanları keşfedeceksiniz. +- 🏆 Ajanlarınızı diğer öğrencilerin Ajanlarıyla **değerlendireceğiniz** zorluklara katılacaksınız. - 🎓 Ödevleri tamamlayarak **tamamlama sertifikası kazanacaksınız**. Ve daha fazlası! -Bu kursun sonunda, **Agent'ların nasıl çalıştığını ve en son kütüphaneleri ve araçları kullanarak kendi Agent'larınızı nasıl oluşturacağınızı** anlayacaksınız. +Bu kursun sonunda, **Ajanların nasıl çalıştığını ve en son kütüphaneleri ve araçları kullanarak kendi Ajanlarınızı nasıl oluşturacağınızı** anlayacaksınız. **Kursa kaydolmayı** unutmayın! @@ -44,10 +43,10 @@ Bu kursun sonunda, **Agent'ların nasıl çalıştığını ve en son kütüphan Kurs şunlardan oluşur: -- *Temel Üniteler*: Agent kavramlarını **teorik olarak** öğrendiğiniz bölümler. -- *Uygulamalı*: Agent'larınızı benzersiz ortamlarda eğitmek için **kurulu AI Agent kütüphanelerini kullanmayı öğreneceğiniz** bölümler. Bu uygulamalı bölümler, önceden yapılandırılmış bir ortamla **Hugging Face Spaces** olacaktır. +- *Temel Üniteler*: Ajan kavramlarını **teorik olarak** öğrendiğiniz bölümler. +- *Uygulamalı*: Ajanlarınızı benzersiz ortamlarda eğitmek için **kurulu Yapay Zeka Ajanı kütüphanelerini kullanmayı öğreneceğiniz** bölümler. Bu uygulamalı bölümler, önceden yapılandırılmış bir ortamla **Hugging Face Spaces** olacaktır. - *Kullanım senaryosu ödevleri*: Öğrendiğiniz kavramları seçeceğiniz gerçek dünya sorununu çözmek için uygulayacağınız bölümler. -- *Meydan Okuma*: Agent'ınızı diğer agent'larla rekabet ettireceğiniz bir yarışma. Agent'ların performansını karşılaştırmanız için [bir lider tablosu](https://huggingface.co/spaces/huggingface-projects/AI-Agents-Leaderboard) (henüz mevcut değil) da olacak. +- *Meydan Okuma*: Ajanınızı diğer Ajanlarla rekabet ettireceğiniz bir yarışma. Ajanların performansını karşılaştırmanız için [bir lider tablosu](https://huggingface.co/spaces/huggingface-projects/AI-Agents-Leaderboard) (henüz mevcut değil) da olacak. Bu **kurs, geri bildirimleriniz ve katkılarınızla gelişen canlı bir projedir!** [GitHub'da sorunlar ve PR'lar açmaktan](https://github.com/huggingface/agents-course) çekinmeyin ve Discord sunucumuzda tartışmalara katılın. @@ -60,12 +59,12 @@ Kursu tamamladıktan sonra, [👉 bu formu kullanarak](https://docs.google.com/f | Bölüm | Konu | Açıklama | | :---- | :---- | :---- | | 0 | Kurulum | Kullanacağınız araçlar ve platformlarla sizi hazırlar. | -| 1 | Agent Temelleri | Tools (Araçlar), Thoughts (Düşünceler), Actions (Eylemler), Observations (Gözlemler) ve formatlarını açıklar. LLM'leri (Büyük Dil Modelleri), mesajları, "Special Token" (Özel Belirteç) ve sohbet şablonlarını açıklar. Python fonksiyonlarını araç olarak kullanan basit bir kullanım örneği gösterir. | +| 1 | Ajan Temelleri | Tools (Araçlar), Thoughts (Düşünceler), Actions (Eylemler), Observations (Gözlemler) ve formatlarını açıklar. LLM'leri (Büyük Dil Modelleri), mesajları, "Special Token" (Özel Belirteç) ve sohbet şablonlarını açıklar. Python fonksiyonlarını araç olarak kullanan basit bir kullanım örneği gösterir. | | 1.5 | Bonus: Function calling için bir LLM'nin fine-tuning (ince-ayar) edilmesi | LoRa kullanalım ve bir notebook içinde function calling gerçekleştirmek için bir model ince-ayarlayalım. | | 2 | Frameworks | Temellerin smolagents, LangGraph, LLamaIndex gibi popüler kütüphanelerde nasıl uygulandığını anlayın. | -| 2.5 | Bonus: Agent Gözlemlenebilirliği ve Değerlendirmesi | AI agent'larınızı üretime hazır hale getirmek için nasıl izleyeceğinizi ve değerlendireceğinizi öğrenin. | -| 3 | Kullanım Örnekleri | Bazı gerçek hayat kullanım örnekleri oluşturalım (deneyimli Agent geliştiricilerinden PR'lara açık 🤗) | -| 4 | Final Ödevi | Seçilen bir kıyaslama için bir agent oluşturun ve öğrenci lider tablosunda Agent'lar hakkındaki anlayışınızı kanıtlayın 🚀 | +| 2.5 | Bonus: Ajan Gözlemlenebilirliği ve Değerlendirmesi | AI Ajanlarınızı üretime hazır hale getirmek için nasıl izleyeceğinizi ve değerlendireceğinizi öğrenin. | +| 3 | Kullanım Örnekleri | Bazı gerçek hayat kullanım örnekleri oluşturalım (deneyimli Ajan geliştiricilerinden PR'lara açık 🤗) | +| 4 | Final Ödevi | Seçilen bir kıyaslama için bir Ajan oluşturun ve öğrenci lider tablosunda Ajanlar hakkındaki anlayışınızı kanıtlayın 🚀 | *Ayrıca bazı bonus üniteler yayınlamayı planlıyoruz, takipte kalın!* @@ -82,7 +81,7 @@ Bu kursu takip edebilmek için şunlara sahip olmalısınız: Sadece 2 şeye ihtiyacınız var: - İnternet bağlantısı olan bir *bilgisayar*. -- Bir *Hugging Face Hesabı*: modelleri, agent'ları göndermek ve yüklemek ve Spaces oluşturmak için. Henüz bir hesabınız yoksa, **[burada](https://hf.co/join)** bir tane oluşturabilirsiniz (ücretsizdir). +- Bir *Hugging Face Hesabı*: modelleri, Ajanları göndermek ve yüklemek ve Spaces oluşturmak için. Henüz bir hesabınız yoksa, **[burada](https://hf.co/join)** bir tane oluşturabilirsiniz (ücretsizdir). Gerekli kurs araçları ## Sertifika Süreci [[certification-process]] @@ -95,7 +94,7 @@ Kursu incelerseniz, istediğiniz tüm zorluklara katılabilir ve ödevleri yapab Sertifika süreci **tamamen ücretsizdir**: -- *Temel bilgiler için sertifika almak için*: kursun 1. Ünitesini tamamlamanız gerekir. Bu, Agent'lardaki en son trendlerle güncel kalmak isteyen öğrenciler için tasarlanmıştır. +- *Temel bilgiler için sertifika almak için*: kursun 1. Ünitesini tamamlamanız gerekir. Bu, Ajanlardaki en son trendlerle güncel kalmak isteyen öğrenciler için tasarlanmıştır. - *Tamamlama sertifikası almak için*: Ünite 1'i, kurs boyunca önereceğimiz kullanım durumu ödevlerinden birini ve final görevini tamamlamanız gerekir. Sertifika süreci için bir son tarih var: tüm ödevler **1 Mayıs 2025** tarihine kadar bitmiş olmalıdır. @@ -126,7 +125,7 @@ Yazarlar hakkında: ### Joffrey Thomas -Joffrey, Hugging Face'te bir makine öğrenimi mühendisidir ve üretimde AI Agent'ları oluşturmuş ve dağıtmıştır. Joffrey bu kurs için ana eğitmeniniz olacak. +Joffrey, Hugging Face'te bir makine öğrenimi mühendisidir ve üretimde Yapay Zeka Ajanlarını oluşturmuş ve dağıtmıştır. Joffrey bu kurs için ana eğitmeniniz olacak. - [Hugging Face'te Joffrey'i takip edin](https://huggingface.co/Jofthomas) - [X'te Joffrey'i takip edin](https://x.com/Jthmas404) @@ -142,7 +141,7 @@ Ben, Hugging Face'te bir makine öğrenimi mühendisidir ve çeşitli platformla ### Thomas Simonini -Thomas, Hugging Face'te bir makine öğrenimi mühendisidir ve başarılı Deep RL ve ML for games kurslarını vermiştir. Thomas büyük bir Agent hayranıdır ve topluluğun ne oluşturacağını görmek için heyecanlıdır. +Thomas, Hugging Face'te bir makine öğrenimi mühendisidir ve başarılı Deep RL ve ML for games kurslarını vermiştir. Thomas büyük bir Ajan hayranıdır ve topluluğun ne oluşturacağını görmek için heyecanlıdır. - [Hugging Face'te Thomas'ı takip edin](https://huggingface.co/ThomasSimonini) - [X'te Thomas'ı takip edin](https://x.com/ThomasSimonini) @@ -162,8 +161,8 @@ Hevesli bir topluluk üyesi olarak, Sergio Ünite 2 ve 3'e birçok bölüm ve bi Bu kursa olan paha biçilmez katkılarından dolayı aşağıdaki kişilere teşekkürlerimizi sunarız: - **[Pedro Cuenca](https://huggingface.co/pcuenq)** – Materyalleri gözden geçirmedeki rehberliği ve uzmanlığı için. -- **[Aymeric Roucher](https://huggingface.co/m-ric)** – Harika demo spaces (çözümleme ve final agent) ve smolagents bölümlerindeki yardımları için. -- **[Joshua Lochner](https://huggingface.co/Xenova)** – Tokenizasyon üzerine harika demo space'i için. +- **[Aymeric Roucher](https://huggingface.co/m-ric)** – Harika demo spaces (çözümleme ve final Ajan) ve smolagents bölümlerindeki yardımları için. +- **[Joshua Lochner](https://huggingface.co/Xenova)** – Belirteçleme (tokenizasyon) üzerine harika demo space'i için. - **[Quentin Gallouédec](https://huggingface.co/qgallouedec)** – Kurs içeriğindeki yardımları için. - **[David Berenstein](https://huggingface.co/davidberenstein1957)** – Kurs içeriği ve moderasyondaki yardımları için. - **[XiaXiao (ShawnSiao)](https://huggingface.co/SSSSSSSiao)** – Kurs için Çince çevirmen. diff --git a/units/tr/unit0/onboarding.mdx b/units/tr/unit0/onboarding.mdx index 42a3fd932..976b62e12 100644 --- a/units/tr/unit0/onboarding.mdx +++ b/units/tr/unit0/onboarding.mdx @@ -7,7 +7,7 @@ Artık tüm detaylara sahip olduğunuza göre, başlayalım! Dört şey yapacağ 1. **Hugging Face hesabınızı oluşturun** (henüz yapmadıysanız) 2. **Discord’a kaydolun ve kendinizi tanıtın** (çekinmeyin 🤗) -3. **Hub üzerinde Hugging Face Agents Kursunu** (Hugging Face Ajanlar Kursu) takip edin +3. **Hub üzerinde Hugging Face Ajanlar Kursunu** (Hugging Face Ajanlar Kursu) takip edin 4. **Kurstan bahsedin** ve yayılmasına yardımcı olun ### Adım 1: Hugging Face Hesabınızı Oluşturun @@ -32,9 +32,9 @@ Ayrıca şunlara da göz atabilirsiniz: Discord'u ilk kez kullanıyorsanız, en iyi uygulamaları öğrenmek için bir Discord 101 rehberi yazdık. [Sonraki bölüme](discord101) göz atın. -### Adım 3: Hugging Face Agent Course Organizasyonunu Takip Edin +### Adım 3: Hugging Face Ajan Kursu Organizasyonunu Takip Edin -En güncel kurs materyallerini, güncellemeleri ve duyuruları takipte kalmak için **Hugging Face Agents Kurs Organizasyonunu takip edin**. +En güncel kurs materyallerini, güncellemeleri ve duyuruları takipte kalmak için **Hugging Face Ajan Kurs Organizasyonunu takip edin**. 👉 Buraya gidin ve **follow (takip et)** butonuna tıklayın. diff --git a/units/tr/unit1/README.md b/units/tr/unit1/README.md index 280de4886..309db3f5b 100644 --- a/units/tr/unit1/README.md +++ b/units/tr/unit1/README.md @@ -5,12 +5,12 @@