LangChain mangrupikeun alat anu canggih sareng kuat dikembangkeun pikeun ngamangpaatkeun kakuatan Model Basa Besar (LLM).
LLMs ieu gaduh kamampuan anu luar biasa sareng tiasa sacara éfisién ngarengsekeun rupa-rupa pancén. Nanging, penting pikeun dicatet yén kakuatanana aya dina sipat umumna tinimbang kaahlian domain anu jero. Popularitasna parantos ningkat gancang ti saprak diluncurkeun GPT-4.
Bari LLM unggul dina nanganan rupa-rupa pancén, maranéhna bisa nyanghareupan watesan lamun datang ka nyadiakeun waleran husus atawa tackling tugas nu merlukeun pangaweruh domain profound. Pertimbangkeun, contona, ngagunakeun LLM pikeun ngajawab patarosan atanapi ngalaksanakeun tugas dina widang khusus sapertos ubar atanapi hukum.
Sanaos LLM pasti tiasa ngabales patarosan umum ngeunaan widang ieu, éta tiasa bajoang pikeun nawiskeun jawaban anu langkung rinci atanapi bernuansa anu peryogi pangaweruh atanapi kaahlian khusus.
Ieu kusabab LLM dilatih dina jumlahna ageung data téks tina rupa-rupa sumber, ngamungkinkeun aranjeunna diajar pola, ngartos kontéks, sareng ngahasilkeun réspon anu koheren. Sanajan kitu, palatihan maranéhanana henteu ilaharna ngalibetkeun akuisisi pangaweruh domain-spésifik atawa husus ka extent sarua salaku ahli manusa dina widang eta.
Ku alatan éta, bari LangChain, ditéang jeung LLMs, bisa jadi hiji alat invaluable pikeun rentang lega tugas, éta penting pikeun ngakuan yén kaahlian domain jero mungkin masih diperlukeun dina situasi nu tangtu. Ahli manusa anu gaduh pangaweruh khusus tiasa nyayogikeun jero anu diperyogikeun, pamahaman anu bernuansa, sareng wawasan khusus kontéks anu tiasa di luar kamampuan LLM nyalira.
Kami mamatahan ningali docs LangChain atanapi GitHub gudang pikeun pamahaman anu langkung lengkep ngeunaan kasus pamakean anu khas. Disarankeun pisan nyandak gambar anu langkung ageung ngeunaan bungkusan ieu.
Kumaha éta Gawé?
Pikeun ngartos tujuan sareng padamelan LangChain, hayu urang pertimbangkeun conto praktis. Kami sadar yén GPT-4 gaduh pangaweruh umum anu pikaresepeun sareng tiasa masihan jawaban anu tiasa dipercaya pikeun sajumlah patarosan.
Nanging, kumaha upami urang hoyong inpormasi khusus tina data urang sorangan, sapertos dokumen pribadi, buku, file PDF, atanapi database proprietary?
LangChain ngamungkinkeun urang pikeun nyambungkeun a model basa badag kawas GPT-4 kana sumber data urang sorangan. Éta langkung seueur ngan saukur nempelkeun potongan téks kana antarmuka obrolan. Gantina, urang tiasa nuduhkeun hiji sakabéh database ngeusi data urang sorangan.
Sakali kami nampi inpormasi anu dipikahoyong, LangChain tiasa ngabantosan kami dina ngalakukeun tindakan khusus. Salaku conto, urang tiasa maréntahkeun ngirim email anu ngandung detil anu tangtu.
Pikeun ngahontal ieu, urang nuturkeun pendekatan pipa nganggo LangChain. Kahiji, urang nyokot dokumen urang hayang teh modél basa pikeun rujukan tur ngabagi kana sakumpulan leutik. sakumpulan ieu lajeng disimpen salaku embeddings, nu Répréséntasi vektor téks, dina Database Véktor.
Kalayan pangaturan ieu, urang tiasa ngawangun aplikasi modél basa anu nuturkeun jalur pipa standar: pangguna naroskeun patarosan awal, anu teras dikirim ka modél basa. Répréséntasi véktor patarosan dianggo pikeun milarian kasaruaan dina Database Véktor, nyandak sakumpulan inpormasi anu relevan.
Potongan-potongan ieu teras dipasihan deui kana modél basa, ngamungkinkeun éta masihan jawaban atanapi nyandak tindakan anu dipikahoyong.
LangChain ngagampangkeun pamekaran aplikasi anu sadar data, sabab urang tiasa ngarujuk data urang sorangan dina toko vektor, sareng otentik, sabab tiasa nyandak tindakan saluareun ngawalon patarosan. T
Nya ngabuka seueur kasus pamakean praktis, khususna dina bantosan pribadi, dimana modél basa ageung tiasa ngadamel tugas sapertos booking penerbangan, nransper artos, atanapi ngabantosan urusan pajeg.
Salian ti éta, implikasi pikeun diajar jeung diajar mata pelajaran anyar téh signifikan, sabab modél basa bisa ngarujuk kana sakabéh silabus jeung ngagancangkeun prosés diajar. Coding, analisis data, sareng élmu data ogé diharepkeun bakal dipangaruhan pisan ku kamajuan ieu.
Salah sahiji prospek anu paling pikaresepeun nyaéta nyambungkeun modél basa ageung kana data perusahaan anu tos aya, sapertos inpormasi palanggan atanapi data pamasaran. Integrasi ieu sareng API canggih sapertos Meta's API atanapi Google's API ngajangjikeun kamajuan éksponénsial dina analitik data sareng élmu data.
Kumaha Ngawangun Halaman wéb (Demo)
Ayeuna, Langchain sayogi salaku Paket Python sareng JavaScript.
Urang bisa nyieun demonstrasi Web App ngamangpaatkeun Streamlit, LangChain, sarta model OpenAI GPT-3 pikeun nerapkeun konsép LangChain.
Tapi ke heula, urang kedah masang sababaraha dependensi, kalebet Streamlit, LangChain, sareng OpenAI.
Pra-requisites
Streamlit: Paket Python anu populér pikeun nyiptakeun aplikasi wéb anu aya hubunganana sareng élmu data
OpenAI: Aksés ka modél basa GPT-3 OpenAI diperyogikeun.
Pikeun masang dependensi ieu, paké paréntah di handap ieu dina cmd:
pip install streamlit
pip install langchain
pip install openai
Paket impor
Urang mimitian ku ngimpor bungkusan anu diperyogikeun, sapertos OpenAI, LangChain, sareng Streamlit. Ranté modél basa urang ditetepkeun sareng dieksekusi nganggo tilu kelas ti LangChain: LLMChain, SimpleSequentialChain, sareng PromptTemplate.
import streamlit as st
from langchain.chains import LLMChain, SimpleSequentialChain
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
Dasar Setup
Dasar struktural proyék kami teras dipasang nganggo sintaksis Streamlit. Kami masihan aplikasi judulna "Naon BENER: Ngagunakeun Chain Sequential Sederhana" sareng kalebet tautan markdown kana gudang GitHub anu janten inspirasi aplikasi.
import streamlit as st
from langchain.chains import LLMChain, SimpleSequentialChain
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
Widget hareup-Tungtung
Kami nyetél aplikasi sareng sababaraha inpormasi anu relevan, nganggo sintaksis Streamlit saderhana:
# If an API key has been provided, create an OpenAI language model instance
if API:
llm = OpenAI(temperature=0.7, openai_api_key=API)
else:
# If an API key hasn't been provided, display a warning message
st.warning("Enter your OPENAI API-KEY. Get your OpenAI API key from [here](https://platform.openai.com/account/api-keys).\n")
Pikeun nambahkeun widget hareup-tungtung
Salajengna, urang kedah nyayogikeun widget input pikeun ngamungkinkeun para pangguna ngalebetkeun patarosan naon waé.
# Add a text input box for the user's question
user_question = st.text_input(
"Enter Your Question : ",
placeholder = "Cyanobacteria can perform photosynthetsis , are they considered as plants?",
)
Kabéh rengse! Ranté geus nepi na ngajalankeun!
Urang employ rupa ranté operasi bareng jeung SimpleSequentialChain
pikeun ngabales query pamaké. Ranté dilumangsungkeun dina runtuyan handap nalika pamaké milih nu "Tell me about it"
tombol:
if st.button("Tell me about it", type="primary"):
# Chain 1: Generating a rephrased version of the user's question
template = """{question}\n\n"""
prompt_template = PromptTemplate(input_variables=["question"], template=template)
question_chain = LLMChain(llm=llm, prompt=prompt_template)
# Chain 2: Generating assumptions made in the statement
template = """Here is a statement:
{statement}
Make a bullet point list of the assumptions you made when producing the above statement.\n\n"""
prompt_template = PromptTemplate(input_variables=["statement"], template=template)
assumptions_chain = LLMChain(llm=llm, prompt=prompt_template)
assumptions_chain_seq = SimpleSequentialChain(
chains=[question_chain, assumptions_chain], verbose=True
)
# Chain 3: Fact checking the assumptions
template = """Here is a bullet point list of assertions:
{assertions}
For each assertion, determine whether it is true or false. If it is false, explain why.\n\n"""
prompt_template = PromptTemplate(input_variables=["assertions"], template=template)
fact_checker_chain = LLMChain(llm=llm, prompt=prompt_template)
fact_checker_chain_seq = SimpleSequentialChain(
chains=[question_chain, assumptions_chain, fact_checker_chain], verbose=True
)
# Final Chain: Generating the final answer to the user's question based on the facts and assumptions
template = """In light of the above facts, how would you answer the question '{}'""".format(
user_question
)
template = """{facts}\n""" + template
prompt_template = PromptTemplate(input_variables=["facts"], template=template)
answer_chain = LLMChain(llm=llm, prompt=prompt_template)
overall_chain = SimpleSequentialChain(
chains=[question_chain, assumptions_chain, fact_checker_chain, answer_chain],
verbose=True,
)
# Running all the chains on the user's question and displaying the final answer
st.success(overall_chain.run(user_question))
question_chain
: nu mangrupa hambalan kahiji dina pipa kami, narima sual pamaké salaku input jeung output. Paménta pangguna janten template ranté.- Dumasar kana hiji pernyataan numbu ka patarosan, nu
assumptions_chain
ngahasilkeun daptar bullet-point tina asumsi ngagunakeun kaluaran tiquestion_chain
salaku input. TheLLMChain
jeungOpenAI
model ti LangChain ieu dipaké pikeun ngawangun pernyataan. Pamaké ditugaskeun pikeun nyiptakeun daptar asumsi anu dilakukeun pikeun ngahasilkeun pernyataan nganggo template pikeun ranté ieu. - Dumasar kana kaluaran tina
question_chain
jeungassumptions_chain
, nufact_checker_chain
ngahasilkeun daptar assertions dina bentuk titik bullet. Klaim dihasilkeun ngagunakeunOpenAI
modél jeungLLMChain
ti LangChain. Pamaké ditugaskeun pikeun nangtukeun naha unggal klaim akurat atanapi salah sareng masihan leresan pikeun anu leres. - nu
answer_chain
ngagunakeun outputs tiquestion_chain
,assumptions_chain
, sartafact_checker_chain
salaku inputs pikeun nyieun respon kana patarosan pamaké ngagunakeun data dihasilkeun tina ranté saméméhna. Témplat pikeun ranté ieu nyuhunkeun yén pangguna ngaréspon kana pamundut anu munggaran nganggo fakta anu diciptakeun. - Dina raraga nyadiakeun respon pamungkas kana panalungtikan pamaké dumasar kana informasi dihasilkeun tina ranté saméméhna, urang ngahijikeun ranté ieu kana ranté sakabéh. Saatos ranté réngsé, kami nganggo
st.success()
pikeun némbongkeun pamaké solusi.
kacindekan
Urang ngan saukur bisa ranté babarengan lampah model basa béda pikeun nyieun pipelines leuwih pajeulit ku ngagunakeun SimpleSequentialChain
modul LangChain. Pikeun rupa-rupa aplikasi NLP, kaasup chatbots, sistem patarosan-jeung-jawaban, sarta alat tarjamah basa, ieu bisa jadi rada mantuan.
The brilliance of LangChain kapanggih dina kapasitas -na pikeun abstrak, nu nyandak pamaké pikeun konsentrasi dina masalah ayeuna tinimbang specifics of modeling basa.
LangChain ngajantenkeun prosés nyiptakeun modél basa anu canggih langkung ramah-pamaké ku nawiskeun modél anu tos dilatih sareng pilihan témplat.
Éta masihan anjeun pilihan pikeun nyéépkeun modél basa nganggo datana nyalira, janten saderhana pikeun ngaluyukeun modél basa. Hal ieu ngamungkinkeun ngembangkeun model domain-spésifik anu langkung tepat anu, pikeun padamelan anu dipasihkeun, langkung saé tibatan modél anu dilatih.
nu SimpleSequentialChain
modul jeung fitur sejenna LangChain ngajadikeun eta alat éféktif pikeun gancang ngamekarkeun jeung deploying sistem NLP canggih.
Leave a Reply