Markdown

Markdown, metin biçimlendirmenizi sağlayan hafif bir işaretleme dilidir ve düz metin düzenleyicisini kullanarak metni biçimlendirmenize olanak tanır.

Bu makale, LangChain'in Markdown belgelerini downstream'de kullanabileceğimiz belge formatlarına nasıl yüklediğini tanıtıyor.

from langchain_community.document_loaders import UnstructuredMarkdownLoader

markdown_path = "../../../../../README.md"
loader = UnstructuredMarkdownLoader(markdown_path)

data = loader.load()

data
[Document(page_content="🦜🔗 LangChain\n\n⚡ LLM'ler aracılığıyla bileşiklik yoluyla uygulamalar oluşturma ⚡\n\nJS/TS sürümünü mü arıyorsunuz? LangChain.js'e göz atın.\n\nÜretim Desteği: LangChain'leri üretime geçirdikçe, daha kapsamlı destek sunmaktan memnuniyet duyarız.\nLütfen bu formu doldurun ve size özel bir destek Slack kanalı oluşturalım.\n\nHızlı Kurulum\n\npip install langchain\nveya\nconda install langchain -c conda-forge\n\n🤔 Bu nedir?\n\nBüyük dil modelleri (LLM'ler), geliştiricilere önceden yapamadıkları uygulamaları oluşturma imkanı tanıyarak dönüşümcü bir teknoloji olarak ortaya çıkıyor. Ancak, bu LLM'leri izole bir şekilde kullanmak genellikle gerçekten güçlü bir uygulama oluşturmak için yetersizdir - gerçek güç, onları diğer hesaplama veya bilgi kaynaklarıyla birleştirebildiğinizde ortaya çıkar.\n\nBu kütüphane, bu tür uygulamaların geliştirilmesine yardımcı olmayı amaçlar. Bu uygulamaların yaygın örnekleri şunlardır:\n\n📚 Belirli belgeler üzerinde Soru Cevaplama\n\nBelge\n\nNasyonal Veritabanı üzerinde Soru Cevaplama uçtan uca örneği\n\n📬 Sohbet botları\n\nBelge\n\nUçtan uca Örnek: Sohbet-LangChain\n\n🤖 Ajanlar\n\nBelge\n\nUçtan uca Örnek: GPT+WolframAlpha\n\n📝 Belgeleme\n\nLütfen şuraya bakın:\n\nBaşlarken (kurulum, ortamın kurulması, basit örnekler)\n\nNasıl-Yapılır örnekleri (demo, entegrasyonlar, yardımcı işlevler)\n\nReferans (tam API belgeleri)\n\nKaynaklar (temel kavramların yüksek düzeyli açıklaması)\n\n🚀 Bu ne işe yarar?\n\nLangChain'in yardımcı olmayı amaçladığı altı ana alan bulunmaktadır.\nBunlar, karmaşıklık düzeyine göre artan şunlardır:\n\n📃 LLM'ler ve İstemler:\n\nBu, istem yönetimi, istem optimizasyonu, tüm LLM'ler için genel bir arabirim ve LLM'lerle çalışmak için ortak yardımcı programların bulunduğu şeyleri kapsar.\n\n🔗 Zincirler:\n\nZincirler, tek bir LLM çağrısının ötesine geçer ve diğer araçlarla veya LLM'lerle (veya farklı bir yardımcı programla) ardışık çağrıları içerir. LangChain, zincirler için standart bir arabirim, diğer araçlarla entegrasyonlar ve yaygın uygulamalar için uçtan uca zincirler sağlar.\n\n🚚 Veri Artırılmış Oluşturma:\n\nVeri Artırılmış Oluşturma, öncelikle üretime yönelik veri elde etmek için harici bir veri kaynağıyla etkileşime giren belirli tiplerde zincirleri içerir. Örnekler arasında uzun metinlerin özetlenmesi ve belirli veri kaynakları üzerinde soru/cevap bulunur.\n\n🤖 Ajanlar:\n\nAjanlar, bir LLM'in hangi Eylemleri alacağına karar vermesini, bu Eylemi gerçekleştirmesini, bir Gözlem görmesini ve bunu tamamlana kadar tekrarlamasını içerir. LangChain, ajanlar için standart bir arabirim, seçilebilecek ajan çeşitleri ve uçtan uca ajan örnekleri sağlar.\n\n🧠 Bellek:\n\nBellek, zincir/ajan çağrıları arasında durumu devam ettirme anlamına gelir. LangChain, bellek için standart bir arabirim, bellek uygulamalarının bir koleksiyonunu ve belleği kullanan zincirler/ajan örnekleri sağlar.\n\n📐 Değerlendirme:\n\n[BETA] Üretici modeller, geleneksel ölçümlerle değerlendirmek için oldukça zor olabilir. Onları değerlendirmenin yeni bir yolu, değerlendirmeleri yapmak için dil modellerini kullanmaktır. LangChain, bu konuda yardımcı olmak için bazı istemler/zincirler sağlar.\n\nBu kavramlar hakkında daha fazla bilgi için lütfen tam belgelememize bakın.\n\n📁 Katkıda Bulunma\n\nHızla gelişen bir alandaki açık kaynaklı bir proje olarak, yeni bir özellik, geliştirilmiş altyapı veya daha iyi belgeleme şeklinde katkıda bulunmak konusunda son derece açığız.\n\nNasıl katkıda bulunabileceğinizle ilgili detaylı bilgi için, lütfen buraya bakın.", metadata={'source': '../../../../../README.md'})]

Unstructured arka planda farklı "unsurlar" oluşturur farklı metin blokları için. Varsayılan olarak, bunları bir araya getiririz, ama "mode="elements"" belirterek bu ayrımı kolayca koruyabilirsiniz.

loader = UnstructuredMarkdownLoader(markdown_path, mode="elements")
data = loader.load()
data[0]
Document(page_content='ð\x9f¦\x9cï¸\x8fð\x9f”\x97 LangChain', metadata={'source': '../../../../../README.md', 'page_number': 1, 'category': 'Title'})