Rumah >Peranti teknologi >AI >Membina kain yang agentik dengan phidata
Apabila membina aplikasi menggunakan model bahasa yang besar (LLMS), kualiti respons sangat bergantung kepada keupayaan perancangan dan pemikiran yang berkesan untuk tugas pengguna yang diberikan. Walaupun teknik kain tradisional berkuasa, menggabungkan aliran kerja agentik dapat meningkatkan keupayaan sistem untuk memproses dan bertindak balas terhadap pertanyaan.
Dalam artikel ini, anda akan membina sistem RAG yang agentik dengan komponen memori menggunakan rangka kerja agensi sumber terbuka Phidata, menunjukkan cara menggabungkan pangkalan data vektor iaitu, qdrant, model embedding, dan agen pintar untuk hasil yang lebih baik.
Artikel ini diterbitkan sebagai sebahagian daripada Blogathon Sains Data.
Ejen dalam konteks AI adalah komponen yang direka untuk mencontohi keupayaan pemikiran dan perancangan seperti manusia. Komponen Ejen terdiri daripada:
RAG (Generasi Pengambilan Pengambilan) menggabungkan pengambilan pengetahuan dengan keupayaan LLM. Apabila kita mengintegrasikan ejen ke dalam sistem RAG, kita membuat aliran kerja yang kuat yang boleh:
Perbezaan utama antara kain tradisional dan kain ragut terletak pada lapisan membuat keputusan yang menentukan cara memproses setiap pertanyaan dan berinteraksi dengan alat untuk mendapatkan maklumat masa nyata.
Sekarang kita tahu, ada perkara seperti Rag Agentic, bagaimana kita membinanya? Mari pecahkannya.
Phidata adalah rangka kerja sumber terbuka yang direka untuk membina, memantau, dan menggunakan aliran kerja agentik. Ia menyokong ejen AI multimodal yang dilengkapi dengan memori, pengetahuan, alat, dan keupayaan pemikiran. Senibina model-agnostiknya memastikan keserasian dengan pelbagai model bahasa besar (LLMS), yang membolehkan pemaju mengubah mana-mana LLM menjadi agen AI berfungsi. Di samping itu, Phidata membolehkan anda menggunakan aliran kerja ejen anda menggunakan pendekatan Cloud (BYOC) anda sendiri, yang menawarkan fleksibiliti dan kawalan ke atas sistem AI anda.
Ciri-ciri utama Phidata termasuk keupayaan untuk membina pasukan ejen yang bekerjasama untuk menyelesaikan masalah yang rumit, ejen ejen yang mesra pengguna untuk interaksi lancar (Phidata Playground), dan sokongan terbina dalam untuk generasi pengambilan semula aggenik (RAG) dan output berstruktur. Rangka kerja ini juga menekankan pemantauan dan penyahpepijatan, menyediakan alat untuk memastikan aplikasi AI yang mantap dan boleh dipercayai.
Terokai kuasa transformatif sistem berasaskan ejen dalam aplikasi dunia nyata, memanfaatkan Phidata untuk meningkatkan pengambilan keputusan dan automasi tugas.
Dengan mengintegrasikan alat seperti Yfinance, Phidata membolehkan penciptaan ejen yang boleh mengambil harga saham masa nyata, menganalisis data kewangan, dan meringkaskan cadangan penganalisis. Ejen sedemikian membantu pelabur dan penganalisis dalam membuat keputusan yang tepat dengan memberikan pandangan pasaran terkini.
Phidata juga membantu membangunkan ejen yang mampu mendapatkan maklumat masa nyata dari web menggunakan alat carian seperti DuckDuckgo, Serpapi, atau Serper. Ejen-ejen ini dapat menjawab pertanyaan pengguna dengan mendapatkan data terkini, menjadikannya berharga untuk tugas penyelidikan dan pengumpulan maklumat.
Phidata juga menyokong keupayaan multimodal, membolehkan penciptaan ejen yang menganalisis imej, video, dan audio. Ejen multimodal ini boleh mengendalikan tugas-tugas seperti pengiktirafan imej, penjanaan teks-ke-imej, transkripsi audio, dan analisis video, yang menawarkan penyelesaian serba boleh di pelbagai domain. Untuk tugas teks-ke-ke-ke-video, alat seperti Dall-E dan Replikasi boleh diintegrasikan, manakala untuk tugas-ke-teks dan tugas video-ke-teks, LLM multimodal seperti GPT-4, Gemini 2.0, Claude AI, dan yang lain boleh digunakan.
Bayangkan anda mempunyai dokumentasi untuk permulaan anda dan ingin membuat pembantu sembang yang dapat menjawab soalan pengguna berdasarkan dokumentasi itu. Untuk menjadikan chatbot anda lebih pintar, ia juga perlu mengendalikan data masa nyata. Biasanya, menjawab pertanyaan data masa nyata memerlukan sama ada membina semula asas pengetahuan atau melatih semula model.
Di sinilah agen bermain. Dengan menggabungkan asas pengetahuan dengan ejen, anda boleh membuat penyelesaian RAG (Generasi Retrieval-Augmented Generasi) yang tidak hanya meningkatkan keupayaan chatbot untuk mendapatkan jawapan yang tepat tetapi juga meningkatkan prestasi keseluruhannya.
Kami mempunyai tiga komponen utama yang bersatu untuk membentuk asas pengetahuan kami. Pertama, kami mempunyai sumber data, seperti halaman dokumentasi, PDF, atau mana -mana laman web yang ingin kami gunakan. Kemudian kami mempunyai qdrant, yang merupakan pangkalan data vektor kami - ia seperti sistem penyimpanan pintar yang membantu kami mencari maklumat yang sama dengan cepat. Dan akhirnya, kami mempunyai model penyembuhan yang menukarkan teks kami ke dalam format yang dapat difahami oleh komputer dengan lebih baik. Ketiga komponen ini memasuki asas pengetahuan kita, yang seperti otak sistem kita.
Sekarang kita menentukan objek ejen dari Phidata.
Ejen itu disambungkan kepada tiga komponen:
Nota: Di sini Pangkalan Pengetahuan dan DuckDuckGo kedua -duanya akan bertindak sebagai alat, dan kemudian berdasarkan tugas atau pertanyaan pengguna ejen akan mengambil tindakan pada alat yang hendak digunakan untuk menghasilkan respons. Model Embedding juga terbuka secara lalai, jadi kami akan menggunakan OpenAI-GPT-4O sebagai model penalaran.
Mari bina kod ini.
Sudah tiba masanya untuk membina ejen Penolong DokumenAnalyzer yang boleh berinteraksi dengan Maklumat Peribadi (laman web) dari pangkalan pengetahuan dan DuckDuckgo tanpa adanya konteks dalam asas pengetahuan.
Untuk membina aliran kerja Agentic Rag kita perlu memasang beberapa perpustakaan yang termasuk:
PIP Pasang Phidata Google-Generativeai Duckduckgo-Search QDrant-Client
Dalam langkah ini, kami akan menubuhkan pembolehubah persekitaran dan mengumpulkan kelayakan API yang diperlukan untuk menjalankan kes penggunaan ini. Untuk kunci API OpenAI anda, anda boleh mendapatkannya dari: https: //platform.openai.com/. Buat akaun anda dan buat kunci baru.
dari phi.knowledge.Website Import Laman Web KnowledgeBase dari phi.vectordb.qdrant import qdrant dari ejen import Phi.Agent dari phi.storage.agent.sqlite import sqlagentstorage dari phi.model.openai import openaichat dari phi.tools.duckduckgo import Duckduckgo Import OS os.environ ['OpenAI_API_Key'] = "<shemari>"</shemari>
Anda kini perlu memulakan klien QDrant dengan menyediakan nama pengumpulan, URL, dan API untuk pangkalan data vektor anda. Kedai pangkalan data QDrant dan mengindeks pengetahuan dari Laman Web, yang membolehkan ejen melakukan pengambilan maklumat yang relevan berdasarkan pertanyaan pengguna. Langkah ini menetapkan lapisan data untuk ejen anda:
Collection_name = "agentic-rag" Qdrant_url = "<shapping>" Qdrant_api_key = "<shemari>" vector_db = qdrant ( koleksi = koleksi_name, url = qdrant_url, api_key = qdrant_api_key, )</shemari></shapping>
Di sini, anda akan menentukan sumber -sumber yang mana ejen itu akan menarik pengetahuannya. Dalam contoh ini, kami sedang membina ejen penganalisis dokumen yang boleh membuat pekerjaan kami mudah menjawab soalan dari laman web. Kami akan menggunakan URL Laman Web Dokumen QDrant untuk pengindeksan.
Objek pengetahuan laman web berinteraksi dengan pangkalan data vektor QDrant untuk menyimpan pengetahuan yang diindeks dari URL yang disediakan. Ia kemudian dimuatkan ke dalam asas pengetahuan untuk mendapatkan semula oleh ejen.
Nota: Ingat kami menggunakan fungsi beban untuk mengindeks sumber data ke pangkalan pengetahuan. Ini perlu dijalankan sekali sahaja untuk setiap nama koleksi, jika anda menukar nama koleksi dan ingin menambah data baru, hanya masa itu menjalankan fungsi beban sekali lagi.
Url = "https://qdrant.tech/documentation/overview/" Knowledge_base = Laman web pengetahuanBase ( url = [url], max_links = 10, vector_db = vector_db, ) pengetahuan_base.load () # hanya dijalankan sekali, setelah koleksi dibuat, komen ini
Ejen mengkonfigurasi LLM (GPT-4) untuk penjanaan tindak balas, asas pengetahuan untuk mendapatkan maklumat, dan sistem storan SQLite untuk mengesan interaksi dan tindak balas sebagai ingatan. Ia juga menetapkan alat carian DuckDuckGo untuk carian web tambahan apabila diperlukan. Persediaan ini membentuk ejen AI teras yang mampu menjawab pertanyaan.
Kami akan menetapkan show_tool_calls untuk benar untuk memerhatikan pelaksanaan runtime backend dan menjejaki sama ada pertanyaan diarahkan ke pangkalan pengetahuan atau alat carian DuckDuckGo. Apabila anda menjalankan sel ini, ia akan membuat fail pangkalan data di mana semua mesej disimpan dengan membolehkan penyimpanan memori dan menetapkan add_history_to_messages menjadi benar.
ejen = ejen ( model = openaichat (), pengetahuan = pengetahuan_base, Alat = [DuckDuckGo ()], show_tool_calls = benar, markdown = benar, penyimpanan = sqlagentstorage (table_name = "agentic_rag", db_file = "agents_rag.db"), add_history_to_messages = benar, )
Akhirnya, ejen bersedia untuk memproses pertanyaan pengguna. Dengan menghubungi fungsi print_response (), anda lulus dalam pertanyaan pengguna, dan ejen bertindak balas dengan mendapatkan maklumat yang relevan dari asas pengetahuan dan memprosesnya. Jika pertanyaan bukan dari pangkalan pengetahuan, ia akan menggunakan alat carian. Mari kita perhatikan perubahan.
agen.print_response ( "Apakah teknik pengindeksan yang disebut dalam dokumen itu?", stream = benar )
agen.print_response ( "Siapa Virat Kohli?", stream = benar )
Temui kelebihan utama Agentic Rag, di mana ejen pintar dan graf hubungan bergabung untuk mengoptimumkan pengambilan data dan membuat keputusan.
Melaksanakan RAG Agentik dengan komponen memori menyediakan penyelesaian yang boleh dipercayai untuk membina sistem pengambilan pengetahuan pintar dan enjin carian. Dalam artikel ini, kami meneroka apa ejen dan kain, dan bagaimana untuk menggabungkannya. Dengan gabungan Rag Agentic, routing pertanyaan bertambah baik disebabkan oleh keupayaan membuat keputusan ejen.
A. Ya, Phidata dibina untuk menyokong agen AI multimodal yang mampu mengendalikan tugas yang melibatkan imej, video, dan audio. Ia mengintegrasikan alat seperti Dall-E dan meniru untuk generasi teks-ke-ke-video, dan menggunakan LLM multimodal seperti GPT-4, Gemini 2.0, dan Claude AI untuk tugas-ke-teks dan video-ke-teks.
S2. Alat dan kerangka apa yang tersedia untuk membangunkan sistem RAG yang agentik?A. Membangunkan sistem generasi pengambilan semula aggenik (RAG) melibatkan menggunakan pelbagai alat dan kerangka yang memudahkan integrasi ejen autonomi dengan keupayaan pengambilan dan penjanaan. Berikut adalah beberapa alat dan kerangka yang tersedia untuk tujuan ini: Langchain, Llamaindex, Phidata, Crewai, dan Autogen.
Q3. Bolehkah Phidata diintegrasikan dengan alat luaran dan pangkalan pengetahuan?A. Ya, Phidata membolehkan integrasi pelbagai alat dan pangkalan pengetahuan. Sebagai contoh, ia boleh berhubung dengan alat data kewangan seperti YFINANCE untuk analisis stok masa nyata atau alat carian web seperti DuckDuckGo untuk mendapatkan maklumat terkini. Fleksibiliti ini membolehkan penciptaan agen khusus yang disesuaikan dengan kes penggunaan tertentu.
Media yang ditunjukkan dalam artikel ini tidak dimiliki oleh Analytics Vidhya dan digunakan atas budi bicara penulis.
Atas ialah kandungan terperinci Membina kain yang agentik dengan phidata. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!