LangChain waa qalab gees-goyn ah oo adag oo loo sameeyay si uu uga faa'iidaysto awoodda Noocyada Luuqadaha Waaweyn (LLMs).
LLM-yadani waxay leeyihiin awoodo cajiib ah waxayna si hufan wax uga qaban karaan hawlo badan oo kala duwan. Si kastaba ha ahaatee, waxaa muhiim ah in la ogaado in xooggoodu uu ku jiro dabeecadooda guud halkii ay ka ahaan lahaayeen khibrad qotodheer. Caannimadeeda ayaa si degdeg ah u koray tan iyo markii la bilaabay GPT-4.
Iyadoo LLMs ay ku fiican yihiin maaraynta hawlo kala duwan, waxaa laga yaabaa inay la kulmaan xaddidaadyo marka ay timaado bixinta jawaabo gaar ah ama wax ka qabashada hawlaha u baahan aqoon qotodheer oo qotodheer. Tixgeli, tusaale ahaan, ka faa'iidaysiga LLM si aad uga jawaabto su'aalaha ama aad u qabato hawlo gudaha meelaha gaarka ah sida daawada ama sharciga.
Iyadoo LLM ay si dhab ah uga jawaabi karto su'aalaha guud ee ku saabsan dhinacyadan, waxaa laga yaabaa inay ku dhibtoonaato inay bixiso jawaabo tafatiran ama tafatiran oo u baahan aqoon gaar ah ama khibrad.
Tani waa sababta oo ah LLM-yada waxaa lagu tababaray tiro aad u badan oo xog qoraal ah oo laga keenay ilo kala duwan, taasoo u sahlaysa inay bartaan qaababka, fahmaan macnaha guud, oo ay dhaliyaan jawaabo isku xidhan. Si kastaba ha ahaatee, tababarkoodu sida caadiga ah kuma lug yeesho helitaanka aqoonta domain-gaar ah ama aqoonta gaarka ah ilaa xad la mid ah kuwa khubarada aadanaha ee dhinacyadaas.
Sidaa darteed, halka LangChain, iyada oo lala kaashanayo LLMs, ay noqon karto qalab qiimo leh oo loogu talagalay hawlo badan oo kala duwan, waxaa muhiim ah in la aqoonsado in khibradda qotodheerta ah ay wali lagama maarmaan u tahay xaaladaha qaarkood. Khubarada bini'aadamka ee leh aqoonta gaarka ah waxay ku siin karaan qoto dheer ee lagama maarmaanka ah, fahamka nuanceed, iyo aragtiyo gaar ah oo macnaha guud oo laga yaabo in ay dhaafsiisan yihiin awoodaha LLMs oo keliya.
Waxaan kugula talin lahayn in la eego dukumeentiyada LangChain ama GitHub kaydka si aad u fahamto kiisas isticmaalkeeda caadiga ah. Waxaa si adag lagula talinayaa in aad sawir weyn ka hesho xidhmadan.
Sidee Ayuu U Shaqeeyaa?
Si loo fahmo ujeedada iyo shaqada LangChain, aan tixgelinno tusaale wax ku ool ah. Waxaan la soconaa in GPT-4 uu leeyahay aqoon guud oo cajiib ah wuxuuna ku siin karaa jawaabo lagu kalsoonaan karo oo ku saabsan su'aalo badan oo kala duwan.
Si kastaba ha ahaatee, maxaa dhacaya haddii aan ka rabno macluumaad gaar ah xogtayada gaarka ah, sida dukumeenti shakhsi ah, buug, faylka PDF, ama xogta lahaanshaha?
LangChain waxay noo ogolaataa inaan ku xidhno a model luqadda weyn sida GPT-4 ilaa ilahayada xogta. Waxa ay dhaaftay in si fudud loogu dhejiyo qayb yar oo qoraal ah oo lagu wada sheekaysto. Taa beddelkeeda, waxaan tixraaci karnaa dhammaan xogta macluumaadka oo ay ka buuxaan xogtayada.
Marka aan helno macluumaadka la rabo, LangChain ayaa naga caawin karta qaadista tallaabooyin gaar ah. Tusaale ahaan, waxaan ku tilmaami karnaa inay dirto iimayl ka kooban faahfaahin gaar ah.
Si taas loo gaaro, waxaan raacnaa habka dhuumaha adoo isticmaalaya LangChain. Marka hore, waxaan qaadanaa dukumeentiga aan rabno qaabka luqadda in la tixraaco oo loo qaybiyo qaybo yaryar. Qaybahaan ayaa markaa loo kaydiyaa sida wax la isku dhejiyo, kuwaas oo ah matalaada vector ee qoraalka, ee ku jira kaydka xogta ee Vector.
Habayntan, waxaan dhisi karnaa codsiyada moodeelka luqadda ee raacaya dhuumaha caadiga ah: isticmaaluhu wuxuu ku weydiiyaa su'aal bilow ah, ka dibna loo diro qaabka luqadda. Matalan su'aasha waxa loo istcmaalay in lagu sameeyo raadinta isku midka ah ee Vector Database, dib u soo celinta qaybaha macluumaadka ee khuseeya.
Qaybahaan ayaa markaa dib loogu celinayaa qaabka luqadda, taasoo awood u siinaysa inay bixiso jawaab ama ay qaado tallaabada la rabo.
LangChain wuxuu fududeeyaa horumarinta codsiyada xogta-ogaalka ah, maadaama aan tixraaci karno xogtayada dukaanka vector, iyo run, maadaama ay qaadi karaan tallaabooyin ka baxsan ka jawaabista su'aalaha. T
Wuxuu furayaa kiisas badan oo la taaban karo, gaar ahaan kaalmada shakhsi ahaaneed, halkaas oo qaabka luqadda weyni uu qaban karo hawlaha sida ballansashada duulimaadyada, wareejinta lacagta, ama ka caawinta arrimaha la xiriira canshuurta.
Intaa waxaa dheer, saamaynta barashada iyo barashada maaddooyinka cusub ayaa ah mid muhiim ah, maadaama qaabka luqadda uu tixraaci karo manhaj dhan oo uu dedejin karo habka waxbarashada. Codaynta, falanqaynta xogta, iyo sayniska xogta ayaa sidoo kale la filayaa inay si weyn u saameeyaan horumarkan.
Mid ka mid ah rajada ugu xiisaha badan ayaa ah isku xirka moodooyinka luqadaha waaweyn xogta shirkadda ee jirta, sida macluumaadka macaamiisha ama xogta suuqgeynta. Ku biirista API-yada horumarsan sida Meta's API ama Google's API waxay ballan qaadaysaa horumarka jibbaarada ee falanqaynta xogta iyo sayniska xogta.
Sida loo dhiso Bog Mareegaha (Demo)
Hadda, Langchain waxa loo heli karaa sidii Xirmooyinka Python iyo JavaScript.
Waxaan abuuri karnaa bandhig Web App anagoo adeegsanayna Streamlit, LangChain, iyo qaabka OpenAI GPT-3 si loo hirgeliyo fikradda LangChain.
Laakiin marka hore, waa in aan rakibno dhowr ku-tiirsanaan, oo ay ku jiraan Streamlit, LangChain, iyo OpenAI.
U-qalmitaanka
Daahsoon: Xirmo Python oo caan ah oo loogu talagalay abuurista codsiyada shabakadda ee sayniska la xidhiidha
FurAI: Helitaanka qaabka luqadda OpenAI ee GPT-3 ayaa loo baahan yahay.
Si loo rakibo ku-tiirsanaantan, isticmaal amarradan soo socda gudaha cmd:
pip install streamlit
pip install langchain
pip install openai
Soo dejinta Baakadaha
Waxaan ku bilaabeynaa soo dejinta xirmooyinka loo baahan yahay, sida OpenAI, LangChain, iyo Streamlit. Silsilada qaabka luuqadeena waxa lagu qeexaa oo lafuliyaa iyadoo la isticmaalayo saddex fasal oo ka socda LangChain: LLMChain, SimpleSequentialChain, iyo PromptTemplate.
import streamlit as st
from langchain.chains import LLMChain, SimpleSequentialChain
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
Dejinta aasaasiga ah
Saldhigga qaab-dhismeedka mashruucayaga ayaa markaa la adeegsaday iyadoo la isticmaalayo Streamlit syntax. Waxaan siinay abka ciwaanka "Maxaa RUN ah: Isticmaalka Silsiladda Isku Xigta ee Fudud" waxaana ku daray xiriirinta calaamadaynta kaydka GitHub ee u adeegay dhiirigelinta abka.
import streamlit as st
from langchain.chains import LLMChain, SimpleSequentialChain
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
Widgets-Dhammaadka Hore
Waxaan ku dejinay abka leh macluumaad yar oo khuseeya, annagoo adeegsanayna syntax fudud oo fudud:
# 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")
Si loogu daro widgets-dhamaadka hore
Intaa waxaa dheer, waxaan u baahanahay inaan bixino widget gelinta si aan ugu oggolaano isticmaalayaashayada inay galaan su'aalo kasta.
# 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?",
)
Dhammaan waa la sameeyay! Silsilada ayaa socda oo socda!
Waxaan si wada jir ah u shaqaaleynaa silsilado hawlgallo kala duwan SimpleSequentialChain
si looga jawaabo su'aalaha isticmaalaha Silsilada waxaa lagu fuliyaa taxanaha soo socda marka isticmaaluhu uu doorto "Tell me about it"
badhan:
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
: taas oo ah tillaabada ugu horreysa ee dhuumahayaga, waxay helaysaa su'aasha isticmaalaha sida soo-gelinta iyo soo-saarka. Weydiinta isticmaaluhu waxa ay u adeegtaa sida qaabka silsiladda.- Iyadoo lagu salaynayo bayaan la xidhiidha su'aasha, ayaa
assumptions_chain
waxay soo saartaa liis-dhibic malo-awaal ah iyadoo la adeegsanayo wax-soo-saarkaquestion_chain
sida loo galo. TheLLMChain
iyoOpenAI
model ka LangChain ayaa loo isticmaalay si loo dhiso bayaanka. Isticmaalaha waxaa loo xilsaaray inuu abuuro liiska fikradaha la sameeyay si loo soo saaro bayaanka isagoo isticmaalaya qaabka silsiladan. - Iyada oo ku saleysan wax soo saarka ka
question_chain
iyoassumptions_chain
, kafact_checker_chain
waxay soo saartaa liis sheegasho ah oo ah qaabka dhibcaha rasaasta. Dareen-celinta waxaa lagu sameeyaa iyadoo la isticmaalayoOpenAI
moodal iyoLLMChain
Laga soo bilaabo LangChain. Isticmaalaha waxaa loo xilsaaray inuu go'aamiyo haddii sheegasho kastaa ay tahay mid sax ah ama khaldan iyo bixinta cudurdaar kuwaas. - The
answer_chain
wuxuu isticmaalaa wax soo saarka kaquestion_chain
,assumptions_chain
, Iyofact_checker_chain
Sida wax-soo-saarka si loo abuuro jawaabta su'aasha isticmaalaha iyadoo la adeegsanayo xogta ay soo saareen silsiladihii hore. Qaabka silsiladan ayaa codsanaya isticmaaluhu in uu ka jawaabo waydiinta kowaad isagoo isticmaalaya xaqiiqooyinka la abuuray. - Si loo bixiyo jawaabta kama dambaysta ah ee weydiinta isticmaalaha iyadoo lagu salaynayo macluumaadka ay soo saareen silsiladihii hore, waxaan ku dhex darnaa silsiladahan silsiladda guud. Ka dib markii silsiladaha la dhammeeyo, waxaan isticmaalnaa
st.success()
si loo tuso isticmaalaha xalka.
Ugu Dambeyn
Waxaan si fudud u isku xidhi karnaa hab-dhaqan luuqadeed oo kala duwan si aanu u abuurno dhuumo aad u adag anagoo adeegsanayna SimpleSequentialChain
Tusmada ugu hooseysa ee LangChain. Noocyada kala duwan ee codsiyada NLP, oo ay ku jiraan chatbots, hababka su'aalaha-iyo-jawabaha, iyo qalabka turjumaada luqadda, tani waxay noqon kartaa mid waxtar leh.
Iftiiminta LangChain waxaa laga helaa awooddeeda si ay u soo saarto, taas oo u sahlaysa isticmaaluhu inuu xoogga saaro arrinta hadda jirta halkii uu ka ahaan lahaa waxyaabaha gaarka ah ee qaabaynta luqadda.
LangChain wuxuu ka dhigayaa habka abuurista moodooyinka luqadda casriga ah mid saaxiibtinimo leh iyadoo la siinayo moodooyin horay loo tababaray iyo xulashada qaab-dhismeedka.
Waxay ku siinaysaa ikhtiyaarka aad ku hagaajin karto moodooyinka luqadda iyagoo isticmaalaya xogtooda, taasoo ka dhigaysa mid fudud in la habeeyo moodooyinka luqadda. Tani waxay awood u siinaysaa horumarinta qaabab aad u saxsan oo domain-gaar ah oo, shaqo la siiyay, ka sarreeya moodooyinka la tababaray.
The SimpleSequentialChain
moduleka iyo sifooyinka kale ee LangChain waxay ka dhigaan qalab wax ku ool ah oo si degdeg ah u horumariya oo loo diro nidaamyada NLP ee casriga ah.
Leave a Reply