Bab lan Paragraf[Singidaken][Tampilake]
LangChain minangka alat sing canggih lan kuat sing dikembangake kanggo nggunakake kekuwatan Model Basa Gedhe (LLM).
LLM iki nduweni kabisan sing luar biasa lan bisa ngatasi macem-macem tugas kanthi efisien. Nanging, penting kanggo dicathet yen kekuwatane dumunung ing sifat umume tinimbang keahlian domain sing jero. Popularitas wis berkembang kanthi cepet wiwit introduksi GPT-4.
Nalika LLM unggul ing nangani macem-macem tugas, bisa uga ana watesan nalika menehi jawaban tartamtu utawa ngatasi tugas sing mbutuhake kawruh domain sing jero. Coba, umpamane, nggunakake LLM kanggo mangsuli pitakon utawa nindakake tugas ing lapangan khusus kayata obat utawa hukum.
Nalika LLM mesthi bisa nanggapi pitakon umum babagan lapangan kasebut, bisa uga angel menehi jawaban sing luwih rinci utawa nuances sing mbutuhake kawruh utawa keahlian khusus.
Iki amarga LLM dilatih babagan akeh data teks saka macem-macem sumber, supaya bisa sinau pola, ngerti konteks, lan ngasilake respon sing koheren. Nanging, latihan kasebut biasane ora nglibatake akuisisi pengetahuan khusus domain utawa khusus sing padha karo pakar manungsa ing bidang kasebut.
Mulane, nalika LangChain, magepokan karo LLMs, bisa dadi alat invaluable kanggo sawetara sing godhongé amba saka tugas, iku penting kanggo ngenali sing expertise domain jero isih perlu ing kahanan tartamtu. Pakar manungsa kanthi kawruh khusus bisa menehi kedalaman, pangerten nuansa, lan wawasan khusus konteks sing bisa uga ngluwihi kemampuan LLM.
Kita bakal menehi saran ndeleng dokumen LangChain utawa GitHub gudang kanggo pangerten sing luwih lengkap babagan kasus panggunaan sing khas. Apike banget kanggo njupuk gambar sing luwih gedhe babagan bundel iki.
Piye cara kerjane?
Kanggo mangerteni tujuan lan karya LangChain, ayo nimbang conto praktis. Kita ngerti manawa GPT-4 duwe kawruh umum sing nggumunake lan bisa menehi jawaban sing bisa dipercaya kanggo macem-macem pitakonan.
Nanging, kepiye yen kita pengin informasi tartamtu saka data kita dhewe, kayata dokumen pribadi, buku, file PDF, utawa database kepemilikan?
LangChain ngidini kita nyambungake a model basa gedhe kaya GPT-4 kanggo sumber data kita dhewe. Iku ngluwihi mung nempel potongan teks menyang antarmuka chatting. Nanging, kita bisa ngrujuk kabeh database sing diisi karo data kita dhewe.
Sawise entuk informasi sing dikarepake, LangChain bisa nulungi tumindak tartamtu. Contone, kita bisa menehi pitunjuk kanggo ngirim email sing ngemot rincian tartamtu.
Kanggo entuk iki, kita tindakake pendekatan pipeline nggunakake LangChain. Kaping pisanan, kita njupuk dokumen sing dikarepake model basa kanggo referensi lan dibagi dadi potongan cilik. Potongan kasebut banjur disimpen minangka embeddings, yaiku representasi vektor teks, ing Database Vektor.
Kanthi persiyapan iki, kita bisa mbangun aplikasi model basa sing ngetutake pipa standar: pangguna takon pitakonan awal, sing banjur dikirim menyang model basa. Perwakilan vektor pitakonan digunakake kanggo nindakake telusuran mirip ing Database Vektor, njupuk potongan informasi sing cocog.
Potongan kasebut banjur diuripake maneh menyang model basa, supaya bisa menehi jawaban utawa tumindak sing dikarepake.
LangChain nggampangake pangembangan aplikasi sing ngerti data, amarga kita bisa ngrujuk data kita dhewe ing toko vektor, lan asli, amarga bisa njupuk tindakan ngluwihi njawab pitakonan. T
dheweke mbukak akeh kasus panggunaan praktis, utamane ing pitulungan pribadi, ing ngendi model basa sing gedhe bisa nangani tugas kaya pesenan penerbangan, nransfer dhuwit, utawa nulungi masalah sing gegandhengan karo pajak.
Kajaba iku, implikasi kanggo sinau lan sinau subjek anyar penting, amarga model basa bisa ngrujuk kabeh silabus lan nyepetake proses sinau. Pengkodean, analisis data, lan ilmu data uga diarepake bakal dipengaruhi banget dening kemajuan kasebut.
Salah sawijining prospek sing paling nyenengake yaiku nyambungake model basa gedhe menyang data perusahaan sing wis ana, kayata informasi pelanggan utawa data pemasaran. Integrasi karo API canggih kaya Meta's API utawa Google API njanjeni kemajuan eksponensial ing analisis data lan ilmu data.
Cara Nggawe Kaca Web (Demo)
Saiki, Langchain kasedhiya minangka Paket Python lan JavaScript.
Kita bisa nggawe Aplikasi Web demonstrasi nggunakake Streamlit, LangChain, lan model OpenAI GPT-3 kanggo ngetrapake konsep LangChain.
Nanging pisanan, kita kudu nginstal sawetara dependensi, kalebu Streamlit, LangChain, lan OpenAI.
Pre-requisites
Streamlit: Paket Python sing populer kanggo nggawe aplikasi web sing gegandhengan karo ilmu data
OpenAI: Akses menyang model basa GPT-3 OpenAI dibutuhake.
Kanggo nginstal dependensi kasebut, gunakake perintah ing ngisor iki ing cmd:
pip install streamlit
pip install langchain
pip install openai
Paket Import
Kita miwiti kanthi ngimpor paket sing dibutuhake, kayata OpenAI, LangChain, lan Streamlit. Rantai model basa kita ditetepake lan dieksekusi nggunakake telung kelas saka LangChain: LLMChain, SimpleSequentialChain, lan PromptTemplate.
import streamlit as st
from langchain.chains import LLMChain, SimpleSequentialChain
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
Persiyapan dhasar
Basis struktural proyek kita banjur digawe nggunakake sintaksis Streamlit. We menehi app judhul "Apa BENER: Nggunakake Simple Sequential Chain" lan kalebu link markdown menyang repositori GitHub sing dadi inspirasi app.
import streamlit as st
from langchain.chains import LLMChain, SimpleSequentialChain
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
Widget ngarep-mburi
Kita nyiyapake app kanthi sawetara informasi sing relevan, nggunakake sintaks Streamlit sing prasaja:
# 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")
Kanggo nambah widget ngarep
Salajengipun, kita kudu nyedhiyani widget input kanggo ngidini pangguna ngetik pitakonan apa wae.
# 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?",
)
Wis rampung kabeh! Rentengan munggah lan mlaku!
We makaryakke macem-macem rentengan operasi bebarengan karo SimpleSequentialChain
kanggo nanggapi pitakon pangguna. Rentengan digawa metu ing urutan ing ngisor iki nalika pangguna milih ing "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
: kang langkah pisanan ing pipo kita, nampa pitakonan pangguna minangka input lan output. Pitakon pangguna minangka cithakan rantai.- Adhedhasar pratelan sing digandhengake karo pitakonan, ing
assumptions_chain
ngasilake dhaptar bullet-point saka asumsi nggunakake output sakaquestion_chain
minangka input. IngLLMChain
lanOpenAI
model saka LangChain digunakake kanggo mbangun statement. Pangguna ditugasake nggawe dhaptar asumsi sing digawe kanggo ngasilake statement nggunakake template kanggo chain iki. - Adhedhasar output saka
question_chain
lanassumptions_chain
, ingfact_checker_chain
ngasilake dhaptar pratelan ing wangun titik peluru. Klaim kasebut diprodhuksi nggunakakeOpenAI
model lanLLMChain
saka LangChain. Pangguna ditugasake kanggo nemtokake manawa saben pratelan kasebut akurat utawa ora bener lan menehi kabeneran. - The
answer_chain
nggunakake output sakaquestion_chain
,assumptions_chain
, Lanfact_checker_chain
minangka input kanggo nggawe respon kanggo pitakonan pangguna nggunakake data diprodhuksi dening rentengan sadurungé. Cithakan kanggo rantai iki njaluk supaya pangguna nanggapi pitakon pisanan nggunakake fakta sing digawe. - Kanggo menehi respon pokok kanggo pitakonan pangguna adhedhasar informasi sing diasilake dening rantai sadurunge, kita nggabungake rantai kasebut menyang rantai sakabèhé. Sawise ranté rampung, kita nggunakake
st.success()
kanggo nuduhake pangguna solusi.
kesimpulan
Kita mung bisa chain bebarengan tumindak model basa beda kanggo nggawe pipelines luwih rumit kanthi nggunakake SimpleSequentialChain
modul LangChain. Kanggo macem-macem aplikasi NLP, kalebu chatbots, sistem pitakonan lan jawaban, lan alat terjemahan basa, iki bisa uga cukup mbiyantu.
Kecemerlangan LangChain ditemokake ing kapasitas abstrak, sing ngidini pangguna kanggo konsentrasi ing masalah saiki tinimbang spesifik modeling basa.
LangChain ndadekake proses nggawe model basa sing canggih luwih gampang pangguna kanthi nawakake model sing wis dilatih lan pilihan template.
Iku menehi sampeyan pilihan kanggo fine-tune model basa nggunakake data dhewe, nggawe gampang kanggo ngatur model basa. Iki mbisakake pangembangan model khusus domain sing luwih tepat sing, kanggo proyek tartamtu, ngluwihi model sing dilatih.
The SimpleSequentialChain
modul lan fitur liyane saka LangChain ndadekake alat efektif kanggo cepet ngembangaken lan deploying sistem NLP canggih.
Ninggalake a Reply