国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Jadual Kandungan
Objektif Pembelajaran
Melaksanakan router
Rag vs Agentic Rag
Haystack adalah rangka kerja sumber terbuka untuk membina aplikasi AI, aplikasi LLM, saluran paip RAG, dan sistem carian. Ia
Komponen
Pipeline
nod
graf sambungan
Projek Rag Soalan-Jawab untuk Fizik Menengah Tinggi
Sekarang, kita perlu membuat penghala untuk mengarahkan data melalui jalan yang berbeza. Dalam kes ini, kami akan menggunakan penghala bersyarat yang akan melakukan kerja penghalaan kami pada keadaan tertentu.
Sistem Rag Agentik memberikan lebih banyak respons pintar dan fleksibel daripada kain tradisional.
Rumah Peranti teknologi AI Cara Membina Sistem Rag QA Agentik Menggunakan Rangka Kerja Haystack

Cara Membina Sistem Rag QA Agentik Menggunakan Rangka Kerja Haystack

Mar 03, 2025 pm 06:35 PM

Bayangkan anda sedang membina sokongan pelanggan AI yang perlu menjawab soalan mengenai produk anda. Kadang -kadang ia perlu menarik maklumat dari dokumentasi anda, sementara masa lain ia perlu mencari web untuk kemas kini terkini. Sistem RAG Agentic berguna dalam jenis aplikasi AI yang kompleks. Fikirkan mereka sebagai pembantu penyelidik pintar yang bukan sahaja mengetahui dokumentasi dalaman anda tetapi juga membuat keputusan untuk mencari web. Dalam panduan ini, kami akan melalui proses membina sistem RAG QA yang agentik menggunakan kerangka haystack.

Objektif Pembelajaran

  • Ketahui apa yang agensi dan memahami bagaimana ia berbeza dari sistem kain.
  • Biasakan Rangka Kerja Haystack untuk Aplikasi LLM Agentic.
  • memahami proses bangunan segera dari templat dan belajar bagaimana untuk bergabung dengan arahan yang berlainan.
  • Ketahui cara membuat embedding menggunakan Chromadb di haystack.
  • Ketahui cara menubuhkan sistem pembangunan tempatan yang lengkap daripada membenamkan ke generasi.
Artikel ini diterbitkan sebagai sebahagian daripada Blogathon Sains Data

Jadual Kandungan Apa itu Agentic LLM? Komponen Blok Pipeline > Paip Pengindeksan

