LangChain kayan aiki ne mai yankewa da ƙarfi wanda aka haɓaka don amfani da ikon Manyan Harshe Model (LLMs).
Waɗannan LLMs suna da iyakoki na ban mamaki kuma suna iya aiwatar da ayyuka da yawa yadda ya kamata. Koyaya, yana da mahimmanci a lura cewa ƙarfinsu ya ta'allaka ne ga yanayinsu na gaba ɗaya maimakon zurfin ƙwarewar yanki. Shahararren sa ya karu da sauri tun lokacin gabatarwar GPT-4.
Yayin da LLMs suka yi fice wajen gudanar da ayyuka daban-daban, za su iya fuskantar gazawa idan ana batun samar da takamaiman amsoshi ko magance ayyuka waɗanda ke buƙatar zurfin ilimin yanki. Yi la'akari, alal misali, yin amfani da LLM don amsa tambayoyi ko yin ayyuka a cikin fannoni na musamman kamar magani ko doka.
Yayin da LLM na iya ba da amsa ga tambayoyin gama-gari game da waɗannan fagagen, yana iya yin gwagwarmaya don ba da ƙarin cikakkun bayanai ko cikakkun amsoshi waɗanda ke buƙatar ƙwararrun ilimi ko ƙwarewa.
Wannan saboda an horar da LLMs akan ɗimbin bayanan rubutu daga tushe dabam-dabam, yana ba su damar koyan tsari, fahimtar mahallin, da samar da amsoshi masu daidaituwa. Koyaya, horon nasu ba ya haɗa da takamaiman yanki ko ilimi na musamman daidai da ƙwararrun ɗan adam a waɗannan fagagen.
Sabili da haka, yayin da LangChain, tare da haɗin gwiwar LLMs, na iya zama kayan aiki mai mahimmanci don ayyuka masu yawa, yana da mahimmanci a gane cewa ƙwarewar yanki mai zurfi na iya zama dole a wasu yanayi. Kwararrun ɗan adam waɗanda ke da ƙwararrun ilimi na iya ba da zurfin da ake buƙata, ƙwaƙƙwaran fahimta, da ƙayyadaddun fahimtar mahallin da zai iya wuce ƙarfin LLMs kaɗai.
Muna ba da shawarar duba takardun LangChain ko GitHub ma'ajiya don ƙarin cikakkiyar fahimtar al'amuran amfani da shi na yau da kullun. Ana ba da shawarar sosai don samun babban hoto na wannan tarin.
Yaya yake Aiki?
Don fahimtar manufa da aikin LangChain, bari mu yi la'akari da misali mai amfani. Muna sane da cewa GPT-4 yana da ilimin gabaɗaya mai ban sha'awa kuma yana iya ba da amintattun amsoshi ga kewayon tambayoyi.
Koyaya, menene idan muna son takamaiman bayanai daga bayanan namu, kamar takaddar sirri, littafi, fayil ɗin PDF, ko bayanan mallakar mallaka?
LangChain yana ba mu damar haɗi a babban samfurin harshe kamar GPT-4 zuwa namu tushen bayanai. Ya wuce liƙa snippet na rubutu a cikin mahallin hira. Madadin haka, za mu iya yin la'akari da dukan bayanan da ke cike da namu bayanan.
Da zarar mun sami bayanin da ake so, LangChain zai iya taimaka mana wajen ɗaukar takamaiman ayyuka. Misali, muna iya umurce shi da ya aika imel mai ɗauke da wasu bayanai.
Don cimma wannan, muna bin tsarin bututu ta amfani da LangChain. Da farko, muna ɗaukar takardar da muke so samfurin harshe don yin la'akari da raba shi zuwa ƙananan ƙananan sassa. Ana adana waɗannan ɓangarorin a matsayin abubuwan haɗawa, waɗanda suke wakilcin vector na rubutu, a cikin Database Vector.
Tare da wannan saitin, za mu iya gina aikace-aikacen samfurin harshe waɗanda ke bin daidaitaccen bututu: mai amfani ya yi tambaya ta farko, sannan a aika zuwa ƙirar harshe. Ana amfani da wakilcin vector na tambayar don yin binciken kamanni a cikin Database na Vector, maido da guntun bayanai masu dacewa.
Sannan ana mayar da waɗannan guntun zuwa tsarin harshe, wanda zai ba shi damar ba da amsa ko ɗaukar matakin da ake so.
LangChain yana sauƙaƙe haɓaka aikace-aikacen da ke da masaniyar bayanai, kamar yadda za mu iya yin la'akari da bayanan namu a cikin kantin sayar da kaya, kuma na gaske, kamar yadda za su iya ɗaukar ayyuka fiye da amsa tambayoyi. T
nasa yana buɗe ɗimbin shari'o'in amfani mai amfani, musamman a cikin taimako na sirri, inda babban ƙirar harshe zai iya ɗaukar ayyuka kamar yin jigilar jiragen sama, canja wurin kuɗi, ko taimakawa kan abubuwan da suka shafi haraji.
Bugu da ƙari, abubuwan da ke haifar da karatu da koyan sababbin batutuwa suna da mahimmanci, kamar yadda samfurin harshe zai iya yin la'akari da gabaɗayan manhaja da kuma hanzarta aiwatar da koyo. Hakanan ana sa ran yin tasiri, nazarin bayanai, da kimiyyar bayanai ta hanyar waɗannan ci gaban.
Ɗaya daga cikin abubuwan da ke da ban sha'awa shine haɗa manyan nau'ikan harshe zuwa bayanan kamfani na yanzu, kamar bayanan abokin ciniki ko bayanan tallace-tallace. Wannan haɗin kai tare da ci-gaba APIs kamar Meta's API ko Google's API yayi alƙawarin ci gaba mai ma'ana a cikin nazarin bayanai da kimiyyar bayanai.
Yadda ake Gina Shafin Yanar Gizo (Demo)
A halin yanzu, Langchain yana samuwa azaman Fakitin Python da JavaScript.
Za mu iya ƙirƙirar ƙa'idar Yanar gizo ta nunawa ta amfani da Streamlit, LangChain, da ƙirar OpenAI GPT-3 don aiwatar da ra'ayin LangChain.
Amma da farko, dole ne mu shigar da ƴan abubuwan dogaro, gami da Streamlit, LangChain, da OpenAI.
Pre-requisites
Sauƙaƙe: Shahararriyar kunshin Python don ƙirƙirar aikace-aikacen yanar gizo masu alaƙa da kimiyyar bayanai
BudeAI: Ana buƙatar samun dama ga samfurin yaren GPT-3 na OpenAI.
Don shigar da waɗannan abubuwan dogara, yi amfani da umarni masu zuwa a cikin cmd:
pip install streamlit
pip install langchain
pip install openai
Shigo da Fakitin
Mun fara da shigo da fakitin da ake buƙata, kamar OpenAI, LangChain, da Streamlit. An bayyana sarƙoƙin ƙirar harshen mu kuma ana aiwatar da su ta amfani da azuzuwan uku daga LangChain: LLMChain, SimpleSequentialChain, da PromptTemplate.
import streamlit as st
from langchain.chains import LLMChain, SimpleSequentialChain
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
Saiti na asali
An kafa tushen tsarin aikin mu ta amfani da Streamlit syntax. Mun bai wa ƙa'idar taken "Abin da ke GASKIYA: Amfani da Sarkar Saƙa Mai Sauƙi" kuma mun haɗa hanyar haɗin alamar zuwa ma'ajiyar GitHub wacce ta yi aiki azaman wahayi na app.
import streamlit as st
from langchain.chains import LLMChain, SimpleSequentialChain
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
Widgets na gaba-karshen
Mun saita ƙa'idar tare da ƴan bayanan da suka dace, ta amfani da madaidaicin 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")
Don ƙara widgets na gaba-gaba
Bugu da ari, muna buƙatar samar da widget din shigarwa don bawa masu amfani damar shigar da kowace tambaya.
# 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?",
)
An gama komai! Sarƙoƙi suna tashi suna gudana!
Muna amfani da sarƙoƙi daban-daban na ayyuka tare da SimpleSequentialChain
don amsa tambayar mai amfani. Ana aiwatar da sarƙoƙi a cikin jeri mai zuwa lokacin da mai amfani ya zaɓi "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
: wanda shine mataki na farko a cikin bututunmu, yana karɓar tambayar mai amfani azaman shigarwa da fitarwa. Tambayar mai amfani tana aiki azaman samfurin sarkar.- Dangane da wata sanarwa da ke da alaƙa da tambayar, da
assumptions_chain
yana haifar da jerin zato na harsashi ta amfani da fitarwa dagaquestion_chain
kamar shigar. TheLLMChain
da kumaOpenAI
An yi amfani da samfurin LangChain don gina bayanin. An ba mai amfani alhakin ƙirƙirar jerin zato waɗanda aka yi don samar da bayanin ta amfani da samfuri na wannan sarkar. - Dangane da abubuwan da aka fitar daga
question_chain
da kumaassumptions_chain
, dafact_checker_chain
yana haifar da jerin ikirari a cikin nau'in maki. Ana yin da'awar ta amfani daOpenAI
samfurin daLLMChain
daga LangChain. An ɗora wa mai amfani alhakin tantance ko kowace da'awar daidai ce ko kuskure da bayar da hujja ga waɗanda suke. - The
answer_chain
yana amfani da abubuwan da aka samo dagaquestion_chain
,assumptions_chain
, Da kumafact_checker_chain
azaman bayanai don ƙirƙirar amsa ga tambayar mai amfani ta amfani da bayanan da aka samar da sarƙoƙi na farko. Samfurin wannan sarkar yana buƙatar mai amfani ya amsa tambayar farko ta amfani da gaskiyar da aka ƙirƙira. - Domin samar da cikakkiyar amsa ga tambayar mai amfani bisa ga bayanan da aka samar da sarƙoƙi na farko, muna haɗa waɗannan sarƙoƙi zuwa cikin gabaɗayan sarkar. Bayan an kammala sarƙoƙi, muna amfani da su
st.success()
don nunawa mai amfani da mafita.
Kammalawa
Za mu iya kawai haɗa ayyukan samfurin harshe daban-daban don ƙirƙirar mafi rikitarwa bututu ta amfani da SimpleSequentialChain
Babban darajar LangChain. Don aikace-aikacen NLP iri-iri iri-iri, gami da chatbots, tsarin tambaya-da-amsa, da kayan aikin fassarar harshe, wannan na iya zama mai taimako sosai.
Ana samun haske na LangChain a cikin ƙarfinsa don ƙaddamarwa, wanda ke ba mai amfani damar mayar da hankali kan batun yanzu maimakon ƙayyadaddun ƙirar harshe.
LangChain yana sa tsarin ƙirƙirar ƙirar harshe mai ƙima ya zama mafi aminci ga mai amfani ta hanyar ba da samfuran da aka riga aka horar da zaɓin samfuri.
Yana ba ku zaɓi don daidaita ƙirar harshe ta amfani da bayanan nasu, yana mai da sauƙi don keɓance ƙirar harshe. Wannan yana ba da damar haɓaka ƙarin madaidaitan ƙira, ƙayyadaddun ƙayyadaddun yanki waɗanda, don aikin da aka ba su, sun fi samfuran horarwa.
The SimpleSequentialChain
module da sauran fasalulluka na LangChain sun sa ya zama ingantaccen kayan aiki don haɓaka haɓakawa da tura tsarin NLP na zamani.
Leave a Reply