LangChain bụ ngwa dị mma na nke siri ike emepụtara iji nweta ike nke Ụdị Asụsụ buru ibu (LLM).
Ndị LLM ndị a nwere ike dị egwu ma nwee ike rụọ ọrụ dị iche iche nke ọma. Agbanyeghị, ọ dị mkpa iburu n'obi na ike ha dabere na ọdịdị ha n'ozuzu ha karịa nka na ngalaba miri emi. Ihe ewu ewu ya etoola ngwa ngwa kemgbe iwebata GPT-4.
Ọ bụ ezie na LLM na-eme nke ọma n'ịrụ ọrụ dị iche iche, ha nwere ike chere oke ihu ma a bịa n'inye azịza kpọmkwem ma ọ bụ imezu ọrụ ndị chọrọ nnukwu ọmụma ngalaba. Tụlee, dịka ọmụmaatụ, iji LLM iji zaa ajụjụ ma ọ bụ rụọ ọrụ n'ime ngalaba pụrụ iche dị ka ọgwụ ma ọ bụ iwu.
Ọ bụ ezie na LLM nwere ike ịza ajụjụ n'ozuzu gbasara mpaghara ndị a, ọ nwere ike ịgbalị ịnye nkọwa zuru ezu ma ọ bụ azịza dị iche iche nke chọrọ amamihe ma ọ bụ nka pụrụ iche.
Nke a bụ n'ihi na a zụrụ LLM na nnukwu data ederede sitere na isi mmalite dị iche iche, na-enyere ha aka ịmụta ụkpụrụ, ghọta ihe gbara ya gburugburu, na iwepụta nzaghachi ọnụ. Agbanyeghị, ọzụzụ ha anaghị etinyekarị aka na ngalaba-kpọmkwem ma ọ bụ nweta ihe ọmụma pụrụ iche ruo otu ndị ọkachamara mmadụ na ngalaba ndị ahụ.
Ya mere, mgbe LangChain, yana njikọ LLM, nwere ike ịbụ ngwá ọrụ bara uru maka ọtụtụ ọrụ dị iche iche, ọ dị mkpa ịghọta na ọkachamara ngalaba miri emi ka nwere ike ịdị mkpa na ọnọdụ ụfọdụ. Ọkachamara mmadụ nwere ihe ọmụma pụrụ iche nwere ike ịnye omimi dị mkpa, nghọta dị nro, na nghọta akọwapụtara nke ọma nke nwere ike karịa ike nke LLM naanị.
Anyị ga-adụ ọdụ ileba anya na LangChain's docs ma ọ bụ GitHub ebe nchekwa maka nghota nke oma banyere ihe eji eme ya. A na-adụ ọdụ ka ị nweta nnukwu foto nke ngwugwu a.
Olee otu o si aru oru?
Iji ghọta ebumnuche na ọrụ nke LangChain, ka anyị tụlee ihe atụ bara uru. Anyị maara na GPT-4 nwere ọmarịcha ihe ọmụma zuru oke ma nwee ike ịnye azịza ndị a pụrụ ịdabere na ya nye ọtụtụ ajụjụ.
Agbanyeghị, gịnị ma ọ bụrụ na anyị chọrọ ozi akọwapụtara site na data nke anyị, dị ka akwụkwọ nkeonwe, akwụkwọ, faịlụ PDF, ma ọ bụ nchekwa data nkeonwe?
LangChain na-enye anyị ohere ijikọ a nnukwu ụdị asụsụ dị ka GPT-4 na isi mmalite data anyị. Ọ na-agabiga naanị ịmanye snippet nke ederede na ntanetị nkata. Kama, anyị nwere ike ịtu aka na nchekwa data niile jupụtara na data nke anyị.
Ozugbo anyị nwetara ozi achọrọ, LangChain nwere ike inyere anyị aka ime ihe ụfọdụ. Dịka ọmụmaatụ, anyị nwere ike ịnye ya ntụziaka ka o zipụ ozi-e nwere nkọwa ụfọdụ.
Iji mezuo nke a, anyị na-agbaso usoro pipeline site na iji LangChain. Nke mbụ, anyị na-ewere akwụkwọ anyị chọrọ ụdị asụsụ iji zoo aka ma kewaa ya n'ime obere iberibe. A na-echekwa chunks ndị a dị ka ntinye, nke bụ ihe nnọchite anya vector nke ederede, na nchekwa data Vector.
Site na ntọlite a, anyị nwere ike iwulite ngwa ụdị asụsụ nke na-agbaso pipeline ọkọlọtọ: onye ọrụ jụrụ ajụjụ mbụ, nke ezigara na ụdị asụsụ. A na-eji ihe nnọchi anya vector nke ajụjụ a mee nyocha myirịta na ebe nchekwa data Vector, na-eweghachite ozi dị mkpa.
A na-enyeghachi akụkụ ndị a azụ na ụdị asụsụ, na-enyere ya aka ịnye azịza ma ọ bụ mee ihe achọrọ.
LangChain na-akwado mmepe nke ngwa ndị maara data, dịka anyị nwere ike idetu data nke anyị na ụlọ ahịa vector, yana ezigbo, ebe ha nwere ike ime ihe karịrị ịza ajụjụ. T
nke ya na-emepe ọtụtụ ikpe eji eme ihe, karịsịa na enyemaka onwe onye, ebe ụdị asụsụ buru ibu nwere ike ijikwa ọrụ dị ka ntinye akwụkwọ ụgbọ elu, ịnyefe ego, ma ọ bụ inye aka n'ihe metụtara ụtụ isi.
Na mgbakwunye, ihe ọ pụtara maka ịmụ na ịmụ isiokwu ọhụrụ dị oke mkpa, dịka ụdị asụsụ nwere ike idetu usoro ọmụmụ dum wee mee ka usoro mmụta dị ngwa ngwa. A na-atụkwa anya na ọganiihu ndị a ga-enwe mmetụta dị ukwuu itinye koodu, nyocha data, na sayensị data.
Otu n'ime atụmanya na-akpali akpali bụ ijikọ nnukwu ụdị asụsụ na data ụlọ ọrụ dị ugbu a, dị ka ozi ndị ahịa ma ọ bụ data ahịa. Njikọ a na API ndị dị elu dị ka Meta's API ma ọ bụ API Google na-ekwe nkwa ọganihu dị ukwuu na nyocha data na sayensị data.
Otu esi ewuo ibe weebụ (Ngosi)
Ugbu a, Langchain dị ka Python na JavaScript ngwugwu.
Anyị nwere ike ịmepụta ngwa Weebụ ngosi na-eji Streamlit, LangChain, na ụdị OpenAI GPT-3 iji mejuputa echiche LangChain.
Mana nke mbụ, anyị ga-etinyerịrị ihe ndabere ole na ole, gụnyere Streamlit, LangChain, na OpenAI.
Ihe ndi choro
Streamlit: Ngwungwu Python ewu ewu maka ịmepụta ngwa weebụ metụtara sayensị data
Mepee AI: Ịnweta ụdị asụsụ GPT-3 nke OpenAI dị mkpa.
Iji wụnye ndabere ndị a, jiri iwu ndị a na cmd:
pip install streamlit
pip install langchain
pip install openai
Bubata ngwugwu
Anyị na-amalite site na ibubata ngwugwu achọrọ, dị ka OpenAI, LangChain, na Streamlit. A na-akọwa ma mee ụdọ ụdị asụsụ anyị site na iji klas atọ sitere na LangChain: LLMChain, SimpleSequentialChain, na PromptTemplate.
import streamlit as st
from langchain.chains import LLMChain, SimpleSequentialChain
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
Ntọala Ntọala
Emebere ntọala ntọala nke ọrụ anyị site na iji syntax Streamlit. Anyị nyere ngwa ahụ aha "Gịnị bụ EZIOKWU: Iji Mfe Usoro Usoro" ma tinye njikọ akara na ebe nchekwa GitHub nke rụrụ ọrụ dị ka mkpali ngwa ahụ.
import streamlit as st
from langchain.chains import LLMChain, SimpleSequentialChain
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
Ngwa-ọgwụgwụ ngwaọrụ
Anyị ji ozi ole na ole dabara adaba hazie ngwa a, na-eji syntax Streamlit dị mfe:
# 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")
Ka ịgbakwunye wijetị n'ihu
Ọzọkwa, anyị kwesịrị ịnye wijetị ntinye ka ndị ọrụ anyị tinye ajụjụ ọ bụla.
# 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?",
)
Emeela ihe niile! Agbụ na-agba ọsọ!
Anyị na-arụ ọrụ dị iche iche n'agbụ nke arụmọrụ ọnụ SimpleSequentialChain
ịzaghachi ajụjụ onye ọrụ. A na-eme ụgbụ a n'usoro a mgbe onye ọrụ na-ahọrọ "Tell me about it"
bọtịnụ:
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
: nke bụ nzọụkwụ mbụ na pipeline anyị, na-enweta ajụjụ onye ọrụ dị ka ntinye na mmepụta. Ajụjụ onye ọrụ na-eje ozi dị ka ndebiri yinye.- Dabere na nkwupụta jikọtara na ajụjụ ahụ, ndị
assumptions_chain
na-ewepụta ndepụta echiche nke mgbọ site na iji nsonaazụ sitere naquestion_chain
dị ka ntinye. NkeLLMChain
naOpenAI
ejiri ihe nlereanya sitere na LangChain wuo nkwupụta ahụ. Enyere onye ọrụ ọrụ ịmepụta ndepụta nke echiche ndị e mere iji mepụta nkwupụta site na iji template maka yinye a. - Dabere na nsonaazụ sitere na
question_chain
naassumptions_chain
, nafact_checker_chain
na-ewepụta ndepụta nkwuputa n'ụdị nke mgbọ. A na-emepụta nkwupụta ahụ site na ijiOpenAI
nlereanya naLLMChain
sitere na LangChain. Enyere onye ọrụ ọrụ ịchọpụta ma nkwupụta ọ bụla ziri ezi ma ọ bụ na ezighi ezi yana inye ihe ziri ezi maka ndị ahụ dị. - The
answer_chain
na-eji nsonaazụ sitere naquestion_chain
,assumptions_chain
, nafact_checker_chain
dị ka ntinye iji mepụta nzaghachi nye ajụjụ onye ọrụ site na iji data nke agbụ mbụ mepụtara. Ihe ndebiri maka yinye a na-arịọ ka onye ọrụ zaa ajụjụ mbụ site na iji eziokwu emepụtara. - Iji nye nzaghachi kachasị na ajụjụ onye ọrụ dabere na ozi ndị agbụ mbụ mepụtara, anyị na-ejikọta ụdọ ndị a n'ime agbụ niile. Mgbe emechara agbụ ahụ, anyị na-eji
st.success()
iji gosi onye ọrụ ngwọta.
mmechi
Anyị nwere ike jikọta omume ụdị asụsụ dị iche iche iji mepụta pipeline gbagwojuru anya site na iji SimpleSequentialChain
Ọnụ ego nke LangChain. Maka ụdị ngwa NLP dị iche iche, gụnyere chatbots, sistemu ajụjụ na azịza, yana ngwa ntụgharị asụsụ, nke a nwere ike inye aka.
A na-ahụ ọmarịcha nke LangChain n'ikike ya ịkọwapụta, nke na-enyere onye ọrụ aka itinye uche n'ihe dị ugbu a karịa nkọwa nke nhazi asụsụ.
LangChain na-eme ka usoro ịmepụta ụdị asụsụ ọkaibe karịa ndị ọrụ site na ịnye ụdị a zụrụ azụ na nhọrọ nke ndebiri.
Ọ na-enye gị nhọrọ ịmegharị ụdị asụsụ site na iji data nke ha, na-eme ka ọ dị mfe ịhazi ụdị asụsụ. Nke a na-enyere aka ịmepụta ụdị nke ziri ezi, ngalaba-kpọmkwem nke, maka ọrụ enyere, na-egosipụta ụdị a zụrụ azụ.
The SimpleSequentialChain
modul na njirimara ndị ọzọ nke LangChain na-eme ka ọ bụrụ ngwá ọrụ dị irè maka ịmepụta ngwa ngwa na ibuga usoro NLP ọkaibe.
Nkume a-aza