Melaksanakan router

    Buat templat prompt
    • Melaksanakan Pipeline Query
    • Lukiskan Pipeline Grafik
  • Apa itu llm yang agentik?
    • LLM Agentic adalah sistem AI yang boleh membuat keputusan secara autonomi dan mengambil tindakan berdasarkan pemahamannya tentang tugas itu. Tidak seperti LLM tradisional yang terutamanya menjana respons teks, LLM yang agentik boleh melakukan lebih banyak lagi.
    • Ia boleh berfikir, merancang, dan bertindak dengan input manusia yang minimum. Ia menilai pengetahuannya, mengiktiraf apabila memerlukan lebih banyak maklumat atau alat luaran.
    Agentic LLMS
  • Jangan bergantung pada data statik atau pengetahuan yang diindeks, sebaliknya, mereka memutuskan sumber yang harus dipercayai dan bagaimana untuk mengumpulkan pandangan terbaik.
    • Sistem jenis ini juga boleh memilih alat yang sesuai untuk pekerjaan itu. Ia boleh membuat keputusan apabila perlu mengambil dokumen, menjalankan pengiraan, atau mengautomasikan tugas. Apa yang membezakannya adalah keupayaannya untuk memecahkan masalah yang rumit ke dalam langkah -langkah dan melaksanakannya secara bebas yang menjadikannya bernilai untuk penyelidikan, analisis, dan automasi aliran kerja.
    • Rag vs Agentic Rag

      sistem kain tradisional mengikuti proses linear. Apabila pertanyaan diterima, sistem pertama mengenal pasti unsur -unsur utama dalam permintaan. Ia kemudian mencari asas pengetahuan, mengimbas maklumat yang relevan yang dapat membantu merancang tindak balas yang tepat. Sebaik sahaja maklumat atau data yang berkaitan diambil, sistem memprosesnya untuk menghasilkan tindak balas yang bermakna dan kontekstual yang relevan.

      anda dapat memahami proses dengan mudah oleh rajah di bawah.

      Cara Membina Sistem Rag QA Agentik Menggunakan Rangka Kerja Haystack Sekarang, sistem kain ragak meningkatkan proses ini dengan:

      Menilai keperluan pertanyaan
      • memutuskan antara pelbagai sumber pengetahuan
      • berpotensi menggabungkan maklumat dari sumber yang berbeza
      • membuat keputusan autonomi mengenai strategi tindak balas
      • Menyediakan respons yang disusun sumber
      • Perbezaan utama terletak pada keupayaan sistem untuk membuat keputusan pintar tentang cara mengendalikan pertanyaan, dan bukannya mengikuti corak generasi pengambilan tetap.

      Memahami Komponen Rangka Kerja Haystack

      Haystack adalah rangka kerja sumber terbuka untuk membina aplikasi AI, aplikasi LLM, saluran paip RAG, dan sistem carian. Ia

      menawarkan rangka kerja yang kuat dan fleksibel untuk membina aplikasi LLM. Ia membolehkan anda mengintegrasikan model dari pelbagai platform seperti Huggingface, Openai, Cohere, Mistral, dan Ollama tempatan. Anda juga boleh menggunakan model pada perkhidmatan awan seperti SageMaker AWS, Bedrock, Azure, dan GCP.

      Haystack menyediakan kedai dokumen yang mantap untuk pengurusan data yang cekap. Ia juga dilengkapi dengan satu set alat yang komprehensif untuk penilaian, pemantauan, dan integrasi data yang memastikan prestasi lancar di semua lapisan aplikasi anda. Ia juga mempunyai kerjasama komuniti yang kuat yang menjadikan integrasi perkhidmatan baru dari pelbagai penyedia perkhidmatan secara berkala.

      Apa yang boleh anda bina menggunakan haystack?

      mudah untuk memajukan kain pada data anda, menggunakan teknik pengambilan dan generasi yang mantap. Cara Membina Sistem Rag QA Agentik Menggunakan Rangka Kerja Haystack

      chatbot dan ejen menggunakan model genai terkini seperti GPT-4, Llama3.2, DeepSeek-R1.

      Sistem pertanyaan multimodal generatif pada jenis campuran (imej, teks, audio, dan jadual) asas pengetahuan.
      • Pengekstrakan maklumat dari dokumen atau membina graf pengetahuan.
      • Blok Bangunan Haystack
      • Haystack mempunyai dua konsep utama untuk membina sistem Genai LLM yang berfungsi sepenuhnya - komponen dan saluran paip. Mari kita fahami mereka dengan contoh mudah kain pada watak anime Jepun
      • Komponen

        Komponen adalah blok bangunan teras haystack. Mereka boleh melaksanakan tugas seperti penyimpanan dokumen, pengambilan dokumen, penjanaan teks, dan embedding. Haystack mempunyai banyak komponen yang boleh anda gunakan secara langsung selepas pemasangan, ia juga menyediakan API untuk membuat komponen anda sendiri dengan menulis kelas python.

        Terdapat koleksi integrasi dari syarikat rakan kongsi dan masyarakat.

        Pasang perpustakaan dan tetapkan ollama

        $ pip install haystack-ai ollama-haystack
        
        # On you system download Ollama and install LLM
        
        ollama pull llama3.2:3b
        
        ollama pull nomic-embed-text
        
        
        # And then start ollama server
        ollama serve

        Import beberapa komponen

        from haystack import Document, Pipeline
        from haystack.components.builders.prompt_builder import PromptBuilder
        from haystack.components.retrievers.in_memory import InMemoryBM25Retriever
        from haystack.document_stores.in_memory import InMemoryDocumentStore
        from haystack_integrations.components.generators.ollama import OllamaGenerator

        Buat dokumen dan kedai dokumen

        document_store = InMemoryDocumentStore()
        documents = [
            Document(
                content="Naruto Uzumaki is a ninja from the Hidden Leaf Village and aspires to become Hokage."
            ),
            Document(
                content="Luffy is the captain of the Straw Hat Pirates and dreams of finding the One Piece."
            ),
            Document(
                content="Goku, a Saiyan warrior, has defended Earth from numerous powerful enemies like Frieza and Cell."
            ),
            Document(
                content="Light Yagami finds a mysterious Death Note, which allows him to eliminate people by writing their names."
            ),
            Document(
                content="Levi Ackerman is humanity’s strongest soldier, fighting against the Titans to protect mankind."
            ),
        ]

        Pipeline

        saluran paip adalah tulang belakang kerangka Haystack. Mereka menentukan aliran data antara komponen yang berbeza. Pipelin pada dasarnya adalah graf acyclic yang diarahkan (DAG). Komponen tunggal dengan pelbagai output boleh menyambung ke komponen tunggal lain dengan pelbagai input.

        anda boleh menentukan saluran paip dengan

        pipe = Pipeline()
        
        pipe.add_component("retriever", InMemoryBM25Retriever(document_store=document_store))
        pipe.add_component("prompt_builder", PromptBuilder(template=template))
        pipe.add_component(
            "llm", OllamaGenerator(model="llama3.2:1b", url="http://localhost:11434")
        )
        pipe.connect("retriever", "prompt_builder.documents")
        pipe.connect("prompt_builder", "llm")

        anda boleh memvisualisasikan saluran paip

        image_param = {
            "format": "img",
            "type": "png",
            "theme": "forest",
            "bgColor": "f2f3f4",
        }
        pipe.show(params=image_param)

        Pipeline menyediakan:

        • Pengurusan aliran kerja modular
        • susunan komponen fleksibel
        • debugging dan pemantauan mudah
        • Arsitektur pemprosesan berskala

        nod

        nod adalah unit pemprosesan asas yang boleh disambungkan dalam saluran paip nod ini adalah komponen yang melakukan tugas tertentu.

        Contoh nod dari saluran paip di atas

        pipe.add_component("retriever", InMemoryBM25Retriever(document_store=document_store))
        pipe.add_component("prompt_builder", PromptBuilder(template=template))
        pipe.add_component(
            "llm", OllamaGenerator(model="llama3.2:1b", url="http://localhost:11434")
        )
        

        graf sambungan

        Connectiongraph menentukan bagaimana komponen berinteraksi.

        Dari saluran paip di atas, anda boleh memvisualisasikan graf sambungan.

        image_param = {
            "format": "img",
            "type": "png",
            "theme": "forest",
            "bgColor": "f2f3f4",
        }
        pipe.show(params=image_param)

        graf sambungan saluran paip anime

        Cara Membina Sistem Rag QA Agentik Menggunakan Rangka Kerja Haystack

        Struktur graf ini:

          mentakrifkan aliran data antara komponen
        • Menguruskan hubungan input/output
        • membolehkan pemprosesan selari di mana mungkin
        • Mewujudkan laluan pemprosesan yang fleksibel.
        Sekarang kita boleh menanyakan asas pengetahuan anime kita menggunakan prompt.

        Buat template prompt

        template = """
        Given only the following information, answer the question.
        Ignore your own knowledge.
        
        Context:
        {% for document in documents %}
            {{ document.content }}
        {% endfor %}
        
        Question: {{ query }}?
        """
        Prompt ini akan memberikan jawapan yang mengambil maklumat dari pangkalan dokumen.

        pertanyaan menggunakan prompt dan retriever

        query = "How Goku eliminate people?"
        response = pipe.run({"prompt_builder": {"query": query}, "retriever": {"query": query}})
        print(response["llm"]["replies"])

        Response:

        Cara Membina Sistem Rag QA Agentik Menggunakan Rangka Kerja Haystack RAG ini mudah tetapi konseptual berharga kepada pendatang baru. Sekarang kita telah memahami kebanyakan konsep kerangka haystack, kita dapat menyelam ke dalam projek utama kita. Sekiranya ada perkara baru, saya akan menerangkan sepanjang jalan.

        Projek Rag Soalan-Jawab untuk Fizik Menengah Tinggi

        kami akan membina soalan berasaskan buku Fizik NCERT RAG untuk pelajar menengah yang lebih tinggi. Ia akan memberikan jawapan kepada pertanyaan dengan mengambil maklumat dari buku NCERT, dan jika maklumat itu tidak ada, ia akan mencari web untuk mendapatkan maklumat itu. Untuk ini, saya akan menggunakan:

          Local Llama3.2: 3b atau llama3.2: 1b
        • chromadb untuk penyimpanan embedding
        • Model Teks Nomic Embed untuk Embedding Tempatan
        • DuckDuckGo Carian untuk carian web atau carian tavily (pilihan)
        Saya menggunakan sistem yang bebas dan benar -benar setempat.

        menyediakan persekitaran pemaju

        kami akan menyediakan conda env python 3.12

        $ pip install haystack-ai ollama-haystack
        
        # On you system download Ollama and install LLM
        
        ollama pull llama3.2:3b
        
        ollama pull nomic-embed-text
        
        
        # And then start ollama server
        ollama serve
        Pasang pakej yang diperlukan

        from haystack import Document, Pipeline
        from haystack.components.builders.prompt_builder import PromptBuilder
        from haystack.components.retrievers.in_memory import InMemoryBM25Retriever
        from haystack.document_stores.in_memory import InMemoryDocumentStore
        from haystack_integrations.components.generators.ollama import OllamaGenerator
        Sekarang buat direktori projek bernama

        qagent .

        document_store = InMemoryDocumentStore()
        documents = [
            Document(
                content="Naruto Uzumaki is a ninja from the Hidden Leaf Village and aspires to become Hokage."
            ),
            Document(
                content="Luffy is the captain of the Straw Hat Pirates and dreams of finding the One Piece."
            ),
            Document(
                content="Goku, a Saiyan warrior, has defended Earth from numerous powerful enemies like Frieza and Cell."
            ),
            Document(
                content="Light Yagami finds a mysterious Death Note, which allows him to eliminate people by writing their names."
            ),
            Document(
                content="Levi Ackerman is humanity’s strongest soldier, fighting against the Titans to protect mankind."
            ),
        ]
        Anda boleh menggunakan fail python biasa untuk projek atau buku nota Jupyter untuk projek itu tidak penting. Saya akan menggunakan fail python biasa.

        Buat fail

        main.py pada root projek.

        Mengimport perpustakaan yang diperlukan

          pakej sistem
        • Komponen Haystack Core
        • ChromAdb untuk Komponen Embedding
        • komponen ollama untuk kesimpulan tempatan
        • dan duckduckgo untuk carian web
        pipe = Pipeline()
        
        pipe.add_component("retriever", InMemoryBM25Retriever(document_store=document_store))
        pipe.add_component("prompt_builder", PromptBuilder(template=template))
        pipe.add_component(
            "llm", OllamaGenerator(model="llama3.2:1b", url="http://localhost:11434")
        )
        pipe.connect("retriever", "prompt_builder.documents")
        pipe.connect("prompt_builder", "llm")
        image_param = {
            "format": "img",
            "type": "png",
            "theme": "forest",
            "bgColor": "f2f3f4",
        }
        pipe.show(params=image_param)
        pipe.add_component("retriever", InMemoryBM25Retriever(document_store=document_store))
        pipe.add_component("prompt_builder", PromptBuilder(template=template))
        pipe.add_component(
            "llm", OllamaGenerator(model="llama3.2:1b", url="http://localhost:11434")
        )
        
        image_param = {
            "format": "img",
            "type": "png",
            "theme": "forest",
            "bgColor": "f2f3f4",
        }
        pipe.show(params=image_param)
        template = """
        Given only the following information, answer the question.
        Ignore your own knowledge.
        
        Context:
        {% for document in documents %}
            {{ document.content }}
        {% endfor %}
        
        Question: {{ query }}?
        """
        Membuat kedai dokumen

        Dokumen Kedai adalah yang paling penting di sini kami akan menyimpan embedding kami untuk mendapatkan semula, kami menggunakan

        Chromadb untuk kedai embedding, dan seperti yang anda lihat dalam contoh yang lebih awal, kami menggunakan InMemoryDocumentStore untuk mendapatkan semula yang cepat dan akan menjadi lebih baik, sistem.

        Penyelesaiannya adalah pangkalan data vektor seperti pinecode, weaviate, postgres vector db, atau chromadb. Saya menggunakan Chromadb kerana percuma, sumber terbuka, mudah digunakan, dan teguh.

        query = "How Goku eliminate people?"
        response = pipe.run({"prompt_builder": {"query": query}, "retriever": {"query": query}})
        print(response["llm"]["replies"])

        ENTERT_PATH di mana anda ingin menyimpan embedding anda.

        jalur fail pdf

        $conda create --name agenticlm python=3.12
        
        $conda activate agenticlm
        ia akan membuat senarai fail dari folder data yang terdiri daripada fail PDF kami.

        Dokumen Preprocessing Components

        Kami akan menggunakan preprocessor dokumen terbina dalam Haystack seperti Cleaner, Splitter, dan File Converter, dan kemudian menggunakan seorang penulis untuk menulis data ke dalam kedai.

        Cleaner: Ia akan membersihkan ruang tambahan, garis berulang, garis kosong, dan lain -lain dari dokumen.

        $pip install haystack-ai ollama-haystack pypdf
        
        $pip install chroma-haystack duckduckgo-api-haystack

        Splitter: Ia akan memecah dokumen dalam pelbagai cara seperti kata -kata, ayat, para, halaman.

        $md qagent # create dir
        
        $cd qagent # change to dir
        
        $ code .   # open folder in vscode

        File Converter: Ia akan menggunakan PYPDF untuk menukar PDF ke dokumen.

        $ pip install haystack-ai ollama-haystack
        
        # On you system download Ollama and install LLM
        
        ollama pull llama3.2:3b
        
        ollama pull nomic-embed-text
        
        
        # And then start ollama server
        ollama serve

        penulis: Ia akan menyimpan dokumen di mana anda ingin menyimpan dokumen dan untuk dokumen pendua, ia akan menimpa dengan sebelumnya.

        from haystack import Document, Pipeline
        from haystack.components.builders.prompt_builder import PromptBuilder
        from haystack.components.retrievers.in_memory import InMemoryBM25Retriever
        from haystack.document_stores.in_memory import InMemoryDocumentStore
        from haystack_integrations.components.generators.ollama import OllamaGenerator

        sekarang tetapkan embedder untuk pengindeksan dokumen.

        Embedder: Nomic Embed Text

        kami akan menggunakan penyembuhan teks-teks nomik yang sangat berkesan dan bebas inhuggingface dan ollama.

        Sebelum anda menjalankan saluran paip pengindeksan anda buka terminal anda dan taipkan di bawah untuk menarik model-teks-teks dan Llama3.2: 3B dari kedai model Ollama

        document_store = InMemoryDocumentStore()
        documents = [
            Document(
                content="Naruto Uzumaki is a ninja from the Hidden Leaf Village and aspires to become Hokage."
            ),
            Document(
                content="Luffy is the captain of the Straw Hat Pirates and dreams of finding the One Piece."
            ),
            Document(
                content="Goku, a Saiyan warrior, has defended Earth from numerous powerful enemies like Frieza and Cell."
            ),
            Document(
                content="Light Yagami finds a mysterious Death Note, which allows him to eliminate people by writing their names."
            ),
            Document(
                content="Levi Ackerman is humanity’s strongest soldier, fighting against the Titans to protect mankind."
            ),
        ]

        dan mulakan ollama dengan menaip arahan ollama berkhidmat di terminal anda

        kini komponen embedder

        pipe = Pipeline()
        
        pipe.add_component("retriever", InMemoryBM25Retriever(document_store=document_store))
        pipe.add_component("prompt_builder", PromptBuilder(template=template))
        pipe.add_component(
            "llm", OllamaGenerator(model="llama3.2:1b", url="http://localhost:11434")
        )
        pipe.connect("retriever", "prompt_builder.documents")
        pipe.connect("prompt_builder", "llm")

        kami menggunakan komponen untuk membenamkan dokumen, tetapi jika anda ingin membenamkan rentetan teks maka anda perlu menggunakan ollamatextembedder.

        Membuat Pipeline Pengindeksan

        Seperti contoh Rag Toy sebelumnya, kita akan mulakan dengan memulakan kelas saluran paip.

        image_param = {
            "format": "img",
            "type": "png",
            "theme": "forest",
            "bgColor": "f2f3f4",
        }
        pipe.show(params=image_param)
        Sekarang kita akan menambah komponen ke saluran paip kita satu demi satu

        pipe.add_component("retriever", InMemoryBM25Retriever(document_store=document_store))
        pipe.add_component("prompt_builder", PromptBuilder(template=template))
        pipe.add_component(
            "llm", OllamaGenerator(model="llama3.2:1b", url="http://localhost:11434")
        )
        
        Menambah komponen ke saluran paip tidak peduli dengan perintah jadi, anda boleh menambah komponen dalam apa -apa perintah. Tetapi menghubungkan adalah yang penting.

        Menghubungkan komponen ke graf saluran paip

        image_param = {
            "format": "img",
            "type": "png",
            "theme": "forest",
            "bgColor": "f2f3f4",
        }
        pipe.show(params=image_param)
        di sini, pesanan perkara, kerana bagaimana anda menyambungkan komponen memberitahu saluran paip bagaimana data akan mengalir melalui saluran paip. Ia seperti, tidak penting di mana perintah atau dari mana anda membeli barang paip anda tetapi bagaimana untuk meletakkannya bersama -sama akan memutuskan sama ada anda mendapat air anda atau tidak.

        Penukar menukarkan PDF dan menghantarnya untuk membersihkan untuk membersihkan. Kemudian pembersih menghantar dokumen yang dibersihkan ke splitter untuk chunking. Ketulan -ketulan itu kemudiannya akan ditanam untuk vektorisasi, dan yang terakhir tertanam akan menyerahkan embeddings ini kepada penulis untuk penyimpanan.

        faham! Ok, izinkan saya memberi anda graf visual pengindeksan supaya anda dapat memeriksa aliran data.

        Lukis saluran paip pengindeksan

        template = """
        Given only the following information, answer the question.
        Ignore your own knowledge.
        
        Context:
        {% for document in documents %}
            {{ document.content }}
        {% endfor %}
        
        Question: {{ query }}?
        """
        Ya, anda boleh membuat graf duyung yang bagus dari saluran paip haystack dengan mudah. ??

        Grafik Paip Pengindeksan

        Cara Membina Sistem Rag QA Agentik Menggunakan Rangka Kerja Haystack Saya menganggap sekarang anda telah memahami sepenuhnya idea di sebalik saluran paip jerami. Bersyukurlah kepada anda tukang paip.

        Melaksanakan penghala

        Sekarang, kita perlu membuat penghala untuk mengarahkan data melalui jalan yang berbeza. Dalam kes ini, kami akan menggunakan penghala bersyarat yang akan melakukan kerja penghalaan kami pada keadaan tertentu.

        Penghala bersyarat akan menilai syarat berdasarkan output komponen. Ia akan mengarahkan aliran data melalui cawangan saluran paip yang berbeza yang membolehkan membuat keputusan dinamik. Ia juga akan mempunyai strategi sandaran yang mantap.

        $ pip install haystack-ai ollama-haystack
        
        # On you system download Ollama and install LLM
        
        ollama pull llama3.2:3b
        
        ollama pull nomic-embed-text
        
        
        # And then start ollama server
        ollama serve

        Apabila sistem mendapat balasan no_answer dari konteks penyimpanan embedding, maka ia akan pergi ke alat carian web untuk mengumpul data yang relevan dari internet.

        Untuk carian web, kami akan menggunakan API DuckDuckgo atau Tavily, di sini saya telah menggunakan DuckDuckGo.

        from haystack import Document, Pipeline
        from haystack.components.builders.prompt_builder import PromptBuilder
        from haystack.components.retrievers.in_memory import InMemoryBM25Retriever
        from haystack.document_stores.in_memory import InMemoryDocumentStore
        from haystack_integrations.components.generators.ollama import OllamaGenerator
        OK, kebanyakan pengangkat berat telah dilakukan. Sekarang, masa untuk kejuruteraan segera

        Buat templat prompt

        kami akan menggunakan komponen haystack promptbuilder untuk membina arahan dari templat

        Pertama, kami akan membuat prompt untuk qa

        document_store = InMemoryDocumentStore()
        documents = [
            Document(
                content="Naruto Uzumaki is a ninja from the Hidden Leaf Village and aspires to become Hokage."
            ),
            Document(
                content="Luffy is the captain of the Straw Hat Pirates and dreams of finding the One Piece."
            ),
            Document(
                content="Goku, a Saiyan warrior, has defended Earth from numerous powerful enemies like Frieza and Cell."
            ),
            Document(
                content="Light Yagami finds a mysterious Death Note, which allows him to eliminate people by writing their names."
            ),
            Document(
                content="Levi Ackerman is humanity’s strongest soldier, fighting against the Titans to protect mankind."
            ),
        ]
        Ia akan mengambil konteks dari dokumen dan cuba menjawab soalan. Tetapi jika ia tidak menemui konteks yang relevan dalam dokumen, ia akan membalas no_answer.

        Sekarang, dalam proses kedua selepas mendapat No_answer dari LLM, sistem akan menggunakan alat carian web untuk mengumpulkan konteks dari Internet.

        template prompt duckduckgo

        pipe = Pipeline()
        
        pipe.add_component("retriever", InMemoryBM25Retriever(document_store=document_store))
        pipe.add_component("prompt_builder", PromptBuilder(template=template))
        pipe.add_component(
            "llm", OllamaGenerator(model="llama3.2:1b", url="http://localhost:11434")
        )
        pipe.connect("retriever", "prompt_builder.documents")
        pipe.connect("prompt_builder", "llm")
        ia akan memudahkan sistem untuk pergi ke carian web dan cuba menjawab pertanyaan.

        3

        kami akan menggunakan haystack prompt joiner untuk menyertai cawangan -cawangan yang dipenuhi bersama.

        Melaksanakan saluran paip pertanyaan
        image_param = {
            "format": "img",
            "type": "png",
            "theme": "forest",
            "bgColor": "f2f3f4",
        }
        pipe.show(params=image_param)

        Pipeline pertanyaan akan membenamkan sumber -sumber kontekstual yang mengumpul pertanyaan dari embeddings dan menjawab pertanyaan kami menggunakan alat carian LLM atau web.

        pipe.add_component("retriever", InMemoryBM25Retriever(document_store=document_store))
        pipe.add_component("prompt_builder", PromptBuilder(template=template))
        pipe.add_component(
            "llm", OllamaGenerator(model="llama3.2:1b", url="http://localhost:11434")
        )
        
        ia sama dengan saluran paip pengindeksan.

        Memulakan saluran paip

        Menambah komponen ke saluran paip pertanyaan

        di sini, untuk generasi LLM kita menggunakan komponen ollamagenerator untuk menjana jawapan menggunakan llama3.2: 3b atau 1b atau apa sahaja yang anda suka dengan alat yang memanggil.
        image_param = {
            "format": "img",
            "type": "png",
            "theme": "forest",
            "bgColor": "f2f3f4",
        }
        pipe.show(params=image_param)

        menyambungkan semua komponen bersama untuk aliran pertanyaan dan penjanaan jawapan

        template = """
        Given only the following information, answer the question.
        Ignore your own knowledge.
        
        Context:
        {% for document in documents %}
            {{ document.content }}
        {% endfor %}
        
        Question: {{ query }}?
        """

        Ringkasan sambungan di atas:

        penyembuhan dari text_embedder yang dihantar ke embedding pertanyaan retriever.
        query = "How Goku eliminate people?"
        response = pipe.run({"prompt_builder": {"query": query}, "retriever": {"query": query}})
        print(response["llm"]["replies"])

        Retriever menghantar data ke dokumen prompt_builder.

          pembina prompt pergi ke gabungan segera untuk bergabung dengan arahan lain.
        1. Joiner prompt meluluskan data ke LLM untuk generasi.
        2. Jawapan -balasan LLM pergi ke router untuk memeriksa sama ada jawapannya mempunyai
        3. no_answer
        4. atau tidak.
        5. carian web menghantar data ke carian carian web sebagai pertanyaan.
        6. Dokumen carian web Hantar data ke dokumen carian web.
        7. Prompt carian web menghantar data ke gabungan segera. dan penyokong segera akan menghantar data ke LLM untuk penjanaan jawapan.
        8. mengapa tidak melihat sendiri?
        9. lukis graf paip pertanyaan
        10. Grafik pertanyaan

        Saya tahu ia adalah graf yang besar tetapi ia akan menunjukkan kepada anda apa yang berlaku di bawah perut binatang.

        sekarang sudah tiba masanya untuk menikmati buah kerja keras kami.

        Buat fungsi untuk pertanyaan mudah. ??

        $ pip install haystack-ai ollama-haystack
        
        # On you system download Ollama and install LLM
        
        ollama pull llama3.2:3b
        
        ollama pull nomic-embed-text
        
        
        # And then start ollama server
        ollama serve

        ia adalah fungsi mudah yang mudah untuk penjanaan jawapan.

        sekarang jalankan skrip utama anda untuk mengindeks buku fizik ncert

        from haystack import Document, Pipeline
        from haystack.components.builders.prompt_builder import PromptBuilder
        from haystack.components.retrievers.in_memory import InMemoryBM25Retriever
        from haystack.document_stores.in_memory import InMemoryDocumentStore
        from haystack_integrations.components.generators.ollama import OllamaGenerator

        Ini adalah pekerjaan satu kali, selepas pengindeksan anda mesti mengulas pada baris ini jika tidak, ia akan mula mengindeks semula buku.

        dan bahagian bawah fail kami menulis kod pemacu kami untuk pertanyaan

        document_store = InMemoryDocumentStore()
        documents = [
            Document(
                content="Naruto Uzumaki is a ninja from the Hidden Leaf Village and aspires to become Hokage."
            ),
            Document(
                content="Luffy is the captain of the Straw Hat Pirates and dreams of finding the One Piece."
            ),
            Document(
                content="Goku, a Saiyan warrior, has defended Earth from numerous powerful enemies like Frieza and Cell."
            ),
            Document(
                content="Light Yagami finds a mysterious Death Note, which allows him to eliminate people by writing their names."
            ),
            Document(
                content="Levi Ackerman is humanity’s strongest soldier, fighting against the Titans to protect mankind."
            ),
        ]

        MCQ mengenai Resistivity dari Pengetahuan Buku

        Cara Membina Sistem Rag QA Agentik Menggunakan Rangka Kerja Haystack

        soalan lain yang tidak ada dalam buku

        pipe = Pipeline()
        
        pipe.add_component("retriever", InMemoryBM25Retriever(document_store=document_store))
        pipe.add_component("prompt_builder", PromptBuilder(template=template))
        pipe.add_component(
            "llm", OllamaGenerator(model="llama3.2:1b", url="http://localhost:11434")
        )
        pipe.connect("retriever", "prompt_builder.documents")
        pipe.connect("prompt_builder", "llm")

        output

        Cara Membina Sistem Rag QA Agentik Menggunakan Rangka Kerja Haystack mari kita cuba soalan lain.

        image_param = {
            "format": "img",
            "type": "png",
            "theme": "forest",
            "bgColor": "f2f3f4",
        }
        pipe.show(params=image_param)

        Jadi, ia berfungsi! Kita boleh menggunakan lebih banyak data, buku, atau PDF untuk membenamkan yang akan menghasilkan lebih banyak jawapan kontekstual. Juga, LLMs seperti GPT-4O, Claude Anthropic, atau LLM awan lain akan melakukan pekerjaan yang lebih baik. Cara Membina Sistem Rag QA Agentik Menggunakan Rangka Kerja Haystack

        Kesimpulan

        Sistem Rag Agentik kami menunjukkan fleksibiliti dan keteguhan kerangka haystack dengan kuasa menggabungkan komponen dan saluran paip. RAG ini boleh dibuat siap pengeluaran dengan menggunakan platform perkhidmatan web dan juga menggunakan LLM yang lebih baik seperti OpenAI, dan Nthropic. Anda boleh membina UI menggunakan SPA web berasaskan streamlit atau reaksi untuk pengalaman pengguna yang lebih baik.

        anda boleh mencari semua kod yang digunakan dalam artikel, di sini.

        Takeaways Key

        Sistem Rag Agentik memberikan lebih banyak respons pintar dan fleksibel daripada kain tradisional.

          Senibina saluran paip Haystack membolehkan aliran kerja kompleks, modular.
        • router membolehkan membuat keputusan dinamik dalam penjanaan tindak balas.
        • Grafik Sambungan menyediakan interaksi komponen yang fleksibel dan boleh dipelihara.
        • Integrasi pelbagai sumber pengetahuan meningkatkan kualiti tindak balas.
        • Media yang ditunjukkan dalam artikel ini tidak dimiliki oleh Analytics Vidhya dan digunakan pada budi bicara penulis
        .

        Soalan Lazim

        Q1. Bagaimanakah sistem mengendalikan pertanyaan yang tidak diketahui?

        a. Sistem ini menggunakan komponen routernya untuk secara automatik jatuh ke carian web apabila pengetahuan tempatan tidak mencukupi, memastikan liputan komprehensif. Q2. Apakah kelebihan yang ditawarkan oleh seni bina saluran paip?

        a. Senibina saluran paip membolehkan pembangunan modular, ujian mudah, dan susunan komponen yang fleksibel, menjadikan sistem ini dapat dipelihara dan diperluas. Q3. Bagaimanakah graf sambungan meningkatkan fungsi sistem?

        a. Grafik sambungan membolehkan aliran data kompleks dan pemprosesan selari, meningkatkan kecekapan sistem dan fleksibiliti dalam mengendalikan pelbagai jenis pertanyaan.

        Q4. Bolehkah saya menggunakan API LLM yang lain? a. Ya, sangat mudah hanya memasang pakej integrasi yang diperlukan untuk API LLM masing -masing seperti Gemini, Anthropic, dan Groq, dan menggunakannya dengan kekunci API anda.

