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.
Jadual Kandungan Apa itu Agentic LLM? Komponen Blok > 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.
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.
- 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.
- 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
- mentakrifkan aliran data antara komponen
- Menguruskan hubungan input/output
- membolehkan pemprosesan selari di mana mungkin
- Mewujudkan laluan pemprosesan yang fleksibel.
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.query = "How Goku eliminate people?" response = pipe.run({"prompt_builder": {"query": query}, "retriever": {"query": query}}) print(response["llm"]["replies"])
Response:
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)
$ 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 diperlukanfrom 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 bernamaqagent .
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.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 dokumenChromadb 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.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
Membuat Pipeline Pengindeksanuntuk membenamkan dokumen, tetapi jika anda ingin membenamkan rentetan teks maka anda perlu menggunakan ollamatextembedder. 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 satupipe.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.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.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
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 segeradocument_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.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 pertanyaanimage_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.Menambah komponen ke saluran paip pertanyaan
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:
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.
- Joiner prompt meluluskan data ke LLM untuk generasi.
- Jawapan -balasan LLM pergi ke router untuk memeriksa sama ada jawapannya mempunyai no_answer
- atau tidak. carian web menghantar data ke carian carian web sebagai pertanyaan.
- Dokumen carian web Hantar data ke dokumen carian web.
- Prompt carian web menghantar data ke gabungan segera. dan penyokong segera akan menghantar data ke LLM untuk penjanaan jawapan.
- mengapa tidak melihat sendiri?
- lukis graf paip pertanyaan
- 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
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
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.
KesimpulanSistem 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. 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.
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.
Sekarang, sistem kain ragak meningkatkan proses ini dengan:
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.
chatbot dan ejen menggunakan model genai terkini seperti GPT-4, Llama3.2, DeepSeek-R1.
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!

Pengekodan Vibe membentuk semula dunia pembangunan perisian dengan membiarkan kami membuat aplikasi menggunakan bahasa semulajadi dan bukannya kod yang tidak berkesudahan. Diilhamkan oleh penglihatan seperti Andrej Karpathy, pendekatan inovatif ini membolehkan Dev

Dall-E 3: Alat Penciptaan Imej AI Generatif AI Generatif merevolusi penciptaan kandungan, dan Dall-E 3, model penjanaan imej terbaru OpenAI, berada di barisan hadapan. Dikeluarkan pada bulan Oktober 2023, ia dibina pada pendahulunya, Dall-E dan Dall-E 2

Februari 2025 telah menjadi satu lagi bulan yang berubah-ubah untuk AI generatif, membawa kita beberapa peningkatan model yang paling dinanti-nantikan dan ciri-ciri baru yang hebat. Dari Xai's Grok 3 dan Anthropic's Claude 3.7 Sonnet, ke Openai's G

Yolo (anda hanya melihat sekali) telah menjadi kerangka pengesanan objek masa nyata yang terkemuka, dengan setiap lelaran bertambah baik pada versi sebelumnya. Versi terbaru Yolo V12 memperkenalkan kemajuan yang meningkatkan ketepatan

Projek AI Stargate $ 500 bilion, yang disokong oleh gergasi teknologi seperti Openai, Softbank, Oracle, dan Nvidia, dan disokong oleh kerajaan A.S., bertujuan untuk mengukuhkan kepimpinan AI Amerika. Usaha bercita -cita tinggi ini menjanjikan masa depan yang dibentuk oleh AI Advanceme

Google's Veo 2 dan Openai's Sora: Generator Video AI Mana yang memerintah Supreme? Kedua -dua platform menghasilkan video AI yang mengagumkan, tetapi kekuatan mereka terletak di kawasan yang berbeza. Perbandingan ini, menggunakan pelbagai arahan, mendedahkan alat yang paling sesuai dengan keperluan anda. T

Google Deepmind's Gencast: AI Revolusioner untuk Peramalan Cuaca Peramalan cuaca telah menjalani transformasi dramatik, bergerak dari pemerhatian asas kepada ramalan berkuasa AI yang canggih. Google Deepmind's Gencast, tanah air

Artikel ini membincangkan model AI yang melampaui chatgpt, seperti Lamda, Llama, dan Grok, menonjolkan kelebihan mereka dalam ketepatan, pemahaman, dan kesan industri. (159 aksara)


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

SublimeText3 Linux versi baharu
SublimeText3 Linux versi terkini

Muat turun versi mac editor Atom
Editor sumber terbuka yang paling popular

ZendStudio 13.5.1 Mac
Persekitaran pembangunan bersepadu PHP yang berkuasa

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

VSCode Windows 64-bit Muat Turun
Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft