Güncellendi: 25 Eyl 2025
8 dk
# pip install langchain langchain-openaifrom langchain_openai import ChatOpenAIfrom langchain_core.prompts import ChatPromptTemplate# 1) Modelllm = ChatOpenAI(model="gpt-4o-mini", temperature=0)# 2) Promptprompt = ChatPromptTemplate.from_messages( ve akış kılavuzu.---## Zamanın %80'inde Kullanacağınız Yapı Taşları### 1) İstemler ve Çıktı Ayrıştırma- Yapılandırılmış istemler için `ChatPromptTemplate` kullanın.- Türlü yanıtlar için `StrOutputParser` veya JSON ayrıştırıcıları ile çıktıları ayrıştırın.```pythonfrom langchain_core.output_parsers import StrOutputParserfrom langchain_core.prompts import ChatPromptTemplatefrom langchain_openai import ChatOpenAIllm = ChatOpenAI(model="gpt-4o-mini")prompt = ChatPromptTemplate.from_template("""Aşağıdaki metni 3 madde işaretiyle özetleyin:---{text}""")parser = StrOutputParserchain = prompt | llm | parsersummary = chain.invoke({"text": "LangChain, RAG ve araçlarla LLM uygulamaları oluşturmaya yardımcı olur."})print(summary)# pip install faiss-cpu tiktokenfrom langchain_openai import OpenAIEmbeddings, ChatOpenAIfrom langchain_community.vectorstores import FAISSfrom langchain_text_splitters import RecursiveCharacterTextSplitterfrom langchain_core.prompts import ChatPromptTemplate# Belgeleri hazırlayıntexts = .---## Prototipten Üretime: Adım Adım Bir Plan### Adım 1: Kullanıcı Hikayesini Tanımlayın- Kullanıcı kim? Hangi işi yapmaya çalışıyorlar?- Örnek: “Dahili belgelerden ve son biletlerden ürün sorularını yanıtlayan bir destek temsilcisi.”### Adım 2: Minimum Uygulanabilir Yığını Seçin- Model: Makul fiyatlı, güvenilir bir model seçin (örneğin, GPT-4o-mini veya öncü bir açık model).- Veri: Şimdi RAG'ye ihtiyacınız olup olmadığına karar verin. Evet ise, yerel olarak FAISS ile başlayın.- G/Ç: Hızlı yineleme için LCEL kullanın; özel yapıştırıcı kodundan kaçının.### Adım 3: Temiz Bir RAG Döngüsü Uygulayın- Belgeleri düzgün bir şekilde bölün.- Gömme işlemlerini indeksleyin.- Bağlam ve alıntılarla istem oluşturun.- İlgili bir bağlam bulunamadığında halüsinasyondan kaçınmak için bir koruma ekleyin.```pythonfrom langchain_core.output_parsers import StrOutputParserfrom langchain_core.prompts import ChatPromptTemplateqa_prompt = ChatPromptTemplate.from_template("""Soruyu YALNIZCA aşağıdaki BAĞLAMI kullanarak yanıtlayın. Cevapbağlamda değilse, "Bilmiyorum" deyin. Alıntılanan belge kimliklerini ekleyin.BAĞLAM:{context}SORU: {question}""")parser = StrOutputParserrag_chain = (RunnableParallel(context=retriever, question=RunnableLambda(lambda x: x.### Adım 5: Türlü Çıktılar ve Doğrulama- API yanıtları için yapıyı zorlamak için `PydanticOutputParser` veya JSON şeması kullanın.- Model kaymasını yakalamak için alanları doğrulayın.### Adım 6: Gerçek Görevler için Araçlar ve İşlev Çağırma- Araçları seyrek olarak tanıtın.- Ortak araçlar: hesap makinesi, web araması, SQL sorgu yürütücüsü, kod çalıştırıcısı.- Araç yeteneklerini belge dizelerinde açıkça açıklayın.### Adım 7: Sertleştirme- Hız sınırı ve yeniden deneme stratejileri.- Zaman aşımları ve devre kesiciler.- Güvenlik filtreleri ve içerik kontrolleri.### Adım 8: Değerlendirme ve Sürekli İyileştirme- Altın veri kümeleriyle test edin (giriş → beklenen çıktı).- Doğruluğu, cevap eksiksizliğini ve alıntı doğruluğunu değerlendirin.- Geri alma isabet oranını ve gecikmesini ölçün.---## Ortak Desenler ve Tuzaklar- Basit başlayın: Aracıdan önce Zincirler. Tahmin edilebilirlik ve daha düşük maliyet elde edersiniz.- Parçalama önemlidir: Parça boyutunu/örtüşmesini ayarlamak, model değiştirmeden daha fazla geri alma kalitesini değiştirebilir.- İstem sızıntısı: Sistem istemlerine her şeyi doldurmayın; onları odaklanmış tutun.- Determinizm: Değerlendirme ve kritik iş akışları için `temperature=0` ayarlayın.- Akış UX'i: Sistemin geri kalanı varlıkları getirirken veya bağlamı önceden yüklerken belirteçleri kullanıcı arayüzüne akıtın.- Yapılandırılmış çıktılar: Aşağı akış entegrasyonunu acısız hale getirmek için ayrıştırıcıları kullanın.---## Tam Bir Mini Proje: Alıntılarla Belgeler Soru-CevapBu örnek her şeyi bir araya getiriyor: alım, RAG, cevap oluşturma ve akış.```python# pip install langchain langchain-openai faiss-cpu tiktokenfrom langchain_openai import ChatOpenAI, OpenAIEmbeddingsfrom langchain_text_splitters import RecursiveCharacterTextSplitterfrom langchain_community.vectorstores import FAISSfrom langchain_core.prompts import ChatPromptTemplatefrom langchain_core.output_parsers import StrOutputParserfrom langchain_core.runnables import RunnableParallel, RunnableLambda# 1) Alcorpus = {"pricing": "Pro planımız 1M bağlam belirtecini destekler ve öncelikli destek içerir.","limits": "API hız sınırı Pro kullanıcıları için dakikada 60 istektir.","security": "Yönetici tarafından günlük kaydı devre dışı bırakılmadığı sürece günlükleri 30 gün boyunca saklarız.",}splitter = RecursiveCharacterTextSplitter(chunk_size=300, chunk_overlap=50)all_chunks, ids = [], []for doc_id, text in corpus.items:for i, chunk in enumerate(splitter.split_text(text)):all_chunks.append(chunk)ids.append(f"{doc_id}-{i}")# 2) İndeksledb = FAISS.from_texts(all_chunks, OpenAIEmbeddings)retriever = db.as_retriever(k=4)# 3) İstemiprompt = ChatPromptTemplate.from_template("""Bir destek asistanısınız. Cevaplamak için BAĞLAMI kullanın.Emin değilseniz, "Bilmiyorum" deyin. Kaynak kimliklerinin alıntılarını ekleyin.BAĞLAM:{context}SORU: {question}""")# 4) Model ve ayrıştırıcıllm = ChatOpenAI(model="gpt-4o-mini", temperature=0)parser = StrOutputParser# 5) Zinciri oluşturrag = (RunnableParallel(context=retriever,question=RunnableLambda(lambda x: x["question"]) # pass-through)| prompt| llm| parser)# 6) Bir soru sorunfor chunk in rag.stream({"question": "Pro oran sınırları ve günlük saklama nedir?"}):print(chunk, end="", flush=True)batch aracılığıyla toplu işleme.prompt | llm zinciri oluşturmak için LCEL'i kullanın ve .invoke veya .stream ile test edin. Resmi eğitimler, hızlı bir başlangıç için basit sohbet, RAG ve aracıları adım adım ele almaktadır.Runnable zincirleri, geldikçe parçalar vermek için senkronize .stream ve asenkron .astream destekler. Akış kılavuzu kullanımı ve en iyi uygulamaları kapsar.
ChatPDF'i Ustalaştırma Rehberi: Yoğun Belgelerden Daha Hızlı İçgörüler

Hızlı ve Doğru Dokümanlar İçin En İyi X Otomatik Çeviri Alternatifi

Samsung AI Çeviri İran'da Kullanılamıyor mu? Pratik Çözümler

Farsça Çeviri Araçları: Daha Hızlı ve Doğru Çalışma İçin Pratik Rehber

Derin ve Kaynak Gösterimli Araştırmalar için En İyi Grok Alternatifi

Yapay Zeka Görsel Oluşturucunun Gerçekten Kullanacağınız En İyi 15 Özelliği