LangChain dia fitaovana manara-penitra sy matanjaka novolavolaina mba hampiasana ny herin'ny Large Language Models (LLMs).
Ireo LLM ireo dia manana fahaiza-manao miavaka ary afaka miatrika asa maro be. Na izany aza, zava-dehibe ny manamarika fa ny tanjany dia miankina amin'ny toetrany amin'ny ankapobeny fa tsy ny fahaiza-manaon'ny sehatra lalina. Nitombo haingana ny lazany nanomboka tamin'ny fampidirana ny GPT-4.
Na dia mahay mitantana asa isan-karazany aza ny LLM, dia mety hiatrika fetra izy ireo amin'ny fanomezana valiny manokana na fiatrehana asa izay mitaky fahalalana lalina. Diniho, ohatra, ny fampiasana LLM hamaliana fanontaniana na hanao asa amin'ny sehatra manokana toy ny fanafody na lalàna.
Na dia afaka mamaly fanontaniana ankapobeny momba ireo sehatra ireo aza ny LLM, dia mety ho sahirana ny manolotra valiny amin'ny antsipiriany kokoa na miorim-paka izay mila fahalalana na fahaiza-manao manokana.
Izany dia satria ny LLM dia voaofana amin'ny angona lahatsoratra marobe avy amin'ny loharano samihafa, ahafahan'izy ireo mianatra lamina, mahatakatra ny teny manodidina, ary miteraka valiny mirindra. Na izany aza, ny fanofanana ataon'izy ireo dia tsy tafiditra amin'ny fahazoana fahalalana manokana amin'ny sehatra manokana na manokana mitovy amin'ny an'ny manam-pahaizana momba ny olombelona amin'ireo sehatra ireo.
Noho izany, raha LangChain, miaraka amin'ny LLMs, dia mety ho fitaovana tena sarobidy ho an'ny asa maro isan-karazany, zava-dehibe ny mahafantatra fa mety mbola ilaina ny fahaiza-manao sehatra lalina amin'ny toe-javatra sasany. Ireo manam-pahaizana momba ny olombelona manana fahalalana manokana dia afaka manome ny halaliny ilaina, ny fahatakarana mirindra, ary ny hevi-baovao manokana izay mety tsy ho vitan'ny LLM irery ihany.
Manoro hevitra izahay hijery ny doka LangChain na GitHub fitehirizana ho an'ny fahatakarana lalindalina kokoa ny tranga fampiasana azy. Manoro hevitra mafy ny haka sary lehibe kokoa amin'ity fonosana ity.
Ahoana ny fomba fiasan'izy io?
Mba hahatakarana ny tanjona sy ny asan'ny LangChain, andeha isika handinika ohatra azo ampiharina. Fantatsika fa manana fahalalana ankapobeny mahavariana ny GPT-4 ary afaka manome valiny azo itokisana amin'ny fanontaniana marobe.
Ahoana anefa raha mila fampahalalana manokana avy amin'ny angonay manokana isika, toy ny antontan-taratasy manokana, boky, rakitra PDF, na angon-drakitra manokana?
LangChain dia mamela antsika hifandray a modely fiteny lehibe toy ny GPT-4 amin'ny loharano angon-drakitra manokana. Mihoatra noho ny fametahana sombin-tsoratra fotsiny amin'ny fifandraisana amin'ny chat izany. Fa kosa, azontsika atao ny manondro angona iray manontolo feno ny angonay manokana.
Vantany vao azonay ny fampahalalana irina, LangChain dia afaka manampy anay amin'ny fandraisana andraikitra manokana. Ohatra, azontsika atao ny mandidy azy handefa mailaka misy antsipiriany sasany.
Mba hanatratrarana izany, manaraka fomba fantsona mampiasa LangChain. Voalohany, alaintsika ny antontan-taratasy tiantsika modely fiteny hanondro sy hizara izany ho tapany kely kokoa. Ireo tapa-kazo ireo dia tehirizina ho toy ny embeddings, izay fanehoana vetaveta amin'ny lahatsoratra, ao anaty tahiry Vector.
Amin'ity fanamboarana ity dia afaka manangana rindranasa modely amin'ny fiteny izay manaraka fantsona mahazatra izahay: mametraka fanontaniana voalohany ny mpampiasa iray, izay alefa any amin'ny maodely fiteny. Ny fanehoana vetaveta an'ny fanontaniana dia ampiasaina hanaovana fikarohana fitoviana ao amin'ny Vector Database, maka ireo sombin-tantara mifandraika amin'izany.
Averina amin'ny maodelin'ny fiteny ireo sombiny ireo avy eo, ahafahany manome valiny na mandray ny hetsika tiana.
Ny LangChain dia manamora ny fampivoarana ny fampiharana izay mahafantatra ny angona, satria afaka manondro ny angonay manokana ao amin'ny fivarotana vector izahay, ary azo antoka, satria afaka manao hetsika mihoatra ny famaliana fanontaniana. T
Izy dia manokatra tranga maro azo ampiasaina, indrindra amin'ny fanampiana manokana, izay ahafahan'ny maodely amin'ny fiteny lehibe manao asa toy ny famandrihana sidina, famindrana vola, na fanampiana amin'ny raharaha mifandraika amin'ny hetra.
Fanampin'izany, ny fiantraikany amin'ny fianarana sy ny fianarana taranja vaovao dia manan-danja, satria ny maodely fiteny dia afaka manondro syllabus iray manontolo ary manafaingana ny fizotran'ny fianarana. Ny kaody, ny famakafakana angon-drakitra, ary ny siansa momba ny angona ihany koa dia antenaina fa hisy fiantraikany lehibe amin'ireo fandrosoana ireo.
Ny iray amin'ireo fanantenana mampientam-po indrindra dia ny fampifandraisana ireo modely amin'ny fiteny lehibe amin'ny angon'ny orinasa efa misy, toy ny mombamomba ny mpanjifa na ny angona momba ny varotra. Ity fampidirana ity miaraka amin'ny API efa mandroso toa ny Meta's API na ny Google's API dia mampanantena fandrosoan'ny fandrosoana eo amin'ny famakafakana angona sy ny siansa angon-drakitra.
Ahoana ny fananganana pejin-tranonkala (Demo)
Amin'izao fotoana izao, Langchain dia misy amin'ny Python sy JavaScript Packages.
Afaka mamorona fihetsiketsehana Web App mampiasa Streamlit, LangChain, ary OpenAI GPT-3 modely isika mba hampiharana ny foto-kevitra LangChain.
Saingy aloha, tsy maintsy mametraka fiankinana vitsivitsy isika, ao anatin'izany ny Streamlit, LangChain, ary OpenAI.
Pre-notakiana
Streamlit: Fonosana Python malaza amin'ny famoronana rindranasa tranonkala mifandraika amin'ny siansa data
OpenAI: Ilaina ny fidirana amin'ny maodely fiteny GPT-3 an'ny OpenAI.
Mba hametrahana ireo fiankinana ireo dia ampiasao ireto baiko manaraka ireto amin'ny cmd:
pip install streamlit
pip install langchain
pip install openai
Import Packages
Manomboka amin'ny fanafarana ireo fonosana ilaina izahay, toy ny OpenAI, LangChain, ary Streamlit. Ny rojo modely amin'ny fiteny dia voafaritra sy tanterahina amin'ny fampiasana kilasy telo avy amin'ny LangChain: LLMChain, SimpleSequentialChain, ary PromptTemplate.
import streamlit as st
from langchain.chains import LLMChain, SimpleSequentialChain
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
Fananganana fototra
Ny fototry ny tetik'asanay dia natsangana tamin'ny fampiasana syntax Streamlit. Nomenay ny lohateny hoe “Inona no MARINA: Fampiasana rojo filaharana tsotra” ary nampidirinay rohy marika mankany amin'ny tahiry GitHub izay aingam-panahy ho an'ny fampiharana.
import streamlit as st
from langchain.chains import LLMChain, SimpleSequentialChain
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
Widgets eo anoloana
Nanangana ny fampiharana miaraka amin'ny fampahalalana manan-danja vitsivitsy izahay, amin'ny fampiasana syntax Streamlit tsotra:
# 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")
Hanampy widgets eo anoloana
Fanampin'izay, mila manome Widget fampidirana izahay mba ahafahan'ny mpampiasa mametraka fanontaniana.
# 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?",
)
Vita daholo! Mitsangana ny rojo!
Mampiasa rojom-piasa isan-karazany miaraka amin'ny SimpleSequentialChain
hamaly ny fanontanian'ny mpampiasa. Ny rojo dia atao amin'ny filaharana manaraka rehefa misafidy ny mpampiasa ny "Tell me about it"
bokotra:
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
: izay dingana voalohany amin'ny fantsonay, mandray ny fanontanian'ny mpampiasa ho fampidirana sy fivoahana. Ny fanontanian'ny mpampiasa dia toy ny maodelin'ny rojo.- Miorina amin'ny fanambarana mifandray amin'ny fanontaniana, ny
assumptions_chain
dia mamorona lisitry ny vinavina amin'ny alàlan'ny vokatra avy amin'nyquestion_chain
ho fampidirana. nyLLMChain
aryOpenAI
Modely avy amin'ny LangChain dia nampiasaina hanamboarana ny fanambarana. Ny mpampiasa dia asaina mamorona lisitr'ireo vinavina natao mba hamokarana ny fanambarana amin'ny fampiasana ny môdely ho an'ity rojo ity. - Miorina amin'ny vokatra azo avy amin'ny
question_chain
aryassumptions_chain
, nyfact_checker_chain
mamorona lisitry ny fanambarana amin'ny endrika teboka bala. Ny fangatahana dia novokarina tamin'ny fampiasana nyOpenAI
modely aryLLMChain
avy amin'ny LangChain. Ny mpampiasa dia manana andraikitra amin'ny famaritana raha marina na diso ny fitakiana tsirairay ary manome fanamarinana ho an'ireo izay. - The
answer_chain
mampiasa ny outputs avy amin'nyquestion_chain
,assumptions_chain
, aryfact_checker_chain
ho fampidirana mba hamoronana valiny amin'ny fanontanian'ny mpampiasa amin'ny fampiasana ny angona novokarin'ny rojo teo aloha. Ny môdely ho an'ity rojo ity dia mangataka ny mpampiasa hamaly ny fanontaniana voalohany amin'ny fampiasana ny zava-misy noforonina. - Mba hanomezana valiny farany amin'ny fanontanian'ny mpampiasa mifototra amin'ny fampahalalana novokarin'ny rojo teo aloha, dia ampidirinay ao anatin'ny rojo manontolo ireo rojo ireo. Rehefa vita ny rojo dia ampiasainay
st.success()
mba hampisehoana ny mpampiasa ny vahaolana.
Famaranana
Afaka manambatra fotsiny ireo hetsika modely amin'ny fiteny samihafa isika mba hamoronana fantsona sarotra kokoa amin'ny fampiasana ny SimpleSequentialChain
Module an'ny LangChain. Ho an'ny fampiharana NLP isan-karazany, anisan'izany ny chatbots, rafitra fanontaniana sy valiny, ary fitaovana fandikan-teny amin'ny fiteny, dia mety hanampy tokoa izany.
Ny famirapiratan'ny LangChain dia hita ao amin'ny fahaizany mamakafaka, izay ahafahan'ny mpampiasa mifantoka amin'ny olana ankehitriny fa tsy ny mari-pamantarana momba ny fiteny.
Ny LangChain dia manao ny dingana amin'ny famoronana modely amin'ny fiteny sophisticated ho mora kokoa amin'ny mpampiasa amin'ny alàlan'ny fanolorana modely efa voaofana mialoha sy modely mifantina.
Manome anao safidy hanatsara ny maodelin'ny fiteny amin'ny alalan'ny angon-dry zareo manokana izy io, ka mahatonga azy ho mora ny mampifanaraka ny maodelin'ny fiteny. Izany dia ahafahan'ny fampivoarana modely voafaritra tsara kokoa, voafaritra amin'ny sehatra izay, ho an'ny asa iray, mihoatra ny modely voaofana.
The SimpleSequentialChain
Ny module sy ny endri-javatra hafa an'ny LangChain dia mahatonga azy io ho fitaovana mahomby amin'ny fampivoarana haingana sy fametrahana rafitra NLP sophisticated.
Leave a Reply