Bagaimana untuk Menambah Memori pada Agen Fungsi OpenAI dalam LangChain?

Bagaimana Untuk Menambah Memori Pada Agen Fungsi Openai Dalam Langchain



LangChain ialah rangka kerja yang mengandungi kebergantungan untuk membina Model Bahasa Besar atau LLM. Ia juga menyediakan alat untuk membina ejen untuk melaksanakan semua langkah perantaraan daripada mendapatkan pertanyaan daripada pengguna kepada mengambil jawapannya. OpenAI ialah persekitaran yang menyediakan output yang boleh dibaca dan berstruktur daripada internet menggunakan 'hasil carian-google' modul.

Rangka Pantas

Siaran ini akan menunjukkan perkara berikut:

Bagaimana untuk Menambah Memori pada Agen Fungsi OpenAI dalam LangChain?

OpenAI ialah organisasi Kecerdasan Buatan (AI) yang ditubuhkan pada 2015 dan merupakan organisasi bukan untung pada mulanya. Microsoft telah melabur banyak kekayaan sejak 2020 kerana Pemprosesan Bahasa Asli (NLP) dengan AI telah berkembang pesat dengan chatbots dan model bahasa.







Membina ejen OpenAI membolehkan pembangun mendapatkan hasil yang lebih mudah dibaca dan tepat sasaran daripada internet. Menambah ingatan kepada ejen membolehkan mereka memahami konteks sembang dengan lebih baik dan menyimpan perbualan sebelumnya dalam ingatan mereka juga. Untuk mengetahui proses menambah memori pada ejen fungsi OpenAI dalam LangChain, hanya melalui langkah berikut:



Langkah 1: Memasang Rangka Kerja

Pertama sekali, pasang kebergantungan LangChain daripada “langchain-eksperimen” rangka kerja menggunakan kod berikut:



pip pasang langchain - percubaan





Pasangkan 'hasil carian-google' modul untuk mendapatkan hasil carian daripada pelayan Google:

pip pasang google - cari - keputusan



Juga, pasang modul OpenAI yang boleh digunakan untuk membina model bahasa dalam LangChain:

pip pasang openai

Langkah 2: Menyediakan Persekitaran

Selepas mendapat modul, sediakan persekitaran menggunakan kekunci API daripada OpenAI dan SerpAPi akaun:

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:' )

Jalankan kod di atas untuk memasukkan kunci API untuk mengakses kedua-dua persekitaran dan tekan enter untuk mengesahkan:

Langkah 3: Mengimport Perpustakaan

Sekarang setelah persediaan selesai, gunakan kebergantungan yang dipasang daripada LangChain untuk mengimport perpustakaan yang diperlukan untuk membina memori dan ejen:

daripada langchain. rantai import LLMMathChain
daripada langchain. llms import OpenAI
#dapatkan perpustakaan untuk mencari daripada Google melalui internet
daripada langchain. utiliti import SerpAPIWrapper
daripada langchain. utiliti import SQLDatabase
daripada langchain_experimental. sql import SQLDatabaseChain
#dapatkan perpustakaan untuk membina alatan untuk memulakan ejen
daripada langchain. ejen import Jenis Agen , alat , initialize_agent
daripada langchain. chat_models import ChatOpenAI

Langkah 4: Membina Pangkalan Data

Untuk meneruskan panduan ini, kami perlu membina pangkalan data dan menyambung kepada ejen untuk mengeluarkan jawapan daripadanya. Untuk membina pangkalan data, ia diperlukan untuk memuat turun SQLite menggunakan ini panduan dan sahkan pemasangan menggunakan arahan berikut:

sqlite3

Menjalankan arahan di atas dalam Terminal Windows memaparkan versi SQLite yang dipasang (3.43.2):

Selepas itu, hanya pergi ke direktori pada komputer anda di mana pangkalan data akan dibina dan disimpan:

cd Desktop
cd mydb
sqlite3 Chinook. db

Pengguna hanya boleh memuat turun kandungan pangkalan data daripada ini pautan dalam direktori dan laksanakan arahan berikut untuk membina pangkalan data:

. membaca Chinook_Sqlite. sql
PILIH * DARIPADA HAD Artis 10 ;

Pangkalan data telah berjaya dibina dan pengguna boleh mencari data daripadanya menggunakan pertanyaan yang berbeza:

Langkah 5: Memuat naik Pangkalan Data

Setelah pangkalan data berjaya dibina, muat naik fail “.db” fail ke Google Collaboratory menggunakan kod berikut:

