Bagaimana untuk Meniru Sistem MRKL Menggunakan Ejen dalam LangChain?

Bagaimana Untuk Meniru Sistem Mrkl Menggunakan Ejen Dalam Langchain



Sistem Penaakulan, Pengetahuan, dan Bahasa Modular (MRKL) ialah seni bina yang boleh mengekstrak jawapan dengan alasan pengesahannya. Ia menyepadukan Model Bahasa, Penaakulan Diskret, dan sumber pengetahuan Luaran. Model bahasa menghasilkan teks dalam bahasa manusia mengikut pertanyaan yang ditanya oleh pengguna. MRKL (sebutan: keajaiban) menambah penaakulan semasa menghasilkan jawapan untuk menjadikan jawapan tepat dan sah.

Rangka Pantas

Siaran ini akan menunjukkan perkara berikut:







Cara Meniru Sistem MRKL Menggunakan Ejen dalam LangChain



Kesimpulan



Bagaimana untuk Meniru Sistem MRKL Menggunakan Ejen dalam LangChain?

LangChain membolehkan pengguna membina ejen yang boleh digunakan untuk melaksanakan pelbagai tugas untuk model bahasa atau chatbots. Ejen menyimpan kerja mereka dengan semua langkah dalam memori yang dilampirkan pada model bahasa. Menggunakan templat ini, ejen boleh meniru kerja mana-mana sistem seperti MRKL untuk mendapatkan hasil yang dioptimumkan tanpa perlu membinanya semula.





Untuk mengetahui proses replikasi sistem MRKL menggunakan ejen dalam LangChain, sila ikuti langkah yang disenaraikan:

Langkah 1: Memasang Rangka Kerja

Pertama sekali, pasang modul eksperimen LangChain menggunakan pip dengan arahan eksperimen langchain:



pip install langchain-experimental

Pasang modul OpenAI untuk membina model bahasa untuk sistem MRKL:

pip pasang openai

Langkah 2: Menetapkan Persekitaran OpenAI

Import perpustakaan os dan getpass untuk mengakses operasi untuk menggesa pengguna menyediakan kunci API untuk akaun OpenAI dan SerpAPi:

import awak

import getpass

awak . lebih kurang [ 'OPENAI_API_KEY' ] = getpass . getpass ( 'OpenAI API Key:' )

awak . lebih kurang [ 'SERPAPI_API_KEY' ] = getpass . getpass ( 'Kunci API Serpapi:' )

Langkah 3: Mengimport Perpustakaan

Gunakan kebergantungan daripada LangChain untuk mengimport perpustakaan yang diperlukan untuk membina model bahasa, alatan dan ejen:

daripada langchain. rantai import LLMMathChain

daripada langchain. llms import OpenAI

daripada langchain. utiliti import SerpAPIWrapper

daripada langchain. utiliti import SQLDatabase

daripada langchain_experimental. sql import SQLDatabaseChain

daripada langchain. ejen import initialize_agent , alat

daripada langchain. ejen import Jenis Agen

Langkah 4: Membina Pangkalan Data

MRKL menggunakan sumber pengetahuan luaran untuk mengekstrak maklumat daripada data. Siaran ini menggunakan SQLite yang boleh dimuat turun menggunakan ini panduan untuk membina pangkalan data. Perintah berikut mengesahkan proses memuat turun SQLite dengan memaparkan versi yang dipasang:

sqlite3

Gunakan arahan berikut menuju ke dalam direktori untuk mencipta pangkalan data menggunakan gesaan arahan:

cd Desktop

cd mydb

sqlite3 Chinook. db

Muat turun Pangkalan data fail dan simpan dalam direktori untuk menggunakan arahan berikut untuk mencipta ' .db ” fail:

. membaca Chinook_Sqlite. sql

PILIH * DARI HAD Artis 10 ;

Langkah 5: Memuat naik Pangkalan Data

Setelah pangkalan data berjaya dibuat, muat naik fail dalam kerjasama Google:

daripada google. ET AL import fail

dimuat naik = fail. muat naik ( )

Pengguna boleh mengakses fail yang dimuat naik pada buku nota untuk menyalin laluannya daripada menu lungsur turunnya:

Langkah 6: Mengkonfigurasi Alat

Selepas membina pangkalan data, konfigurasikan model bahasa, alatan dan rantai untuk ejen:

cari = SerpAPIWrapper ( )
llm = OpenAI ( suhu = 0 )
llm_math_chain = LLMMathChain ( llm = llm , bertele-tele = betul )
db = SQLDatabase. from_uri ( 'sqlite:///../../../../../content/Chinook.db' )
db_chain = SQLDatabaseChain. from_llm ( llm , db , bertele-tele = betul )
alatan = [
alat (
nama = 'Cari' ,
fungsi = cari. lari ,
penerangan = 'Tanya gesaan yang disasarkan untuk mendapatkan jawapan tentang hal ehwal baru-baru ini'
) ,
alat (
nama = 'Kalkulator' ,
fungsi = llm_math_chain. lari ,
penerangan = 'berguna untuk menjawab/menyelesaikan masalah matematik'
) ,
alat (
nama = 'FooBar DB' ,
fungsi = db_chain. lari ,
penerangan = 'berguna untuk menjawab pertanyaan daripada pangkalan data dan soalan input mesti mempunyai konteks yang lengkap'
)
]
  • Takrifkan llm pembolehubah menggunakan OpenAI() kaedah untuk mendapatkan model bahasa.
  • The cari ialah alat yang memanggil SerpAPIWrapper() kaedah untuk mengakses persekitarannya.
  • The LLMMathChain() kaedah digunakan untuk mendapatkan jawapan berkaitan masalah matematik.
  • Takrifkan db pembolehubah dengan laluan fail di dalam SQLDatabase() kaedah.
  • The SQLDatabaseChain() kaedah boleh digunakan untuk mendapatkan maklumat daripada pangkalan data.
  • Tentukan alatan seperti cari , kalkulator , dan FooBar DB untuk membina ejen untuk mengekstrak data daripada sumber yang berbeza:

Langkah 7: Membina & Menguji Ejen

Mulakan sistem MRKL menggunakan alat, llm, dan ejen untuk mendapatkan jawapan kepada soalan yang ditanya oleh pengguna:

mrkl = initialize_agent ( alatan , llm , ejen = Jenis Agen. ZERO_SHOT_REACT_DESCRIPTION , bertele-tele = betul )

Jalankan sistem MRKL menggunakan kaedah run() dengan soalan sebagai hujahnya:

mrkl. lari ( 'Apakah umur Leo DiCaprio dan teman wanitanya sekarang juga memberitahu perbezaan umur mereka' )

Pengeluaran

Ejen telah menghasilkan jawapan akhir dengan laluan lengkap yang digunakan oleh sistem untuk mengekstrak jawapan akhir:

Langkah 8: Replika Sistem MRKL

Sekarang, gunakan sahaja mrkl kata kunci dengan kaedah run() untuk mendapatkan jawapan daripada sumber yang berbeza seperti pangkalan data:

mrkl. lari ( 'Siapakah nama penuh artis yang albumnya berjudul 'The Storm Before the Calm' dikeluarkan baru-baru ini dan adakah mereka dalam pangkalan data FooBar juga album mereka yang mana ada dalam pangkalan data' )

Ejen telah menukar soalan secara automatik ke dalam pertanyaan SQL untuk mendapatkan jawapan daripada pangkalan data. Ejen mencari sumber yang betul untuk mendapatkan jawapan dan kemudian mengumpulkan pertanyaan untuk mengekstrak maklumat:

Langkah 9: Menggunakan ChatModel

Pengguna hanya boleh menukar model bahasa dengan menggunakan kaedah ChatOpenAI() untuk menjadikannya ChatModel dan menggunakan sistem MRKL dengannya:

daripada langchain. chat_models import ChatOpenAI

cari = SerpAPIWrapper ( )
llm = ChatOpenAI ( suhu = 0 )
llm1 = OpenAI ( suhu = 0 )
llm_math_chain = LLMMathChain ( llm = llm1 , bertele-tele = betul )
db = SQLDatabase. from_uri ( 'sqlite:///../../../../../content/Chinook.db' )
db_chain = SQLDatabaseChain. from_llm ( llm1 , db , bertele-tele = betul )
alatan = [
alat (
nama = 'Cari' ,
fungsi = cari. lari ,
penerangan = 'Tanya gesaan yang disasarkan untuk mendapatkan jawapan tentang hal ehwal baru-baru ini'
) ,
alat (
nama = 'Kalkulator' ,
fungsi = llm_math_chain. lari ,
penerangan = 'berguna untuk menjawab/menyelesaikan masalah matematik'
) ,
alat (
nama = 'FooBar DB' ,
fungsi = db_chain. lari ,
penerangan = 'berguna untuk menjawab pertanyaan daripada pangkalan data dan soalan input mesti mempunyai konteks yang lengkap'
)
]

Langkah 10: Uji Ejen MRKL

Selepas itu, bina ejen dan mulakan dalam pembolehubah mrkl menggunakan kaedah initialize_agent(). Tambah parameter kaedah untuk menyepadukan komponen seperti alat, llm, ejen dan verbose untuk mendapatkan proses lengkap dalam output:

mrkl = initialize_agent ( alatan , llm , ejen = Jenis Agen. CHAT_ZERO_SHOT_REACT_DESCRIPTION , bertele-tele = betul )

Jalankan soalan dengan menjalankan sistem mrkl seperti yang dipaparkan dalam tangkapan skrin berikut:

mrkl. lari ( 'Siapa teman wanita Leo DiCaprio? Berapakah umur mereka sekarang' )

Pengeluaran

Coretan berikut memaparkan jawapan akhir yang diekstrak oleh ejen:

Langkah 11: Replika Sistem MRKL

Gunakan sistem MRKL dengan memanggil kaedah run() dengan soalan dalam bahasa semula jadi untuk mengekstrak maklumat daripada pangkalan data:

mrkl. lari ( 'Siapakah nama penuh artis yang albumnya berjudul 'The Storm Before the Calm' dikeluarkan baru-baru ini dan adakah mereka dalam pangkalan data FooBar juga album mereka yang mana ada dalam pangkalan data' )

Pengeluaran

Ejen telah memaparkan jawapan akhir yang diekstrak daripada pangkalan data seperti yang dipaparkan dalam tangkapan skrin berikut:

Itu sahaja tentang proses mereplikasi sistem MRKL menggunakan ejen di LangChain:

Kesimpulan

Untuk meniru sistem MRKL menggunakan ejen dalam LangChain, pasang modul untuk mendapatkan kebergantungan untuk mengimport perpustakaan. Perpustakaan dikehendaki membina model bahasa atau model sembang untuk mendapatkan jawapan daripada pelbagai sumber menggunakan alatan. Ejen dikonfigurasikan untuk menggunakan alat untuk mengekstrak output daripada sumber yang berbeza seperti internet, pangkalan data, dll. Panduan ini telah menghuraikan proses replikasi sistem MRKL menggunakan ejen dalam LangChain.