LangChain chishandiso chekucheka-kumucheto uye chakasimba chakagadzirwa kuti chishandise simba reMakuru Mutauro Models (LLMs).
Aya maLLM ane hunyanzvi hunoshamisa uye anogona kunyatsoita mabasa akawanda. Nekudaro, zvakakosha kuti uzive kuti simba ravo riri muhunhu hwavo hwese pane hwakadzama domain hunyanzvi. Kuzivikanwa kwayo kwakakura nekukurumidza kubva pakatanga GPT-4.
Nepo maLLM achikunda pakubata mabasa akasiyana siyana, anogona kutarisana nezvipimo kana zvasvika pakupa mhinduro dzakanangana kana kuita mabasa anoda ruzivo rwakadzama domain. Funga, semuenzaniso, kushandisa LLM kupindura mibvunzo kana kuita mabasa mukati menzvimbo dzakakosha semushonga kana mutemo.
Nepo iyo LLM ichigona kupindura kune zvakajairika kubvunza nezve minda iyi, zvinogona kunetsa kupa mhinduro dzakadzama kana dzakadzama dzinoda ruzivo rwehunyanzvi kana hunyanzvi.
Izvi zvinodaro nekuti maLLM anodzidziswa pahuwandu hwakakura hwe data kubva kwakasiyana masosi, zvichiita kuti vadzidze mapatani, kunzwisisa mamiriro, uye kugadzira mhinduro dzinoenderana. Nekudaro, kudzidziswa kwavo hakuwanzo kusanganisa domain-chaiyo kana ruzivo rwehunyanzvi kusvika pamwero wakafanana nenyanzvi dzevanhu mundima idzodzo.
Naizvozvo, nepo LangChain, pamwe chete neLLMs, inogona kuve chishandiso chakakosha kune yakakura siyana yemabasa, zvakakosha kuziva kuti yakadzika domain hunyanzvi hunogona kunge huchiri kudikanwa mune mamwe mamiriro. Nyanzvi dzevanhu dzine ruzivo rwakanyanya dzinogona kupa hudzamu hunodiwa, kunzwisisa kwakadzama, uye nemamiriro ezvinhu-zvakananga maonero anogona kunge ari kunze kwekugona kweLLM chete.
Isu tinopa zano kutarisa LangChain's docs kana GitHub repository yekunyatsonzwisisa kwemaitiro ayo ekushandisa kesi. Inokurudzirwa zvakanyanya kuwana mufananidzo wakakura weiyi bundle.
Chinoshanda sei?
Kuti tinzwisise chinangwa nebasa reLangChain, ngatitarisei muenzaniso unoshanda. Tinoziva kuti GPT-4 ine ruzivo rwakakwana uye inogona kupa mhinduro dzakavimbika kumibvunzo yakawanda.
Nekudaro, ko kana isu tichida ruzivo rwakananga kubva kune yedu pachedu data, senge gwaro remunhu, bhuku, PDF faira, kana proprietary database?
LangChain inotibvumira kubatanidza a muenzaniso mukuru wemutauro seGPT-4 kune edu pachedu edata. Izvo zvinopfuura kungoisa snippet yemavara mune yekutaura interface. Pane kudaro, isu tinokwanisa kutarisa dhatabhesi rese rakazadzwa nedata redu.
Kana tangowana ruzivo rwatinoda, LangChain inogona kutibatsira mukutora matanho chaiwo. Semuenzaniso, tinogona kuiraira kutumira email ine mamwe mashoko.
Kuti tiite izvi, tinotevera nzira yepombi tichishandisa LangChain. Kutanga, tinotora gwaro ratinoda mutauro womuenzaniso kutarisa uye kukamura kuita zvidimbu zvidiki. Aya machunks anobva achengetwa se embeddings, ayo ari Vector inomiririra yezvinyorwa, muVector Database.
Nekuseta uku, tinokwanisa kuvaka mashandisirwo emhando yemutauro anotevera pombi yakajairwa: mushandisi anobvunza mubvunzo wekutanga, wozotumirwa kumhando yemutauro. Mubvunzo wevector inomiririra inoshandiswa kuita tsvakiridzo yakafanana muVector Database, kudzoreredza machunks eruzivo.
Aya machunks anobva adzoserwa kumhando yemutauro, zvichiita kuti ipe mhinduro kana kutora chiito chaunoda.
LangChain inofambisa kuvandudzwa kwezvikumbiro zvinoziva data, sezvo isu tichigona kunongedzera pachedu data muchitoro chevector, uye chechokwadi, sezvo vachigona kutora matanho kupfuura kupindura mibvunzo. T
yake inovhura huwandu hwezviitiko zvekushandisa zvinoshanda, kunyanya murubatsiro rwemunhu, apo modhi yakakura yemutauro inogona kubata mabasa senge kubhuka ndege, kutumira mari, kana kubatsira nenyaya dzine chekuita nemutero.
Pamusoro pazvo, zvinorehwa pakudzidza nekudzidza zvidzidzo zvitsva zvakakosha, sezvo modhi yemutauro inogona kureva sirabhasi yese uye nekuchimbidza nzira yekudzidza. Coding, ongororo yedata, uye sainzi yedata inotarisirwawo kukanganiswa zvakanyanya nekufambira mberi uku.
Imwe yetarisiro inonakidza ndeyekubatanidza mhando dzemitauro mikuru kune data yekambani iripo, senge ruzivo rwevatengi kana data rekushambadzira. Uku kubatanidzwa nemaAPI epamberi senge Meta's API kana Google's API inovimbisa kufambira mberi kwakanyanya mu data analytics uye data sainzi.
Maitiro ekugadzira Webhu peji (Demo)
Parizvino, Langchain inowanikwa sePython uye JavaScript Packages.
Tinogona kugadzira ratidziro yeWebhu app tichishandisa Streamlit, LangChain, uye OpenAI GPT-3 modhi yekushandisa iyo LangChain pfungwa.
Asi chekutanga, isu tinofanirwa kuisa mashoma anotsamira, anosanganisira Streamlit, LangChain, uye OpenAI.
Pre-required
Streamlit: Iyo yakakurumbira Python package yekugadzira data sainzi-inoenderana newebhu maapplication
OpenAI: Kuwana kuOpenAI's GPT-3 mutauro modhi inodiwa.
Kuisa izvi zvinoenderana, shandisa inotevera mirairo mu cmd:
pip install streamlit
pip install langchain
pip install openai
Import Packages
Isu tinotanga nekutumira kunze mapakeji anodiwa, akadai seOpenAI, LangChain, uye Streamlit. Macheni edu emhando dzemitauro anotsanangurwa uye anoitwa pachishandiswa makirasi matatu kubva kuLangChain: LLMChain, SimpleSequentialChain, uye PromptTemplate.
import streamlit as st
from langchain.chains import LLMChain, SimpleSequentialChain
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
Basic Setup
Hwaro hwehurongwa hweprojekiti yedu hwakabva hwaiswa uchishandisa Streamlit syntax. Isu takapa iyo app zita rekuti "Chii CHOKWADI: Kushandisa Nyore Sequential Chain" uye yaisanganisira chiratidzo chekudzika kune GitHub repository iyo yakashanda sekufemerwa kweapp.
import streamlit as st
from langchain.chains import LLMChain, SimpleSequentialChain
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
Front-End Widgets
Isu tinoseta iyo app ine ruzivo rushoma rwakakodzera, tichishandisa yakapusa 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")
Kuwedzera kumberi-kumagumo majeti
Kupfuurirazve, isu tinofanirwa kupa iyo yekuisa widget kuti tibvumire vashandisi vedu kupinda chero mibvunzo.
# 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?",
)
Zvese zvaitwa! Cheni dziri kufamba!
Isu tinoshandisa akasiyana maketani ekushanda pamwe chete SimpleSequentialChain
kupindura kumubvunzo wemushandisi. Maketani anoitwa mune inotevera kutevedzana kana mushandisi asarudza iyo "Tell me about it"
bhatani:
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
: inova nhanho yekutanga mupombi yedu, inogamuchira mubvunzo wemushandisi sekupinza uye kubuda. Muvhunzo wemushandisi unoshanda secheni template.- Kubva pane chirevo chakabatana nemubvunzo, iyo
assumptions_chain
inogadzira bullet-point runyorwa rwefungidziro uchishandisa zvinobuda kubva kuquestion_chain
sekupinza. TheLLMChain
uyeOpenAI
modhi kubva kuLangChain yakashandiswa kugadzira chirevo. Mushandisi anopihwa basa rekugadzira runyoro rwefungidziro dzakaitwa kuitira kuburitsa chirevo vachishandisa template yeketani iyi. - Kubva pane zvakabuda kubva ku
question_chain
uyeassumptions_chain
, ivofact_checker_chain
inoburitsa runyoro rwezvitsidzo nenzira yemabullet point. Zvikumbiro zvinogadzirwa uchishandisa iyoOpenAI
modhi uyeLLMChain
kubva kuLangChain. Mushandisi anopihwa basa rekuona kana chirevo chega chega chakarurama kana kuti chisina uye nekupa zvikonzero kune avo vari. - The
answer_chain
inoshandisa zvinobuda kubva kuquestion_chain
,assumptions_chain
, uyefact_checker_chain
semipumburu yekugadzira mhinduro kumubvunzo wemushandisi uchishandisa data rakagadzirwa nemaketani ekutanga. The template yeiyi cheni inokumbira kuti mushandisi apindure kumubvunzo wekutanga achishandisa chokwadi chakagadzirwa. - Kuti tipe mhinduro yekupedzisira kumubvunzo wemushandisi zvichienderana neruzivo rwunoburitswa nemacheni ekutanga, tinosanganisa cheni idzi mucheni yese. Mushure mokunge maketani apera, tinoshandisa
st.success()
kuratidza mushandisi mhinduro.
mhedziso
Isu tinokwanisa kungobatanidza zviito zvemhando dzakasiyana dzemitauro kugadzira mapaipi akaomarara nekushandisa SimpleSequentialChain
module yeLangChain. Kune akasiyana siyana eNLP maapplication, anosanganisira chatbots, mibvunzo-nemhinduro masisitimu, uye maturusi ekushandura mitauro, izvi zvinogona kubatsira.
Kubwinya kweLangChain kunowanikwa mukukwanisa kwayo kuita abstract, izvo zvinoita kuti mushandisi atarise nyaya yazvino pane kutarisisa kwemhando yemutauro.
LangChain inoita kuti hurongwa hwekugadzira mhando dzemitauro dzakaoma kunzwisisa dziwedzere kushandiswa nekupa mienzaniso yakagara yakadzidziswa uye sarudzo yematemplate.
Inokupa sarudzo yekunatsa-mamodheru emitauro uchishandisa yavo data, zvichiita kuti zvive nyore kugadzirisa mhando dzemitauro. Izvi zvinogonesa kugadzirwa kwemamwe chaiwo, madomasi-akananga mamodheru ayo, kune rimwe basa rakapihwa, anokunda mamodheru akadzidziswa.
The SimpleSequentialChain
module uye mamwe maficha eLangChain anoita kuti ive chishandiso chinoshanda chekukurumidza kugadzira uye kuendesa yakaomesesa NLP masisitimu.
Leave a Reply