LangChain jẹ gige-eti ati ohun elo to lagbara ti a dagbasoke lati lo agbara ti Awọn awoṣe Ede nla (LLMs).
Awọn LLM wọnyi ni awọn agbara iyalẹnu ati pe wọn le koju ọpọlọpọ awọn iṣẹ ṣiṣe lọpọlọpọ. Sibẹsibẹ, o ṣe pataki lati ṣe akiyesi pe agbara wọn wa ni iseda gbogbogbo wọn kuku ju imọ-ijinlẹ ašẹ. Gbaye-gbale rẹ ti dagba ni iyara lati ibẹrẹ ti GPT-4.
Lakoko ti awọn LLM ṣe tayọ ni mimu awọn iṣẹ ṣiṣe lọpọlọpọ, wọn le dojukọ awọn idiwọn nigbati o ba de lati pese awọn idahun kan pato tabi koju awọn iṣẹ ṣiṣe ti o nilo imọ agbegbe ti o jinlẹ. Wo, fun apẹẹrẹ, lilo LLM kan lati dahun awọn ibeere tabi ṣe awọn iṣẹ ṣiṣe laarin awọn aaye amọja bii oogun tabi ofin.
Lakoko ti LLM dajudaju le dahun si awọn ibeere gbogbogbo nipa awọn aaye wọnyi, o le ni igbiyanju lati funni ni alaye diẹ sii tabi awọn idahun nuanced ti o nilo imọ amọja tabi oye.
Eyi jẹ nitori awọn LLM ti ni ikẹkọ lori iye data ọrọ lọpọlọpọ lati awọn orisun oniruuru, ṣiṣe wọn laaye lati kọ ẹkọ awọn ilana, loye ọrọ-ọrọ, ati ṣe awọn idahun isokan. Bibẹẹkọ, ikẹkọ wọn kii ṣe deede pẹlu agbegbe-pato tabi gbigba imọ amọja si iwọn kanna bi awọn amoye eniyan ni awọn aaye wọnyẹn.
Nitorina, lakoko ti LangChain, ni apapo pẹlu LLMs, le jẹ ohun elo ti ko niye fun awọn iṣẹ-ṣiṣe ti o pọju, o ṣe pataki lati ṣe akiyesi pe imọran agbegbe ti o jinlẹ le tun jẹ pataki ni awọn ipo kan. Awọn amoye eniyan ti o ni imọ amọja le pese ijinle to wulo, oye ti o yatọ, ati awọn oye-ọrọ-ọrọ ti o le kọja awọn agbara ti LLM nikan.
A yoo ni imọran wiwo awọn iwe aṣẹ LangChain tabi GitHub ibi ipamọ fun oye diẹ sii ti awọn ọran lilo aṣoju rẹ. O gbaniyanju gidigidi lati ni aworan nla ti lapapo yii.
Bawo ni o Sise?
Lati loye idi ati iṣẹ ti LangChain, jẹ ki a wo apẹẹrẹ ti o wulo. A mọ pe GPT-4 ni imọ gbogbogbo ti o yanilenu ati pe o le pese awọn idahun igbẹkẹle si ọpọlọpọ awọn ibeere.
Sibẹsibẹ, kini ti a ba fẹ alaye kan pato lati data tiwa, gẹgẹbi iwe ti ara ẹni, iwe, faili PDF, tabi ibi ipamọ data ohun-ini?
LangChain gba wa laaye lati so a ti o tobi ede awoṣe bii GPT-4 si awọn orisun data tiwa. O kọja larọwọto lilẹ snippet ti ọrọ sinu wiwo iwiregbe kan. Dipo, a le ṣe itọkasi gbogbo aaye data ti o kun pẹlu data tiwa.
Ni kete ti a ba gba alaye ti o fẹ, LangChain le ṣe iranlọwọ fun wa ni ṣiṣe awọn iṣe kan pato. Fun apẹẹrẹ, a le kọ ọ lati fi imeeli ranṣẹ ti o ni awọn alaye kan ninu.
Lati ṣaṣeyọri eyi, a tẹle ọna opo gigun ti epo nipa lilo LangChain. Ni akọkọ, a gba iwe-ipamọ ti a fẹ awoṣe ede lati ṣe itọkasi ati pin si awọn ege kekere. Awọn chunks wọnyi ti wa ni ipamọ lẹhinna bi awọn ifibọ, eyiti o jẹ fekito awọn aṣoju ti ọrọ, ni a Vector aaye data.
Pẹlu iṣeto yii, a le kọ awọn ohun elo awoṣe ede ti o tẹle opo gigun ti epo kan: olumulo kan beere ibeere akọkọ, eyiti o firanṣẹ si awoṣe ede. Aṣoju fekito ibeere naa ni a lo lati ṣe wiwa ibajọra ninu aaye data Vector, gbigba awọn ṣoki alaye ti o yẹ.
Awọn ege wọnyi yoo jẹ ifunni pada si awoṣe ede, ti o jẹ ki o pese idahun tabi ṣe iṣe ti o fẹ.
LangChain ṣe iranlọwọ fun idagbasoke awọn ohun elo ti o mọ data, bi a ṣe le ṣe itọkasi data tiwa ni ile itaja vector, ati otitọ, bi wọn ṣe le ṣe awọn iṣe ju idahun awọn ibeere lọ. T
rẹ ṣii ọpọlọpọ awọn ọran lilo ilowo, ni pataki ni iranlọwọ ti ara ẹni, nibiti awoṣe ede nla kan le mu awọn iṣẹ ṣiṣe bii gbigba awọn ọkọ ofurufu, gbigbe owo, tabi iranlọwọ pẹlu awọn ọran ti o jọmọ owo-ori.
Ní àfikún, àwọn ìyọrísí fún kíkẹ́kọ̀ọ́ àti kíkọ́ àwọn kókó ẹ̀kọ́ tuntun ṣe pàtàkì, gẹ́gẹ́ bí àwòkọ́ṣe èdè kan ṣe lè tọ́ka sí gbogbo ètò kíkọ́ kí ó sì yára gbé ìgbésẹ̀ kíkọ́. Ifaminsi, itupalẹ data, ati imọ-jinlẹ data tun nireti lati ni ipa pupọ nipasẹ awọn ilọsiwaju wọnyi.
Ọkan ninu awọn ifojusọna moriwu julọ ni sisopọ awọn awoṣe ede nla si data ile-iṣẹ ti o wa tẹlẹ, gẹgẹbi alaye alabara tabi data titaja. Iṣepọ yii pẹlu awọn API ti ilọsiwaju bii Meta's API tabi Google's API ṣe ileri ilọsiwaju ti o pọju ninu awọn atupale data ati imọ-jinlẹ data.
Bii o ṣe le Kọ Oju-iwe wẹẹbu kan (Ririnkiri)
Lọwọlọwọ, Langchain wa bi Python ati Awọn akopọ JavaScript.
A le ṣẹda ifihan Ohun elo Oju opo wẹẹbu ni lilo Streamlit, LangChain, ati awoṣe OpenAI GPT-3 lati ṣe imuse ero LangChain.
Ṣugbọn akọkọ, a gbọdọ fi awọn igbẹkẹle diẹ sii, pẹlu Streamlit, LangChain, ati OpenAI.
Awọn ami-tẹlẹ
Titan: Apo Python olokiki fun ṣiṣẹda awọn ohun elo wẹẹbu ti o ni ibatan imọ-jinlẹ data
Ṣii AI: Wọle si awoṣe ede GPT-3 OpenAI ni a nilo.
Lati fi awọn igbẹkẹle wọnyi sori ẹrọ, lo awọn aṣẹ wọnyi ni cmd:
pip install streamlit
pip install langchain
pip install openai
Gbe wọle Package
A bẹrẹ nipasẹ gbigbe wọle awọn idii ti o nilo, gẹgẹbi OpenAI, LangChain, ati Streamlit. Awọn ẹwọn awoṣe ede wa ni asọye ati ṣiṣe ni lilo awọn kilasi mẹta lati LangChain: LLMChain, SimpleSequentialChain, ati PromptTemplate.
import streamlit as st
from langchain.chains import LLMChain, SimpleSequentialChain
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
Eto Ipilẹ
Ipilẹ igbekalẹ ti iṣẹ akanṣe wa lẹhinna gbe soke ni lilo sintasi Streamlit. A fun ìṣàfilọlẹ naa ni akọle “Kini Otitọ: Lilo Pq Atẹle Rọrun” ati pẹlu ọna asopọ isamisi si ibi ipamọ GitHub ti o ṣiṣẹ bi imisi ohun elo naa.
import streamlit as st
from langchain.chains import LLMChain, SimpleSequentialChain
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
Awọn ẹrọ ailorukọ Iwaju-Opin
A ṣeto ohun elo naa pẹlu alaye diẹ ti o wulo, ni lilo sintasi Streamlit ti o rọrun:
# 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")
Lati fi awọn ẹrọ ailorukọ iwaju-opin kun
Siwaju sii, a nilo lati pese ẹrọ ailorukọ titẹ sii lati gba awọn olumulo wa laaye lati tẹ awọn ibeere eyikeyi sii.
# 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?",
)
Gbogbo ṣe! Awọn ẹwọn ti wa ni oke ati nṣiṣẹ!
A gba orisirisi awọn ẹwọn ti mosi pọ pẹlu SimpleSequentialChain
lati dahun si ibeere olumulo. Awọn ẹwọn naa ni a ṣe ni atẹle atẹle nigbati olumulo ba yan "Tell me about it"
Bọtini:
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
: eyiti o jẹ igbesẹ akọkọ ninu opo gigun ti epo wa, gba ibeere olumulo bi titẹ sii ati iṣelọpọ. Ibeere olumulo ṣiṣẹ bi awoṣe pq.- Da lori a gbólóhùn ti sopọ si ibeere, awọn
assumptions_chain
ipilẹṣẹ a ọta ibọn-ojuami akojọ ti awọn awqn lilo awọn ti o wu lati awọnquestion_chain
bi input. AwọnLLMChain
atiOpenAI
awoṣe lati LangChain ni a lo lati kọ alaye naa. Olumulo naa ni iṣẹ ṣiṣe pẹlu ṣiṣẹda atokọ ti awọn arosinu ti a ṣe lati gbe alaye naa jade nipa lilo awoṣe fun pq yii. - Da lori awọn esi lati awọn
question_chain
atiassumptions_chain
, awọnfact_checker_chain
ṣe agbekalẹ atokọ ti awọn idaniloju ni irisi awọn aaye ọta ibọn. Awọn ẹtọ ti wa ni ṣelọpọ nipa lilo awọnOpenAI
awoṣe atiLLMChain
lati LangChain. Olumulo naa jẹ iṣẹ ṣiṣe pẹlu ṣiṣe ipinnu boya ibeere kọọkan jẹ deede tabi ti ko tọ ati pese idalare fun awọn ti o jẹ. - awọn
answer_chain
nlo awọn esi lati awọnquestion_chain
,assumptions_chain
, Atifact_checker_chain
bi awọn igbewọle lati ṣẹda idahun si ibeere olumulo nipa lilo data ti a ṣe nipasẹ awọn ẹwọn iṣaaju. Awoṣe fun awọn ibeere pq yii pe olumulo dahun si ibeere akọkọ nipa lilo awọn ododo ti o ṣẹda. - Lati le pese idahun ti o ga julọ si ibeere olumulo ti o da lori alaye ti a ṣe nipasẹ awọn ẹwọn iṣaaju, a ṣepọ awọn ẹwọn wọnyi sinu pq gbogbogbo. Lẹhin ti awọn ẹwọn ti pari, a lo
st.success()
lati fihan olumulo ojutu.
ipari
A le jiroro ni pipọ awọn iṣe awoṣe ede oriṣiriṣi lati ṣẹda awọn opo gigun ti idiju diẹ sii nipa lilo awọn SimpleSequentialChain
module ti LangChain. Fun ọpọlọpọ awọn ohun elo NLP, pẹlu chatbots, awọn ọna ṣiṣe ibeere ati idahun, ati awọn irinṣẹ itumọ ede, eyi le ṣe iranlọwọ pupọ.
Imọlẹ ti LangChain ni a rii ni agbara rẹ lati ṣe arosọ, eyiti o jẹ ki olumulo le ṣojumọ lori ọran lọwọlọwọ ju awọn pato ti awoṣe awoṣe ede.
LangChain ṣe ilana ti ṣiṣẹda awọn awoṣe ede ti o ni ilọsiwaju diẹ sii ore-olumulo nipasẹ fifun awọn awoṣe ti a ti kọkọ tẹlẹ ati yiyan awọn awoṣe.
O fun ọ ni aṣayan lati ṣatunṣe awọn awoṣe ede ni lilo data tiwọn, ti o jẹ ki o rọrun lati ṣe akanṣe awọn awoṣe ede. Eyi ngbanilaaye idagbasoke ti kongẹ diẹ sii, awọn awoṣe kan pato-ašẹ ti, fun iṣẹ ti a fun, ṣe ju awọn awoṣe ikẹkọ lọ.
awọn SimpleSequentialChain
module ati awọn ẹya miiran ti LangChain jẹ ki o jẹ ohun elo ti o munadoko fun idagbasoke ni kiakia ati imuṣiṣẹ awọn eto NLP fafa.
Fi a Reply