Rangka Pantas
Siaran ini akan menunjukkan perkara berikut:
Cara Melaksanakan Tanya Sendiri Dengan Rantaian Carian
- Memasang Rangka Kerja
- Persekitaran Bangunan
- Mengimport Perpustakaan
- Membina Model Bahasa
- Menggunakan Bahasa Ekspresi LangChain
- Mengkonfigurasi Agen Pelaksana
- Menjalankan Ejen
- Menggunakan Ejen Tanya Sendiri
Bagaimana untuk Melaksanakan Self-Ask Dengan Rantaian Carian?
Tanya Diri ialah proses untuk menambah baik proses rantaian kerana ia memahami arahan dengan teliti. Rantaian memahami soalan dengan mengekstrak data tentang semua istilah penting daripada set data. Setelah model dilatih dan memahami pertanyaan, ia menjana respons kepada pertanyaan yang ditanya oleh pengguna.
Untuk mempelajari proses melaksanakan tanya sendiri dengan rantai carian dalam LangChain, hanya melalui panduan berikut:
Langkah 1: Memasang Rangka Kerja
Pertama sekali, mulakan proses dengan memasang proses LangChain menggunakan kod berikut dan dapatkan semua kebergantungan untuk proses tersebut:
pip pasang langchain
Selepas memasang LangChain, pasang ' google-search-results ” untuk mendapatkan hasil carian daripada Google menggunakan persekitaran OpenAI:
pip pasang openai google-search-results
Langkah 2: Persekitaran Membina
Setelah modul dan rangka kerja dipasang, sediakan persekitaran untuk OpenAI dan SerpAPi menggunakan API mereka menggunakan kod berikut. Import perpustakaan os dan getpass yang boleh digunakan untuk memasukkan kunci API daripada akaun masing-masing:
import awakimport 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
Selepas menyediakan persekitaran, hanya import perpustakaan yang diperlukan daripada kebergantungan LangChain seperti utiliti, ejen, llm dan lain-lain:
daripada langchain. llms import OpenAIdaripada langchain. utiliti import SerpAPIWrapper
daripada langchain. ejen . output_parser import SelfAskOutputParser
daripada langchain. ejen . format_scratchpad import format_log_to_str
daripada langchain import hab
daripada langchain. ejen import initialize_agent , alat
daripada langchain. ejen import Jenis Agen
Langkah 4: Membina Model Bahasa
Mendapatkan perpustakaan di atas diperlukan sepanjang proses kerana OpenAI() digunakan untuk mengkonfigurasi model bahasa. Gunakan kaedah SerpAPIWrapper() untuk mengkonfigurasi pembolehubah carian dan tetapkan alatan yang diperlukan untuk ejen melaksanakan semua tugas:
llm = OpenAI ( suhu = 0 )cari = SerpAPIWrapper ( )
alatan = [
alat (
nama = 'Jawapan Pertengahan' ,
fungsi = cari. lari ,
penerangan = 'berguna apabila anda perlu bertanya dengan carian' ,
)
]
Langkah 5: Menggunakan Bahasa Ekspresi LangChain
Bermula dengan mengkonfigurasi ejen menggunakan LangChain Expression Language (LCEL) dengan memuatkan model dalam pembolehubah segera:
segera = hab. tarik ( 'hwchase17/self-ask-with-search' )Tentukan pembolehubah lain yang boleh dilaksanakan untuk berhenti menjana teks dan mengawal panjang balasan:
llm_with_stop = llm. mengikat ( berhenti = [ ' \n Jawapan pertengahan:' ] )Sekarang, konfigurasikan ejen menggunakan Lambda yang merupakan platform tanpa pelayan dipacu peristiwa untuk menjana jawapan bagi soalan. Juga, konfigurasikan langkah yang diperlukan untuk melatih dan menguji model untuk mendapatkan hasil yang dioptimumkan menggunakan komponen yang dikonfigurasikan sebelum ini:
ejen = {'input' : lambda x: x [ 'input' ] ,
'agent_scratchpad' : lambda x: format_log_to_str (
x [ 'langkah_perantaraan' ] ,
awalan_pemerhatian = ' \n Jawapan pertengahan: ' ,
llm_prefix = '' ,
) ,
} | segera | llm_with_stop | SelfAskOutputParser ( )
Langkah 6: Mengkonfigurasi Pelaksana Ejen
Sebelum menguji kaedah, hanya import perpustakaan AgentExecutor dari LangChain untuk menjadikan ejen responsif:
daripada langchain. ejen import AgenPelaksanaTentukan pembolehubah agent_executor dengan memanggil kaedah AgentExecutor() dan menggunakan komponen sebagai hujahnya:
ejen_pelaksana = AgenPelaksana ( ejen = ejen , alatan = alatan , bertele-tele = betul )Langkah 7: Menjalankan Ejen
Sebaik sahaja pelaksana ejen dikonfigurasikan, cukup uji dengan memberikan soalan/prompt dalam pembolehubah input:
ejen_pelaksana. menyeru ( { 'input' : 'Siapakah juara Terbuka A.S. lelaki' } )Melaksanakan kod di atas telah membalas dengan nama Juara Terbuka AS dalam output iaitu Dominic Thiem:
Langkah 8: Menggunakan Ejen Tanya Sendiri
Selepas mendapat maklum balas daripada ejen, gunakan SELF_ASK_WITH_SEARCH ejen dengan pertanyaan dalam kaedah run():
self_ask_with_search = initialize_agent (alatan , llm , ejen = Jenis Agen. SELF_ASK_WITH_SEARCH , bertele-tele = betul
)
self_ask_with_search. lari (
'Apakah kampung halaman Dominic Thiem Juara Dunia Terbuka AS'
)
Tangkapan skrin berikut memaparkan bahawa ejen tanya sendiri mengekstrak maklumat tentang setiap istilah penting daripada set data. Sebaik sahaja ia mengumpulkan semua maklumat tentang pertanyaan dan memahami soalan, ia hanya menjana jawapan. Soalan yang ditanya sendiri oleh ejen adalah:
- Siapa Dominic Thiem?
- Apakah kampung halaman Dominic Thiem?
Selepas mendapat jawapan kepada soalan-soalan ini, ejen telah menghasilkan jawapan kepada soalan asal iaitu “ Wiener Neustadt, Austria ”:
Itu sahaja tentang proses melaksanakan tanya sendiri dengan rantai carian menggunakan rangka kerja LangChain.
Kesimpulan
Untuk melaksanakan tanya sendiri dengan carian dalam LangChain, cuma pasang modul yang diperlukan seperti google-search-results untuk mendapatkan hasil daripada ejen. Selepas itu, sediakan persekitaran menggunakan kunci API daripada akaun OpenAI dan SerpAPi untuk memulakan proses. Konfigurasikan ejen dan bina model dengan model tanya sendiri untuk mengujinya menggunakan kaedah AgentExecutor().