daripada google. ET AL import fail
dimuat naik = fail. muat naik ( )

Pilih fail daripada sistem tempatan dengan mengklik pada “Pilih Fail” butang selepas melaksanakan kod di atas:

Setelah fail dimuat naik, hanya salin laluan fail yang akan digunakan dalam langkah seterusnya:

Langkah 6: Mengkonfigurasi Model Bahasa

Bina model bahasa, rantai, alatan dan rantai menggunakan kod berikut:

llm = ChatOpenAI ( suhu = 0 , model = 'gpt-3.5-turbo-0613' )
cari = SerpAPIWrapper ( )
llm_math_chain = LLMMathChain. from_llm ( 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 soalan yang disasarkan untuk mendapatkan jawapan kepada soalan tentang hal ehwal terkini' ,
) ,
alat (
nama = 'Kalkulator' ,
fungsi = llm_math_chain. lari ,
penerangan = 'berguna untuk menjawab/menyelesaikan masalah matematik' ,
) ,
alat (
nama = 'FooBar-DB' ,
func = db_chain. lari ,
penerangan = 'berguna untuk menjawab soalan tentang FooBar dan input hendaklah dalam bentuk soalan yang mengandungi konteks penuh' ,
) ,
]
  • The llm pembolehubah mengandungi konfigurasi model bahasa menggunakan kaedah ChatOpenAI() dengan nama model.
  • Pencarian pembolehubah mengandungi kaedah SerpAPIWrapper() untuk membina alatan untuk ejen.
  • Membina llm_math_chain untuk mendapatkan jawapan yang berkaitan dengan domain Matematik menggunakan kaedah LLMMathChain().
  • Pembolehubah db mengandungi laluan fail yang mempunyai kandungan pangkalan data. Pengguna perlu menukar hanya bahagian terakhir iaitu “kandungan/Chinook.db” daripada jalan yang mengekalkan “sqlite:///../../../../../” sama.
  • Bina rantai lain untuk menjawab pertanyaan daripada pangkalan data menggunakan db_chain pembolehubah.
  • Konfigurasikan alatan seperti cari , kalkulator , dan FooBar-DB untuk mencari jawapan, menjawab soalan matematik, dan pertanyaan dari pangkalan data masing-masing:

Langkah 7: Menambah Memori

Selepas mengkonfigurasi fungsi OpenAI, hanya bina dan tambah memori kepada ejen:

daripada langchain. gesaan import MessagesPlaceholder
daripada langchain. ingatan import ConversationBufferMemory

agen_kwargs = {
'extra_prompt_messages' : [ MessagesPlaceholder ( nama_pembolehubah = 'ingatan' ) ] ,
}
ingatan = ConversationBufferMemory ( kunci_memori = 'ingatan' , pulangkan_mesej = betul )

Langkah 8: Memulakan Ejen

Komponen terakhir untuk membina dan memulakan adalah ejen, yang mengandungi semua komponen seperti llm , alat , OPENAI_FUNCTIONS , dan lain-lain untuk digunakan dalam proses ini:

ejen = initialize_agent (
alatan ,
llm ,
ejen = Jenis Agen. OPENAI_FUNCTIONS ,
bertele-tele = betul ,
agen_kwargs = agen_kwargs ,
ingatan = ingatan ,
)

Langkah 9: Menguji Ejen

Akhir sekali, uji ejen dengan memulakan sembang menggunakan “ hai ” mesej:

ejen. lari ( 'hai' )

Tambahkan beberapa maklumat pada ingatan dengan menjalankan ejen dengannya:

ejen. lari ( 'nama saya John snow' )

Sekarang, uji memori dengan menanyakan soalan tentang sembang sebelumnya:

ejen. lari ( 'siapa nama saya' )

Ejen telah membalas dengan nama yang diambil daripada ingatan supaya ingatan berjalan dengan jayanya dengan ejen:

Itu sahaja buat masa ini.

Kesimpulan

Untuk menambah memori pada ejen fungsi OpenAI dalam LangChain, pasang modul untuk mendapatkan kebergantungan untuk mengimport perpustakaan. Selepas itu, hanya bina pangkalan data dan muat naik ke buku nota Python supaya ia boleh digunakan dengan model. Konfigurasikan model, alatan, rantai dan pangkalan data sebelum menambahkannya pada ejen dan memulakannya. Sebelum menguji memori, bina memori menggunakan ConversationalBufferMemory() dan tambahkannya pada ejen sebelum mengujinya. Panduan ini telah menghuraikan cara menambah memori kepada ejen fungsi OpenAI dalam LangChain.