I-LangChain iyithuluzi eliphambili neliqinile elakhelwe ukusebenzisa amandla Amamodeli Olimi Olukhulu (LLMs).
Lawa ma-LLM anamakhono amangalisayo futhi angakwazi ukubhekana ngempumelelo nenqwaba yemisebenzi. Kodwa-ke, kubalulekile ukuqaphela ukuthi amandla azo atholakala kumvelo yawo ejwayelekile kunokuba abe nolwazi olunzulu lwesizinda. Ukuthandwa kwayo kukhule ngokushesha kusukela kwethulwa i-GPT-4.
Nakuba ama-LLM enza kahle kakhulu ekusingatheni imisebenzi eyahlukene, angase abhekane nemikhawulo uma kuziwa ekunikezeni izimpendulo ezithile noma ukubhekana nemisebenzi edinga ulwazi olujulile lwesizinda. Cabanga, ngokwesibonelo, ukusebenzisa i-LLM ukuphendula imibuzo noma ukwenza imisebenzi emikhakheni ekhethekile njengomuthi noma umthetho.
Nakuba i-LLM ingakwazi ukuphendula imibuzo evamile ngale mikhakha, kungase kube nzima ukunikeza izimpendulo ezinemininingwane eminingi noma ezicashile ezidinga ulwazi olukhethekile noma ubuchwepheshe.
Lokhu kungenxa yokuthi ama-LLM aqeqeshwa enanini elikhulu ledatha yombhalo evela emithonjeni ehlukahlukene, okubenza bakwazi ukufunda amaphethini, baqonde umongo, futhi benze izimpendulo ezihambisanayo. Nokho, ukuqeqeshwa kwabo ngokuvamile akubandakanyi ukutholwa kolwazi oluqondene nesizinda esithile noma okukhethekile ngezinga elifanayo nochwepheshe babantu kuleyo mikhakha.
Ngakho-ke, nakuba i-LangChain, ngokuhlanganyela nama-LLM, ingaba ithuluzi eliyigugu lohlu olubanzi lwemisebenzi, kubalulekile ukuqaphela ukuthi ubungcweti besizinda esijulile bungadingeka ezimeni ezithile. Ochwepheshe babantu abanolwazi olukhethekile banganikeza ukujula okudingekile, ukuqonda okumbalwa, kanye nemininingwane eqondene nomongo okungenzeka ibe ngaphezu kwamakhono ama-LLM kuphela.
Sizokweluleka ukuthi sibheke amadokhumenti e-LangChain noma GitHub indawo yokugcina ukuze kuqondwe kabanzi izimo zayo ezijwayelekile zokusetshenziswa. Kuyalulekwa kakhulu ukuthi uthole isithombe esikhudlwana sale nqwaba.
Isebenza kanjani?
Ukuqonda inhloso nomsebenzi weLangChain, ake sicabangele isibonelo esisebenzayo. Siyazi ukuthi i-GPT-4 inolwazi olujwayelekile oluhlaba umxhwele futhi inganikeza izimpendulo ezinokwethenjelwa ezinhlobonhlobo zemibuzo.
Nokho, kuthiwani uma sifuna ulwazi oluthile oluvela kudatha yethu siqu, njengedokhumenti yomuntu siqu, incwadi, ifayela le-PDF, noma isizindalwazi sobunikazi?
I-LangChain isivumela ukuthi sixhume a imodeli yolimi olukhulu njenge-GPT-4 emithonjeni yethu yedatha. Kudlula ukumane unamathisele amazwibela ombhalo kusixhumi esibonakalayo sengxoxo. Kunalokho, singabhekisela kusizindalwazi esigcwele idatha yethu.
Uma sesilutholile ulwazi esilufunayo, i-LangChain ingasisiza ekuthatheni izinyathelo ezithile. Isibonelo, singayiyala ukuthi ithumele i-imeyili equkethe imininingwane ethile.
Ukufeza lokhu, silandela indlela yepayipi sisebenzisa i-LangChain. Okokuqala, sithatha idokhumenti esiyifunayo imodeli yolimi ukuze ubhekisele futhi uhlukanise zibe izingcezu ezincane. Lezi zingcezu zibe sezigcinwa njengezishumekiwe, okuyizo izethulo zevekhtha zombhalo, kusizindalwazi seVector.
Ngalokhu kusetha, singakha izinhlelo zokusebenza zemodeli yolimi ezilandela umgudu ojwayelekile: umsebenzisi ubuza umbuzo wokuqala, bese uthunyelwa kumodeli yolimi. Ukumelwa kwevekhtha yombuzo kusetshenziselwa ukwenza ukusesha okufanayo kusizindalwazi seVector, kutholwa izingcezu zolwazi ezifanele.
Lezi ziqephu zibe sezibuyiselwa kumodeli yolimi, okuyenza ikwazi ukunikeza impendulo noma ukuthatha isenzo esifiswayo.
I-LangChain isiza ukuthuthukiswa kwezinhlelo zokusebenza eziqaphela idatha, njengoba singakwazi ukubhekisela kudatha yethu esitolo se-vector, futhi eyiqiniso, njengoba engathatha izinyathelo ezingaphezu kokuphendula imibuzo. T
yakhe ivula inqwaba yamacala okusetshenziswa okungokoqobo, ikakhulukazi osizweni lomuntu siqu, lapho imodeli yolimi enkulu ingasingatha imisebenzi efana nokubhuka izindiza, ukudlulisa imali, noma ukusiza ngezindaba eziphathelene nentela.
Ukwengeza, imithelela yokufunda nokufunda izifundo ezintsha ibalulekile, njengoba imodeli yolimi ingabhekisela kuwo wonke isilabhasi futhi isheshise inqubo yokufunda. Ukubhala amakhodi, ukuhlaziya idatha, kanye nesayensi yedatha nakho kulindeleke ukuthi kuthonywe kakhulu yile ntuthuko.
Elinye lamathemba ajabulisa kakhulu ukuxhumanisa amamodeli olimi amakhulu nedatha yenkampani ekhona, efana nolwazi lwekhasimende noma idatha yokumaketha. Lokhu kuhlanganiswa nama-API athuthukisiwe njenge-Meta's API noma i-API ye-Google kuthembisa inqubekelaphambili ebonakalayo ekuhlaziyeni idatha nakwisayensi yedatha.
Ulakha kanjani ikhasi lewebhu (idemo)
Njengamanje, i-Langchain itholakala njengePython ne-JavaScript Packages.
Singakha uhlelo lokusebenza lwewebhu lokubonisa sisebenzisa i-Streamlit, i-LangChain, nemodeli ye-OpenAI GPT-3 ukuze sisebenzise umqondo we-LangChain.
Kodwa okokuqala, kufanele sifake ukuncika okumbalwa, okuhlanganisa i-Streamlit, LangChain, ne-OpenAI.
Okudingekayo ngaphambilini
Sakaza: Iphakethe lePython elidumile lokudala izinhlelo zokusebenza zewebhu ezihlobene nesayensi
I-OpenAI: Ukufinyelela kumodeli yolimi ye-OpenAI ye-GPT-3 kuyadingeka.
Ukufaka lokhu kuncika, sebenzisa imiyalo elandelayo ku-cmd:
pip install streamlit
pip install langchain
pip install openai
Ngenisa Amaphakheji
Siqala ngokungenisa amaphakheji adingekayo, njenge-OpenAI, i-LangChain, ne-Streamlit. Amaketango ethu emodeli yolimi achazwa futhi asetshenziswe kusetshenziswa amakilasi amathathu avela ku-LangChain: LLMChain, SimpleSequentialChain, kanye ne-PromptTemplate.
import streamlit as st
from langchain.chains import LLMChain, SimpleSequentialChain
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
Ukusetha okuyisisekelo
Isisekelo sesakhiwo sephrojekthi yethu sabe sesisetshenziswa kusetshenziswa i-syntax ye-Streamlit. Sinikeze uhlelo lokusebenza isihloko esithi “Yini IQINISO: Ukusebenzisa Uchungechunge Olulandelanayo Olulula” futhi safaka nesixhumanisi sokubeka phansi sekhosombe le-GitHub esisebenze njengesikhuthazo sohlelo lokusebenza.
import streamlit as st
from langchain.chains import LLMChain, SimpleSequentialChain
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
Amawijethi Angaphambili
Setha uhlelo lokusebenza ngolwazi olumbalwa olubalulekile, sisebenzisa i-syntax elula ye-Streamlit:
# 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")
Ukwengeza amawijethi aphambili
Ngaphezu kwalokho, sidinga ukuhlinzeka ngewijethi yokufaka ukuze sivumele abasebenzisi bethu ukuthi bafake noma yimiphi imibuzo.
# 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?",
)
Konke kwenziwe! Amaketango ayasebenza!
Sisebenzisa amaketanga ahlukahlukene wokusebenza kanye SimpleSequentialChain
ukuphendula umbuzo womsebenzisi. Amaketanga enziwa ngokulandelana okulandelayo lapho umsebenzisi ekhetha "Tell me about it"
inkinobho:
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
: okuyisinyathelo sokuqala epayipini lethu, ithola umbuzo womsebenzisi njengokungenayo nokuphumayo. Umbuzo womsebenzisi usebenza njengesifanekiso sochungechunge.- Ngokusekelwe esitatimendeni esihlobene nombuzo, i-
assumptions_chain
yakha uhlu lwamaphoyinti echashazi lokuqagela isebenzisa okukhiphayo okuvela ku-question_chain
njengokufakwayo. ILLMChain
futhiOpenAI
imodeli evela kuLangChain yasetshenziswa ukwakha isitatimende. Umsebenzisi unikezwe umsebenzi wokudala uhlu lokuqagela okwenziwa ukuze kukhiqizwe isitatimende kusetshenziswa isifanekiso salolu chungechunge. - Ngokusekelwe emiphumeleni ephuma ku-
question_chain
futhiassumptions_chain
, lofact_checker_chain
yakha uhlu lokugomela ngendlela yamaphoyinti ezinhlamvu. Izicelo zikhiqizwa kusetshenziswa i-OpenAI
imodeli futhiLLMChain
kusuka eLangChain. Umsebenzisi unikezwe umsebenzi wokunquma ukuthi isimangalo ngasinye sinembile noma asilungile futhi anikeze izizathu zalabo abanjalo. - The
answer_chain
isebenzisa okuphumayo okuvela ku-question_chain
,assumptions_chain
, Futhifact_checker_chain
njengokufakwayo ukuze udale impendulo yombuzo womsebenzisi usebenzisa idatha ekhiqizwe amaketanga angaphambili. Isifanekiso salolu chungechunge sicela ukuthi umsebenzisi aphendule umbuzo wokuqala esebenzisa amaqiniso adaliwe. - Ukuze sinikeze impendulo yokugcina embuzweni wabasebenzisi ngokusekelwe olwazini olukhiqizwe amaketango angaphambili, sihlanganisa la maketango ochungechungeni lulonke. Ngemva kokuqedwa kwamaketanga, sisebenzisa
st.success()
ukukhombisa umsebenzisi isisombululo.
Isiphetho
Singamane sihlanganise ndawonye izenzo zemodeli yolimi ezihlukene ukuze sakhe amapayipi ayinkimbinkimbi ngokusebenzisa i- SimpleSequentialChain
Imodeli ye-LangChain. Ezinhlotsheni ezibanzi zezinhlelo zokusebenza ze-NLP, ezihlanganisa ama-chatbots, amasistimu emibuzo nezimpendulo, namathuluzi okuhumusha ulimi, lokhu kungase kube usizo kakhulu.
Ubuhlakani be-LangChain butholakala emandleni ayo okucabanga, okwenza umsebenzisi agxile odabeni lwamanje kunokuba agxile kulokho okucacisiwe kokumodela kolimi.
I-LangChain yenza inqubo yokudala amamodeli ezilimi ayinkimbinkimbi asebenziseke kalula ngokunikeza amamodeli aqeqeshwe kusengaphambili kanye nokukhethwa kwezifanekiso.
Ikunikeza inketho yokushuna kahle amamodeli olimi usebenzisa idatha yawo, okwenza kube lula ukwenza amamodeli olimi ngokwezifiso. Lokhu kuvumela ukuthuthukiswa kwamamodeli anembe kakhudlwana, aqondene nesizinda, okuthi, ngomsebenzi othile, adlulele amamodeli aqeqeshiwe.
The SimpleSequentialChain
imojula nezinye izici ze-LangChain ziyenza ibe ithuluzi eliphumelelayo lokuthuthukisa ngokushesha nokukhipha izinhlelo ze-NLP eziyinkimbinkimbi.
shiya impendulo