SmolAgents ve Deepseek R1 ile Yapay Zeka Ajanları Nasıl Oluşturulur

Bu sistem, verimli belge işleme, akıllı arama ve insan benzeri muhakeme sağlar. Araştırma, destek ve bilgi yönetimi için ideal.

Efe Demir

Efe Demir

5 June 2025

SmolAgents ve Deepseek R1 ile Yapay Zeka Ajanları Nasıl Oluşturulur

Giriş

Gelişmiş akıl yürütme modelleri ve hafif çerçevelerin entegrasyonu, yapay zeka sistemlerinin bilgileri alma, işleme ve sunma biçimini dönüştürüyor. Bu kılavuzda, yüksek performanslı bir akıl yürütme modeli olan DeepSeek R1 ve Hugging Face'den minimalist bir aracı çerçevesi olan SmolAgents'ı kullanarak bir Retrieval-Augmented Generation (RAG) sistemi oluşturacağız. Bu sistem, verimli belge işleme, akıllı arama ve insan benzeri akıl yürütme sağlayacak ve araştırma, müşteri desteği ve bilgi yönetimi uygulamaları için idealdir.

💡
DeepSeek R1 ile çalışırken iş akışınızı kolaylaştırabilecek güçlü bir API yönetim aracı arıyorsanız, Apidog'u kaçırmayın. Apidog'u bugün ücretsiz olarak indirebilirsiniz ve DeepSeek R1 gibi projelerle çalışmak için mükemmel bir şekilde tasarlanmıştır, geliştirme yolculuğunuzu daha sorunsuz ve daha keyifli hale getirir!
button

Kurulumu Çalıştırmak İçin Sistem Gereksinimleri

Yapay zeka aracısı dört temel görev gerçekleştirecektir:

  1. PDF'leri Yükle ve İşle: Belgeleri aranabilir metin parçalarına dönüştürün.
  2. Bir Vektör Veritabanı Oluştur: Hızlı anlamsal arama için gömülümleri saklayın.
  3. Al ve Akıl Yürüt: Alınan verileri analiz etmek ve cevaplar üretmek için DeepSeek R1'i kullanın.
  4. Kullanıcılarla Etkileşim Kur: Kesintisiz etkileşim için bir konuşma arayüzü sağlayın.


Adım 1: PDF Belgelerini Yükleme ve İşleme

Araçlar ve Kütüphaneler

Uygulama

1.1 PDF Dosyalarını Yükle

Bir dizindeki tüm PDF'leri yüklemek için LangChain'in DirectoryLoader'ını kullanın. Her PDF, işleme için sayfalara ayrılır.

from langchain_community.document_loaders import DirectoryLoader, PyPDFLoader  
from langchain.text_splitter import RecursiveCharacterTextSplitter  

def load_and_process_pdfs(data_dir: str):  
    loader = DirectoryLoader(  
        data_dir,  
        glob="**/*.pdf",  
        loader_cls=PyPDFLoader  
    )  
    documents = loader.load()  

    # Split documents into chunks  
    text_splitter = RecursiveCharacterTextSplitter(  
        chunk_size=1000,  
        chunk_overlap=200,  
        length_function=len,  
    )  
    return text_splitter.split_documents(documents)  

1.2 Bir Vektör Deposu Oluştur

Metin parçalarını gömülümlere dönüştürün ve verimli alma için bunları ChromaDB'de saklayın.

from langchain_huggingface import HuggingFaceEmbeddings  
from langchain_community.vectorstores import Chroma  
import os  
import shutil  

def create_vector_store(chunks, persist_directory: str):  
    if os.path.exists(persist_directory):  
        shutil.rmtree(persist_directory)  

    embeddings = HuggingFaceEmbeddings(  
        model_name="sentence-transformers/all-mpnet-base-v2",  
        model_kwargs={'device': 'cpu'}  
    )  

    vectordb = Chroma.from_documents(  
        documents=chunks,  
        embedding=embeddings,  
        persist_directory=persist_directory  
    )  
    return vectordb  

Temel Hususlar


Adım 2: DeepSeek R1 ile Akıl Yürütme Aracısını Uygulama

Neden DeepSeek R1?

DeepSeek R1, çok adımlı akıl yürütme konusunda uzmanlaşmıştır ve karmaşık sorguları parçalamasını, ilişkileri çıkarmasını ve yapılandırılmış cevaplar üretmesini sağlar.

Akıl Yürütme Modelini Başlat

Yerel çıkarım için DeepSeek R1'i Ollama aracılığıyla yapılandırın:

from smolagents import OpenAIServerModel, CodeAgent  

reasoning_model_id = "deepseek-r1:7b"  