Atas ialah kandungan terperinci Cara Membina Sistem Rag QA Agentik Menggunakan Rangka Kerja Haystack. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Agnes Tachyon Build Guide | Musume Derby Pretty
2 minggu yang lalu By Jack chen
Oguri Cap Build Guide | Musume Derby Pretty
2 minggu yang lalu By Jack chen
Puncak: Cara Menghidupkan Pemain
4 minggu yang lalu By DDD
Puncak bagaimana untuk emote
3 minggu yang lalu By Jack chen

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Dari Adopsi ke Kelebihan: 10 Trend Membentuk LLMS Enterprise pada tahun 2025 Dari Adopsi ke Kelebihan: 10 Trend Membentuk LLMS Enterprise pada tahun 2025 Jun 20, 2025 am 11:13 AM

Berikut adalah sepuluh trend yang menarik yang membentuk semula landskap AI perusahaan. Komitmen kewangan untuk llmsorganizations secara signifikan meningkatkan pelaburan mereka di LLM, dengan 72% menjangkakan perbelanjaan mereka meningkat tahun ini. Pada masa ini, hampir 40% a

Pelabur AI terjebak dengan terhenti? 3 Laluan Strategik untuk Membeli, Membina, atau Berkongsi dengan Vendor AI Pelabur AI terjebak dengan terhenti? 3 Laluan Strategik untuk Membeli, Membina, atau Berkongsi dengan Vendor AI Jul 02, 2025 am 11:13 AM

