Ang LangChain usa ka cutting-edge ug lig-on nga himan nga gihimo aron magamit ang gahum sa Large Language Models (LLMs).
Kini nga mga LLM adunay talagsaon nga mga kapabilidad ug epektibo nga makasulbad sa daghang mga buluhaton. Bisan pa, hinungdanon nga timan-an nga ang ilang kusog naa sa ilang kinatibuk-ang kinaiya kaysa sa lawom nga kahanas sa domain. Ang pagkapopular niini kusog nga mitubo sukad sa pagpaila sa GPT-4.
Samtang ang mga LLM milabaw sa pagdumala sa lain-laing mga buluhaton, mahimo silang mag-atubang sa mga limitasyon kung bahin sa paghatag ug piho nga mga tubag o pag-atubang sa mga buluhaton nga nanginahanglan lawom nga kahibalo sa domain. Hunahunaa, pananglitan, ang paggamit sa usa ka LLM aron matubag ang mga pangutana o maghimo mga buluhaton sa sulod sa mga espesyal nga natad sama sa medisina o balaod.
Samtang ang LLM siguradong makatubag sa mga kinatibuk-ang pangutana bahin sa kini nga mga natad, mahimo’g maglisud kini sa pagtanyag og mas detalyado o nuanced nga mga tubag nga nanginahanglan espesyal nga kahibalo o kahanas.
Kini tungod kay ang mga LLM gibansay sa daghang mga datos sa teksto gikan sa lainlaing mga gigikanan, nga makapahimo kanila nga makakat-on sa mga sumbanan, makasabut sa konteksto, ug makamugna og managsama nga mga tubag. Bisan pa, ang ilang pagbansay dili kasagaran nga naglambigit sa piho nga domain o espesyal nga pag-angkon sa kahibalo sa parehas nga gidak-on sa mga eksperto sa tawo sa mga natad.
Busa, samtang ang LangChain, inubanan sa mga LLM, mahimong usa ka bililhon nga himan alang sa usa ka halapad nga mga buluhaton, hinungdanon nga mahibal-an nga ang lawom nga kahanas sa domain mahimo pa nga kinahanglanon sa pipila nga mga sitwasyon. Ang mga eksperto sa tawo nga adunay espesyal nga kahibalo makahatag sa gikinahanglan nga giladmon, nuanced nga pagsabut, ug mga panabut nga piho sa konteksto nga mahimo’g lapas sa mga kapabilidad sa mga LLM lamang.
Gitambagan namon ang pagtan-aw sa LangChain's docs o GitHub repository alang sa mas bug-os nga pagsabot sa kasagarang mga kaso sa paggamit niini. Kusganon nga gitambagan nga makakuha og mas dako nga hulagway niini nga bundle.
Giunsa kini molihok?
Aron masabtan ang katuyoan ug buhat sa LangChain, atong tagdon ang usa ka praktikal nga pananglitan. Nahibal-an namon nga ang GPT-4 adunay impresibo nga kinatibuk-ang kahibalo ug makahatag kasaligan nga mga tubag sa daghang mga pangutana.
Apan, komosta kon gusto nato ang espesipikong impormasyon gikan sa atong kaugalingong datos, sama sa personal nga dokumento, libro, PDF file, o proprietary database?
LangChain nagtugot kanato sa pagkonektar sa usa ka dako nga modelo sa pinulongan sama sa GPT-4 sa atong kaugalingong mga tinubdan sa datos. Labaw pa sa pag-paste lang og snippet sa text ngadto sa chat interface. Hinuon, mahimo namong i-refer ang tibuok database nga puno sa among kaugalingong data.
Sa higayon nga makuha na namo ang gitinguha nga impormasyon, ang LangChain makatabang kanamo sa paghimo og piho nga mga aksyon. Pananglitan, mahimo namong itudlo kini sa pagpadala og email nga adunay pipila ka mga detalye.
Aron makab-ot kini, nagsunod kami sa pamaagi sa pipeline gamit ang LangChain. Una, gikuha namo ang dokumento nga gusto namo modelo sa pinulongan sa paghisgot ug pagbahin niini ngadto sa gagmay nga mga tipik. Kini nga mga tipak gitipigan ingon nga mga embeddings, nga mao vector representasyon sa teksto, sa usa ka Vector Database.
Uban niini nga setup, makahimo kami og mga aplikasyon sa modelo sa pinulongan nga nagsunod sa usa ka standard nga pipeline: ang usa ka user mangutana sa usa ka inisyal nga pangutana, nga ipadala ngadto sa modelo sa pinulongan. Ang representasyon sa vector sa pangutana gigamit sa paghimo sa pagpangita sa pagkaparehas sa Vector Database, pagkuha sa mga may kalabutan nga tipik sa impormasyon.
Kini nga mga tipik ibalik sa modelo sa lengguwahe, nga makapahimo niini nga makahatag usa ka tubag o mahimo ang gusto nga aksyon.
Gipadali sa LangChain ang pag-uswag sa mga aplikasyon nga nahibal-an sa datos, tungod kay mahimo naton i-refer ang atong kaugalingon nga datos sa usa ka tindahan sa vector, ug tinuod, tungod kay makahimo sila mga aksyon lapas sa pagtubag sa mga pangutana. T
ang iyang nagbukas sa daghang mga praktikal nga kaso sa paggamit, labi na sa personal nga tabang, diin ang usa ka dako nga modelo sa pinulongan makadumala sa mga buluhaton sama sa pag-book sa mga flight, pagbalhin salapi, o pagtabang sa mga butang nga may kalabotan sa buhis.
Dugang pa, ang mga implikasyon sa pagtuon ug pagkat-on sa bag-ong mga hilisgutan mahinungdanon, tungod kay ang usa ka modelo sa pinulongan mahimong maghisgot sa tibuok syllabus ug makapadali sa proseso sa pagkat-on. Ang coding, pagtuki sa datos, ug siyensya sa datos gilauman usab nga maimpluwensyahan pag-ayo sa kini nga mga pag-uswag.
Usa sa labing kulbahinam nga mga palaaboton mao ang pagkonektar sa dagkong mga modelo sa pinulongan ngadto sa kasamtangan nga datos sa kompanya, sama sa impormasyon sa kustomer o datos sa marketing. Kini nga integrasyon sa mga advanced API sama sa Meta's API o Google's API nagsaad og exponential nga pag-uswag sa data analytics ug data science.
Unsaon Paghimo sa usa ka Webpage (Demo)
Sa pagkakaron, ang Langchain anaa isip Python ug JavaScript Packages.
Makahimo kami og usa ka demonstrasyon sa Web App nga naggamit sa Streamlit, LangChain, ug ang OpenAI GPT-3 nga modelo aron ipatuman ang konsepto sa LangChain.
Apan una, kinahanglan natong i-install ang pipila ka mga dependency, lakip ang Streamlit, LangChain, ug OpenAI.
Mga pre-requisite
Streamlit: Usa ka sikat nga pakete sa Python alang sa paghimo sa mga aplikasyon sa web nga may kalabotan sa data science
OpenAI: Gikinahanglan ang access sa GPT-3 nga modelo sa pinulongan sa OpenAI.
Aron ma-install kini nga mga dependency, gamita ang mosunod nga mga sugo sa cmd:
pip install streamlit
pip install langchain
pip install openai
Import nga mga Pakete
Nagsugod kami pinaagi sa pag-import sa gikinahanglan nga mga pakete, sama sa OpenAI, LangChain, ug Streamlit. Ang among mga kadena sa modelo sa pinulongan gihubit ug gipatuman gamit ang tulo ka klase gikan sa LangChain: LLMChain, SimpleSequentialChain, ug PromptTemplate.
import streamlit as st
from langchain.chains import LLMChain, SimpleSequentialChain
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
Basic Setup
Ang structural nga basehan sa among proyekto gibutang dayon gamit ang Streamlit syntax. Gihatagan namo ang app sa titulo nga "Unsa ang TINUOD: Paggamit sa Simple Sequential Chain" ug gilakip ang markdown link sa GitHub repository nga nagsilbing inspirasyon sa app.
import streamlit as st
from langchain.chains import LLMChain, SimpleSequentialChain
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
Mga Widget sa Front-End
Gi-set up namon ang app nga adunay gamay nga kasayuran, gamit ang yano nga Streamlit syntax:
# 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")
Aron idugang ang front-end nga mga widget
Dugang pa, kinahanglan namon nga maghatag usa ka input widget aron tugutan ang among mga tiggamit nga makasulod sa bisan unsang mga pangutana.
# 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?",
)
Nahuman na ang tanan! Ang mga kadena nagdagan ug nagdagan!
Gigamit namon ang lainlaing mga kadena sa operasyon kauban ang SimpleSequentialChain
sa pagtubag sa pangutana sa user. Ang mga kadena gihimo sa mosunod nga han-ay sa diha nga ang user mopili sa "Tell me about it"
button:
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
: nga mao ang unang lakang sa among pipeline, nakadawat sa pangutana sa user isip input ug output. Ang pangutana sa user nagsilbing template sa kadena.- Base sa usa ka pahayag nga nalambigit sa pangutana, ang
assumptions_chain
nagmugna og bullet-point list sa mga pangagpas gamit ang output gikan saquestion_chain
isip input. AngLLMChain
ugOpenAI
modelo gikan sa LangChain gigamit sa paghimo sa pahayag. Ang user gitahasan sa paghimo sa usa ka lista sa mga pangagpas nga gihimo aron sa paghimo sa pahayag gamit ang template alang niini nga kadena. - Base sa mga output gikan sa
question_chain
ugassumptions_chain
, ang mgafact_checker_chain
nagmugna og lista sa mga assertion sa porma sa bullet points. Ang mga pag-angkon gihimo gamit angOpenAI
modelo ugLLMChain
gikan sa LangChain. Ang user gitahasan sa pagtino kung ang matag pag-angkon tukma o dili husto ug paghatag og katarungan alang niadtong mao. - ang
answer_chain
naggamit sa mga output gikan saquestion_chain
,assumptions_chain
, Ugfact_checker_chain
isip mga input aron makamugna og tubag sa pangutana sa user gamit ang datos nga gihimo sa naunang mga kadena. Ang template alang niini nga kadena naghangyo nga ang user motubag sa unang pangutana gamit ang mga kamatuoran nga gibuhat. - Aron mahatagan ang katapusang tubag sa pangutana sa tiggamit base sa kasayuran nga gihimo sa naunang mga kadena, among gihiusa kini nga mga kadena sa kinatibuk-ang kadena. Human makompleto ang mga kadena, among gigamit
st.success()
aron ipakita sa tiggamit ang solusyon.
Panapos
Mahimo ra namon nga magkadena ang lainlaing mga aksyon sa modelo sa lengguwahe aron makahimo og labi ka komplikado nga mga linya sa tubo pinaagi sa paggamit sa SimpleSequentialChain
module sa LangChain. Alang sa usa ka halapad nga lainlain nga aplikasyon sa NLP, lakip ang mga chatbot, mga sistema sa pangutana-ug-tubag, ug mga himan sa paghubad sa lengguwahe, mahimo’g makatabang kini.
Ang kahayag sa LangChain makita sa iyang kapasidad sa abstract, nga makahimo sa user sa pag-concentrate sa kasamtangan nga isyu kay sa mga detalye sa modelo sa pinulongan.
Gihimo sa LangChain ang proseso sa pagmugna og sopistikado nga mga modelo sa pinulongan nga mas mahigalaon sa user pinaagi sa pagtanyag og pre-trained nga mga modelo ug pagpili sa mga templates.
Naghatag kini kanimo og kapilian sa pagpahiangay sa mga modelo sa lengguwahe gamit ang ilang kaugalingon nga datos, nga nagpasimple sa pag-customize sa mga modelo sa pinulongan. Kini makapahimo sa pag-uswag sa mas tukma, domain-specific nga mga modelo nga, alang sa usa ka trabaho, labaw sa performance sa nabansay nga mga modelo.
ang SimpleSequentialChain
module ug uban pang mga bahin sa LangChain naghimo niini nga usa ka epektibo nga himan alang sa dali nga pagpalambo ug pag-deploy sa mga sopistikado nga sistema sa NLP.
Leave sa usa ka Reply