LangChain అనేది లార్జ్ లాంగ్వేజ్ మోడల్స్ (LLMలు) యొక్క శక్తిని వినియోగించుకోవడానికి అభివృద్ధి చేయబడిన ఒక అత్యాధునిక మరియు బలమైన సాధనం.
ఈ LLMలు విశేషమైన సామర్థ్యాలను కలిగి ఉంటాయి మరియు అనేక రకాల పనులను సమర్ధవంతంగా పరిష్కరించగలవు. అయినప్పటికీ, వారి బలం లోతైన డొమైన్ నైపుణ్యం కంటే వారి సాధారణ స్వభావంలో ఉందని గమనించడం ముఖ్యం. GPT-4 ప్రవేశపెట్టినప్పటి నుండి దీని ప్రజాదరణ వేగంగా పెరిగింది.
వివిధ టాస్క్లను నిర్వహించడంలో LLMలు రాణిస్తున్నప్పటికీ, నిర్దిష్ట సమాధానాలను అందించడం లేదా లోతైన డొమైన్ పరిజ్ఞానం అవసరమయ్యే టాస్క్లను పరిష్కరించడం వంటి వాటికి పరిమితులను ఎదుర్కోవచ్చు. ఉదాహరణకు, ఔషధం లేదా చట్టం వంటి ప్రత్యేక రంగాలలో ప్రశ్నలకు సమాధానం ఇవ్వడానికి లేదా విధులను నిర్వహించడానికి LLMని ఉపయోగించడాన్ని పరిగణించండి.
ఈ ఫీల్డ్ల గురించిన సాధారణ విచారణలకు LLM ఖచ్చితంగా ప్రతిస్పందించగలిగినప్పటికీ, ప్రత్యేక జ్ఞానం లేదా నైపుణ్యం అవసరమయ్యే మరింత వివరణాత్మక లేదా సూక్ష్మ సమాధానాలను అందించడానికి ఇది కష్టపడవచ్చు.
ఎందుకంటే LLMలు విభిన్న మూలాధారాల నుండి విస్తారమైన టెక్స్ట్ డేటాపై శిక్షణ పొందాయి, వాటిని నమూనాలను నేర్చుకోవడానికి, సందర్భాన్ని అర్థం చేసుకోవడానికి మరియు పొందికైన ప్రతిస్పందనలను రూపొందించడానికి వీలు కల్పిస్తాయి. అయినప్పటికీ, వారి శిక్షణలో సాధారణంగా ఆ రంగాలలోని మానవ నిపుణుల మాదిరిగానే డొమైన్-నిర్దిష్ట లేదా ప్రత్యేక జ్ఞాన సముపార్జన ఉండదు.
అందువల్ల, LangChain, LLMలతో కలిసి, విస్తృత శ్రేణి పనుల కోసం ఒక అమూల్యమైన సాధనం అయితే, కొన్ని సందర్భాల్లో లోతైన డొమైన్ నైపుణ్యం ఇంకా అవసరమని గుర్తించడం చాలా ముఖ్యం. ప్రత్యేక పరిజ్ఞానం ఉన్న మానవ నిపుణులు LLMల సామర్థ్యాలకు మించిన అవసరమైన లోతు, సూక్ష్మ అవగాహన మరియు సందర్భ-నిర్దిష్ట అంతర్దృష్టులను అందించగలరు.
మేము LangChain యొక్క పత్రాలను చూడమని సలహా ఇస్తున్నాము లేదా గ్యాలరీలు రిపోజిటరీ దాని సాధారణ వినియోగ కేసుల గురించి మరింత సమగ్ర అవగాహన కోసం. ఈ బండిల్ యొక్క పెద్ద చిత్రాన్ని పొందాలని గట్టిగా సిఫార్సు చేయబడింది.
ఇది ఎలా పని చేస్తుంది?
LangChain యొక్క ప్రయోజనం మరియు పనిని అర్థం చేసుకోవడానికి, ఒక ఆచరణాత్మక ఉదాహరణను పరిశీలిద్దాం. GPT-4 ఆకట్టుకునే సాధారణ పరిజ్ఞానాన్ని కలిగి ఉందని మరియు అనేక రకాల ప్రశ్నలకు నమ్మదగిన సమాధానాలను అందించగలదని మాకు తెలుసు.
అయినప్పటికీ, వ్యక్తిగత పత్రం, పుస్తకం, PDF ఫైల్ లేదా యాజమాన్య డేటాబేస్ వంటి మా స్వంత డేటా నుండి నిర్దిష్ట సమాచారం కావాలంటే ఏమి చేయాలి?
LangChain మమ్మల్ని కనెక్ట్ చేయడానికి అనుమతిస్తుంది a పెద్ద భాషా నమూనా మా స్వంత డేటా వనరులకు GPT-4 వంటిది. ఇది చాట్ ఇంటర్ఫేస్లో టెక్స్ట్ యొక్క స్నిప్పెట్ను అతికించడానికి మించి ఉంటుంది. బదులుగా, మేము మా స్వంత డేటాతో నిండిన మొత్తం డేటాబేస్ను సూచించవచ్చు.
మేము కోరుకున్న సమాచారాన్ని పొందిన తర్వాత, నిర్దిష్ట చర్యలు తీసుకోవడంలో LangChain మాకు సహాయం చేస్తుంది. ఉదాహరణకు, నిర్దిష్ట వివరాలతో కూడిన ఇమెయిల్ను పంపమని మేము దానిని సూచించవచ్చు.
దీన్ని సాధించడానికి, మేము LangChainని ఉపయోగించి పైప్లైన్ విధానాన్ని అనుసరిస్తాము. మొదట, మనకు కావలసిన పత్రాన్ని తీసుకుంటాము భాషా నమూనా సూచించడానికి మరియు దానిని చిన్న భాగాలుగా విభజించడానికి. ఈ భాగాలు ఎంబెడ్డింగ్లుగా నిల్వ చేయబడతాయి, అవి వెక్టర్ డేటాబేస్లో టెక్స్ట్ యొక్క వెక్టర్ ప్రాతినిధ్యాలు.
ఈ సెటప్తో, మేము ప్రామాణిక పైప్లైన్ను అనుసరించే భాషా నమూనా అప్లికేషన్లను రూపొందించవచ్చు: వినియోగదారు ప్రారంభ ప్రశ్నను అడుగుతారు, అది భాష మోడల్కు పంపబడుతుంది. ప్రశ్న యొక్క వెక్టర్ ప్రాతినిధ్యం వెక్టర్ డేటాబేస్లో సారూప్యత శోధనను నిర్వహించడానికి ఉపయోగించబడుతుంది, సంబంధిత సమాచార భాగాలను తిరిగి పొందుతుంది.
ఈ భాగాలు భాషా నమూనాకు తిరిగి అందించబడతాయి, ఇది సమాధానాన్ని అందించడానికి లేదా కావలసిన చర్య తీసుకోవడానికి వీలు కల్పిస్తుంది.
LangChain డేటా-అవగాహన ఉన్న అప్లికేషన్ల అభివృద్ధిని సులభతరం చేస్తుంది, ఎందుకంటే మేము మా స్వంత డేటాను వెక్టర్ స్టోర్లో సూచించవచ్చు మరియు ప్రామాణికమైనది, ఎందుకంటే అవి ప్రశ్నలకు సమాధానం ఇవ్వకుండా చర్యలు తీసుకోగలవు. టి
అతను అనేక ఆచరణాత్మక వినియోగ కేసులను తెరుస్తాడు, ప్రత్యేకించి వ్యక్తిగత సహాయంలో, పెద్ద భాష మోడల్ విమానాలను బుక్ చేయడం, డబ్బును బదిలీ చేయడం లేదా పన్ను సంబంధిత విషయాలలో సహాయం చేయడం వంటి పనులను నిర్వహించగలదు.
అదనంగా, ఒక భాషా నమూనా మొత్తం సిలబస్ను సూచించగలదు మరియు అభ్యాస ప్రక్రియను వేగవంతం చేయగలదు కాబట్టి, కొత్త సబ్జెక్టులను అధ్యయనం చేయడం మరియు నేర్చుకోవడంలో చిక్కులు ముఖ్యమైనవి. కోడింగ్, డేటా విశ్లేషణ మరియు డేటా సైన్స్ కూడా ఈ పురోగతి ద్వారా బాగా ప్రభావితమవుతాయని భావిస్తున్నారు.
కస్టమర్ సమాచారం లేదా మార్కెటింగ్ డేటా వంటి ఇప్పటికే ఉన్న కంపెనీ డేటాకు పెద్ద భాషా నమూనాలను కనెక్ట్ చేయడం అత్యంత ఉత్తేజకరమైన అవకాశాలలో ఒకటి. మెటా యొక్క API లేదా Google API వంటి అధునాతన APIలతో ఈ ఏకీకరణ డేటా అనలిటిక్స్ మరియు డేటా సైన్స్లో ఘాతాంక పురోగతిని వాగ్దానం చేస్తుంది.
వెబ్పేజీని ఎలా నిర్మించాలి (డెమో)
ప్రస్తుతం, Langchain పైథాన్ మరియు జావాస్క్రిప్ట్ ప్యాకేజీలుగా అందుబాటులో ఉంది.
LangChain కాన్సెప్ట్ని అమలు చేయడానికి Streamlit, LangChain మరియు OpenAI GPT-3 మోడల్ని ఉపయోగించి మేము ప్రదర్శన వెబ్ యాప్ని సృష్టించవచ్చు.
అయితే ముందుగా, Streamlit, LangChain మరియు OpenAIతో సహా కొన్ని డిపెండెన్సీలను మనం తప్పనిసరిగా ఇన్స్టాల్ చేయాలి.
ముందు ఆవశ్యకతలు
స్ట్రీమ్లిట్: డేటా సైన్స్-సంబంధిత వెబ్ అప్లికేషన్లను రూపొందించడానికి ప్రముఖ పైథాన్ ప్యాకేజీ
OpenAI: OpenAI యొక్క GPT-3 భాషా నమూనాకు ప్రాప్యత అవసరం.
ఈ డిపెండెన్సీలను ఇన్స్టాల్ చేయడానికి, cmdలో కింది ఆదేశాలను ఉపయోగించండి:
pip install streamlit
pip install langchain
pip install openai
ప్యాకేజీలను దిగుమతి చేయండి
మేము OpenAI, LangChain మరియు Streamlit వంటి అవసరమైన ప్యాకేజీలను దిగుమతి చేయడం ద్వారా ప్రారంభిస్తాము. మా భాషా నమూనా గొలుసులు LangChain నుండి మూడు తరగతులను ఉపయోగించి నిర్వచించబడ్డాయి మరియు అమలు చేయబడతాయి: LLMCchain, SimpleSequentialChain మరియు PromptTemplate.
import streamlit as st
from langchain.chains import LLMChain, SimpleSequentialChain
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
ప్రాథమిక సెటప్
మా ప్రాజెక్ట్ యొక్క నిర్మాణాత్మక ఆధారం స్ట్రీమ్లిట్ సింటాక్స్ని ఉపయోగించి ఉంచబడింది. మేము యాప్కి “వాట్స్ ట్రూ: యూజింగ్ సింపుల్ సీక్వెన్షియల్ చైన్” అనే టైటిల్ను ఇచ్చాము మరియు యాప్ యొక్క ప్రేరణగా పనిచేసిన GitHub రిపోజిటరీకి మార్క్డౌన్ లింక్ని చేర్చాము.
import streamlit as st
from langchain.chains import LLMChain, SimpleSequentialChain
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
ఫ్రంట్-ఎండ్ విడ్జెట్లు
మేము సాధారణ స్ట్రీమ్లిట్ సింటాక్స్ని ఉపయోగించి కొన్ని సంబంధిత సమాచారంతో యాప్ని సెటప్ చేసాము:
# 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")
ఫ్రంట్-ఎండ్ విడ్జెట్లను జోడించడానికి
ఇంకా, మా వినియోగదారులు ఏవైనా ప్రశ్నలను నమోదు చేయడానికి అనుమతించడానికి మేము ఇన్పుట్ విడ్జెట్ను అందించాలి.
# 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?",
)
అన్నీ పూర్తయ్యాయి! చైన్లు అప్ మరియు నడుస్తున్న!
మేము కలిసి వివిధ కార్యకలాపాల గొలుసులను ఉపయోగిస్తాము SimpleSequentialChain
వినియోగదారు ప్రశ్నకు ప్రతిస్పందించడానికి. వినియోగదారు ఎంచుకున్నప్పుడు గొలుసులు క్రింది క్రమంలో నిర్వహించబడతాయి "Tell me about it"
బటన్:
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
: ఇది మా పైప్లైన్లో మొదటి దశ, వినియోగదారు ప్రశ్నను ఇన్పుట్ మరియు అవుట్పుట్గా స్వీకరిస్తుంది. వినియోగదారు ప్రశ్న గొలుసు యొక్క టెంప్లేట్గా పనిచేస్తుంది.- ప్రశ్నకు లింక్ చేయబడిన ఒక ప్రకటన ఆధారంగా, ది
assumptions_chain
నుండి అవుట్పుట్ని ఉపయోగించి అంచనాల బుల్లెట్-పాయింట్ జాబితాను రూపొందిస్తుందిquestion_chain
ఇన్పుట్గా. దిLLMChain
మరియుOpenAI
ప్రకటనను రూపొందించడానికి LangChain నుండి మోడల్ ఉపయోగించబడింది. ఈ గొలుసు కోసం టెంప్లేట్ను ఉపయోగించి స్టేట్మెంట్ను రూపొందించడానికి రూపొందించిన అంచనాల జాబితాను రూపొందించే బాధ్యత వినియోగదారుకు ఉంది. - నుండి అవుట్పుట్ల ఆధారంగా
question_chain
మరియుassumptions_chain
,fact_checker_chain
బుల్లెట్ పాయింట్ల రూపంలో నిరూపణల జాబితాను రూపొందిస్తుంది. దావాలు ఉపయోగించి ఉత్పత్తి చేయబడతాయిOpenAI
మోడల్ మరియుLLMChain
లాంగ్చెయిన్ నుండి. ప్రతి క్లెయిమ్ ఖచ్చితమైనదా లేదా తప్పుగా ఉందో లేదో నిర్ధారించడం మరియు ఉన్న వాటికి సమర్థనను అందించడం వినియోగదారు బాధ్యత. - మా
answer_chain
నుండి అవుట్పుట్లను ఉపయోగిస్తుందిquestion_chain
,assumptions_chain
మరియుfact_checker_chain
మునుపటి గొలుసుల ద్వారా ఉత్పత్తి చేయబడిన డేటాను ఉపయోగించి వినియోగదారు ప్రశ్నకు ప్రతిస్పందనను సృష్టించడానికి ఇన్పుట్లుగా. సృష్టించబడిన వాస్తవాలను ఉపయోగించి మొదటి ప్రశ్నకు వినియోగదారు ప్రతిస్పందించాలని ఈ గొలుసు కోసం టెంప్లేట్ అభ్యర్థిస్తుంది. - మునుపటి గొలుసుల ద్వారా రూపొందించబడిన సమాచారం ఆధారంగా వినియోగదారు యొక్క విచారణకు అంతిమ ప్రతిస్పందనను అందించడానికి, మేము ఈ గొలుసులను మొత్తం గొలుసుతో అనుసంధానిస్తాము. గొలుసులు పూర్తయిన తర్వాత, మేము ఉపయోగిస్తాము
st.success()
వినియోగదారుకు పరిష్కారాన్ని చూపించడానికి.
ముగింపు
ఉపయోగించి మరింత సంక్లిష్టమైన పైప్లైన్లను రూపొందించడానికి మేము విభిన్న భాషా నమూనా చర్యలను కలపవచ్చు SimpleSequentialChain
LangChain యొక్క మాడ్యూల్. చాట్బాట్లు, ప్రశ్నోత్తరాల వ్యవస్థలు మరియు భాషా అనువాద సాధనాలతో సహా అనేక రకాల NLP అప్లికేషన్ల కోసం, ఇది చాలా సహాయకారిగా ఉండవచ్చు.
లాంగ్చైన్ యొక్క ప్రకాశాన్ని దాని వియుక్త సామర్థ్యంలో కనుగొనబడింది, ఇది లాంగ్వేజ్ మోడలింగ్ యొక్క ప్రత్యేకతల కంటే ప్రస్తుత సమస్యపై దృష్టి పెట్టడానికి వినియోగదారుని అనుమతిస్తుంది.
LangChain ముందుగా శిక్షణ పొందిన నమూనాలు మరియు టెంప్లేట్ల ఎంపికను అందించడం ద్వారా అధునాతన భాషా నమూనాలను రూపొందించే ప్రక్రియను మరింత యూజర్ ఫ్రెండ్లీగా చేస్తుంది.
ఇది భాషా నమూనాలను వారి స్వంత డేటాను ఉపయోగించి చక్కగా ట్యూన్ చేసే అవకాశాన్ని మీకు అందిస్తుంది, భాషా నమూనాలను అనుకూలీకరించడం సులభం చేస్తుంది. ఇది మరింత ఖచ్చితమైన, డొమైన్-నిర్దిష్ట నమూనాల అభివృద్ధిని అనుమతిస్తుంది, ఇది ఇచ్చిన ఉద్యోగం కోసం, శిక్షణ పొందిన మోడల్లను అధిగమిస్తుంది.
మా SimpleSequentialChain
మాడ్యూల్ మరియు లాంగ్చెయిన్ యొక్క ఇతర లక్షణాలు అధునాతన NLP సిస్టమ్లను త్వరగా అభివృద్ధి చేయడానికి మరియు అమలు చేయడానికి సమర్థవంతమైన సాధనంగా చేస్తాయి.
సమాధానం ఇవ్వూ