Pelaburan adalah berkembang pesat, tetapi modal sahaja tidak mencukupi. Dengan penilaian yang semakin meningkat dan tersendiri pudar, pelabur dalam dana usaha yang berfokus pada AI mesti membuat keputusan utama: Beli, membina, atau rakan kongsi untuk mendapatkan kelebihan? Inilah cara menilai setiap pilihan dan PR

Pertumbuhan AI generatif yang tidak boleh dihalang (AI Outlook Bahagian 1) Pertumbuhan AI generatif yang tidak boleh dihalang (AI Outlook Bahagian 1) Jun 21, 2025 am 11:11 AM

Pendedahan: Syarikat saya, Tirias Research, telah berunding untuk IBM, NVIDIA, dan syarikat -syarikat lain yang disebutkan dalam artikel ini. Pemandu Growth Surge dalam penggunaan AI generatif lebih dramatik daripada unjuran yang paling optimis dapat diramalkan. Kemudian, a

Permulaan ini membantu perniagaan muncul dalam ringkasan carian AI Permulaan ini membantu perniagaan muncul dalam ringkasan carian AI Jun 20, 2025 am 11:16 AM

Hari -hari itu bernombor, terima kasih kepada AI. Cari lalu lintas untuk perniagaan seperti tapak perjalanan kayak dan syarikat edtech Chegg menurun, sebahagiannya kerana 60% carian di laman web seperti Google tidak mengakibatkan pengguna mengklik sebarang pautan, menurut satu stud

