Rangka Pantas
Siaran ini akan menunjukkan perkara berikut:
Apakah itu Agen dalam Pemprosesan Bahasa Asli (NLP)
Bermula Dengan Ejen di LangChain
- Memasang Rangka Kerja
- Konfigurasikan Model Sembang
- Ejen Bangunan
- Meminta Ejen
- Konfigurasi Alat Ejen
- Menguji Ejen
Apakah itu Agen dalam Pemprosesan Bahasa Asli (NLP)?
Ejen ialah komponen penting dalam aplikasi bahasa semula jadi dan mereka menggunakan Natural Language Understanding (NLU) untuk memahami pertanyaan. Ejen ini ialah program yang bertindak seperti templat perbualan untuk berinteraksi dengan manusia menggunakan urutan tugas. Ejen menggunakan berbilang alatan yang boleh dipanggil oleh ejen untuk melakukan berbilang tindakan atau menentukan tugas seterusnya untuk dilaksanakan.
Bermula Dengan Ejen di LangChain
Mulakan proses membina ejen untuk berbual dengan manusia dengan mengekstrak keluaran menggunakan ejen dalam LangChain. Untuk mengetahui proses bermula dengan ejen di LangChain, cuma ikuti langkah yang disenaraikan di bawah:
Langkah 1: Memasang Rangka Kerja
Mula-mula, mulakan dengan proses memasang rangka kerja LangChain menggunakan “ pip ” perintah untuk mendapatkan kebergantungan yang diperlukan untuk menggunakan ejen:
pip pasang langchain
Pasang modul OpenAI untuk membina LLM dan gunakannya untuk mengkonfigurasi ejen dalam LangChain:
pip pasang openai
Sediakan persekitaran untuk modul OpenAI menggunakan kunci APInya daripada akaun dengan menjalankan kod berikut:
import awakimport getpass
awak . lebih kurang [ 'OPENAI_API_KEY' ] = getpass . getpass ( 'OpenAI API Key:' )
Langkah 2: Konfigurasikan Model Sembang
Import modul ChatOpenAI daripada LangChain untuk membina LLM menggunakan fungsinya:
daripada langchain. chat_models import ChatOpenAIllm = ChatOpenAI ( suhu = 0 )
Import alatan untuk ejen untuk mengkonfigurasi tugas atau tindakan yang perlu dilakukan oleh ejen. Kod berikut menggunakan kaedah get_word_length() untuk mendapatkan panjang perkataan yang disediakan oleh pengguna:
daripada langchain. ejen import alat@ alat
def get_word_length ( perkataan: str ) - > int :
'''mendapat panjang perkataan'''
kembali sahaja ( perkataan )
alatan = [ get_word_length ]
Konfigurasikan templat atau struktur untuk model sembang untuk mencipta antara muka untuk mengadakan sembang:
daripada langchain. gesaan import ChatPromptTemplate , MessagesPlaceholdersegera = ChatPromptTemplate. from_messages ( [
( 'sistem' , 'pembantu anda agak hebat, tetapi memerlukan penambahbaikan dalam mengira panjang' ) ,
( 'pengguna' , '{input}' ) ,
MessagesPlaceholder ( nama_pembolehubah = 'agent_scratchpad' ) ,
] )
Langkah 3: Ejen Bangunan
Import perpustakaan alatan untuk membina LLM dengan alatan menggunakan fungsi OpenAI daripada modul LangChain:
daripada langchain. alatan . render import format_tool_to_openai_functionllm_with_tools = llm. mengikat (
fungsi = [ format_tool_to_openai_function ( t ) untuk t dalam alatan ]
)
Konfigurasikan ejen menggunakan ejen fungsi OpenAI untuk menggunakan penghurai output untuk menetapkan urutan tindakan/tugas:
daripada langchain. ejen . format_scratchpad import format_to_openai_functionsdaripada langchain. ejen . output_parser import OpenAIFunctionsAgentOutputParser
ejen = {
'input' : lambda x: x [ 'input' ] ,
'agent_scratchpad' : lambda x: format_to_openai_functions ( x [ 'langkah_perantaraan' ] )
} | segera | llm_with_tools | OpenAIFunctionsAgentOutputParser ( )
Langkah 4: Meminta Ejen
Langkah seterusnya menggunakan fungsi invoke() untuk memanggil ejen menggunakan argumen input dan intermediate_steps:
ejen. menyeru ( {'input' : 'berapa banyak huruf dalam perkataan baik' ,
'langkah_perantaraan' : [ ]
} )
Langkah 5: Konfigurasi Alat Ejen
Selepas itu, hanya import perpustakaan AgentFinish untuk mengkonfigurasi intermediate_steps dengan menyepadukan semua langkah dalam urutan untuk menyelesaikan aktiviti:
daripada langchain. skema . ejen import AgenSelesailangkah_perantaraan = [ ]
sementara betul :
pengeluaran = ejen. menyeru ( {
'input' : 'huruf dalam baik' ,
'langkah_perantaraan' : langkah_perantaraan
} )
jika isinstance ( pengeluaran , AgenSelesai ) :
keputusan akhir = pengeluaran. return_values [ 'pengeluaran' ]
rehat
lain :
cetak ( pengeluaran. alat , pengeluaran. input_alat )
alat = {
'dapatkan_panjang_kata' : get_word_length
} [ pengeluaran. alat ]
pemerhatian = alat. lari ( pengeluaran. input_alat )
langkah_perantaraan. tambahkan ( ( pengeluaran , pemerhatian ) )
cetak ( keputusan akhir )
Langkah 6: Menguji Ejen
Sekarang, laksanakan ejen dengan memanggil kaedah AgentExecutor() selepas mengimport perpustakaannya daripada LangChain:
daripada langchain. ejen import AgenPelaksanaejen_pelaksana = AgenPelaksana ( ejen = ejen , alatan = alatan , bertele-tele = betul )
Pada akhirnya, panggil agent_executor dengan argumen input untuk memasukkan pertanyaan untuk ejen:
ejen_pelaksana. menyeru ( { 'input' : 'berapa banyak huruf dalam perkataan baik' } )Ejen telah memaparkan jawapan kepada soalan yang disediakan dalam hujah input selepas menamatkan rantaian:
Itu sahaja tentang bermula dengan ejen dalam rangka kerja LangChain.
Kesimpulan
Untuk bermula dengan ejen di LangChain, cuma pasang modul yang diperlukan untuk menyediakan persekitaran menggunakan kunci API OpenAI. Selepas itu, konfigurasikan model sembang dengan menetapkan templat gesaan untuk membina ejen dengan urutan langkah perantaraan. Setelah ejen dikonfigurasikan, hanya bina alat dengan menentukan tugas selepas memberikan rentetan input kepada pengguna. Blog ini telah menunjukkan proses menggunakan ejen dalam LangChain.