def get_model(model_id):  
    return OpenAIServerModel(  
        model_id=model_id,  
        api_base="http://localhost:11434/v1",  
        api_key="ollama"  
    )  

reasoning_model = get_model(reasoning_model_id)  
reasoner = CodeAgent(  
    tools=[],  
    model=reasoning_model,  
    add_base_tools=False,  
    max_steps=2  # Limit reasoning iterations for efficiency  
)  

Adım 3: Retrieval-Augmented Generation (RAG) Boru Hattını Oluşturma

Araç Tasarımı

Belge alımını DeepSeek R1'in akıl yürütme yetenekleriyle birleştiren bir RAG aracı oluşturun.

from smolagents import tool  

@tool  
def rag_with_reasoner(user_query: str) -> str:  
    # Retrieve relevant documents  
    docs = vectordb.similarity_search(user_query, k=3)  
    context = "\n\n".join(doc.page_content for doc in docs)  

    # Generate a reasoning prompt  
    prompt = f"""  
    Based on the following context, answer the user's question concisely.  
    If the information is insufficient, suggest a refined query.  

    Context:  
    {context}  

    Question: {user_query}  

    Answer:  
    """  

    return reasoner.run(prompt, reset=False)  

Temel Özellikler


Adım 4: Birincil Yapay Zeka Aracısını Dağıtma

İş Akışını Düzenleme

Llama 3.2 tarafından desteklenen birincil aracı, kullanıcı etkileşimlerini yönetir ve gerektiğinde RAG aracını çağırır:

from smolagents import ToolCallingAgent, GradioUI  

tool_model = get_model("llama3.2")  
primary_agent = ToolCallingAgent(  
    tools=[rag_with_reasoner],  
    model=tool_model,  
    add_base_tools=False,  
    max_steps=3  
)  

def main():  
    GradioUI(primary_agent).launch()  

if __name__ == "__main__":  
    main()  

Kullanıcı Arayüzü

Kullanıcı arayüzü, gerçek zamanlı etkileşim için basit bir web arayüzü sağlar:


DeepSeek R1 ve SmolAgents'ın entegrasyonu, karmaşık sorguları incelemek için gelişmiş akıl yürütmeyi, ChromaDB'nin hızlı anlamsal araması aracılığıyla verimli alımı ve maliyetli bulut API'lerine olan bağımlılığı atlamak için uygun maliyetli yerel dağıtımı birleştiren güçlü bir yapay zeka çözümü sunar. Ölçeklenebilir mimarisi, yeni araçların sorunsuz entegrasyonuna olanak tanır ve bu da onu araştırma (teknik belgeleri analiz etme), müşteri desteği (SSS'leri çözme) ve bilgi yönetimi (statik kaynakları etkileşimli sistemlere dönüştürme) gibi uygulamalar için ideal hale getirir.

Gelecekteki geliştirmeler, belge desteğini Word, HTML ve markdown'u içerecek şekilde genişletebilir, daha geniş bir bağlam için gerçek zamanlı web aramasını entegre edebilir ve zaman içinde cevap doğruluğunu iyileştirmek için geri bildirim döngüleri uygulayabilir. Bu çerçeve, çeşitli ihtiyaçlara göre uyarlanmış akıllı, uyarlanabilir yapay zeka asistanları oluşturmak için çok yönlü bir temel sunar.

Explore more

Fathom-R1-14B: Hindistan'dan Gelişmiş Yapay Zeka Muhakeme Modeli

Fathom-R1-14B: Hindistan'dan Gelişmiş Yapay Zeka Muhakeme Modeli

Yapay zeka hızla gelişiyor. FractalAIResearch/Fathom-R1-14B, 14.8 milyar parametreyle matematik ve genel akıl yürütmede başarılı.

5 June 2025

Mistral Code: İşletmeler için En Özelleştirilebilir Yapay Zeka Destekli Kodlama Asistanı

Mistral Code: İşletmeler için En Özelleştirilebilir Yapay Zeka Destekli Kodlama Asistanı

Mistral Code'u keşfedin: Kurumsal kullanıma özel, en özelleştirilebilir yapay zeka destekli kodlama asistanı.

5 June 2025

Claude Code'un 2025'te Yapay Zeka Kodlamasını Nasıl Dönüştürdüğü

Claude Code'un 2025'te Yapay Zeka Kodlamasını Nasıl Dönüştürdüğü

Claude Code, 2025'te yapay zeka destekli kodlamayı nasıl devrimleştiriyor? Özelliklerini, kullanımını ve Windsurf kısıtlamalarından sonra neden popüler olduğunu öğrenin. Geliştiriciler için okunması gereken!

5 June 2025

API Tasarım-Öncelikli Yaklaşımı Apidog'da Uygulayın

API'leri oluşturmanın ve kullanmanın daha kolay yolunu keşfedin