AGI dan AI Superintelligence akan dengan ketara memukul penghalang asumsi siling manusia AGI dan AI Superintelligence akan dengan ketara memukul penghalang asumsi siling manusia Jul 04, 2025 am 11:10 AM

Mari kita bercakap mengenainya. Analisis terobosan AI yang inovatif ini adalah sebahagian daripada liputan lajur Forbes yang berterusan pada AI terkini, termasuk mengenal pasti dan menerangkan pelbagai kerumitan AI yang memberi kesan (lihat pautan di sini). Menuju ke Agi dan

Bina Aplikasi LLM Pertama Anda: Tutorial pemula ' s Bina Aplikasi LLM Pertama Anda: Tutorial pemula ' s Jun 24, 2025 am 10:13 AM

Pernahkah anda cuba membina aplikasi Model Besar (LLM) anda sendiri? Pernah tertanya -tanya bagaimana orang membuat aplikasi LLM mereka sendiri untuk meningkatkan produktiviti mereka? Aplikasi LLM telah terbukti berguna dalam setiap aspek

AMD terus membina momentum di AI, dengan banyak kerja yang masih perlu dilakukan AMD terus membina momentum di AI, dengan banyak kerja yang masih perlu dilakukan Jun 28, 2025 am 11:15 AM

Secara keseluruhannya, saya fikir acara itu penting untuk menunjukkan bagaimana AMD menggerakkan bola ke lapangan untuk pelanggan dan pemaju. Di bawah Su, AMD's M.O. adalah untuk mempunyai rancangan yang jelas dan bercita -cita tinggi dan melaksanakan terhadap mereka. Nisbah "katakan/lakukan" beliau adalah tinggi. Syarikat itu

Masa depan meramalkan letupan kecerdasan besar -besaran di jalan dari AI ke AGI Masa depan meramalkan letupan kecerdasan besar -besaran di jalan dari AI ke AGI Jul 02, 2025 am 11:19 AM

Mari kita bercakap mengenainya. Analisis terobosan AI yang inovatif ini adalah sebahagian daripada liputan lajur Forbes yang berterusan pada AI terkini, termasuk mengenal pasti dan menerangkan pelbagai kerumitan AI yang memberi kesan (lihat pautan di sini). Bagi pembaca yang h

See all articles