थोड़ी मात्रा में कोड और कुछ उपयोगी लाइब्रेरी के साथ, आप इस शक्तिशाली दस्तावेज़ विश्लेषण उपकरण का निर्माण कर सकते हैं।

सूचित निर्णय लेने में दस्तावेज़ों और डेटा से अंतर्दृष्टि प्राप्त करना महत्वपूर्ण है। हालाँकि, संवेदनशील जानकारी से निपटने के दौरान गोपनीयता संबंधी चिंताएँ उत्पन्न होती हैं। लैंगचेन, ओपनएआई एपीआई के संयोजन में, आपको अपने स्थानीय दस्तावेज़ों को ऑनलाइन अपलोड करने की आवश्यकता के बिना उनका विश्लेषण करने की अनुमति देता है।

वे आपके डेटा को स्थानीय रूप से रखकर, विश्लेषण के लिए एम्बेडिंग और वेक्टराइज़ेशन का उपयोग करके और आपके वातावरण के भीतर प्रक्रियाओं को निष्पादित करके इसे प्राप्त करते हैं। OpenAI अपने मॉडलों को प्रशिक्षित करने या अपनी सेवाओं को बेहतर बनाने के लिए ग्राहकों द्वारा उनके एपीआई के माध्यम से सबमिट किए गए डेटा का उपयोग नहीं करता है।

अपना वातावरण स्थापित करना

एक नया पायथन वर्चुअल वातावरण बनाएं. यह सुनिश्चित करेगा कि कोई लाइब्रेरी संस्करण विरोध न हो। फिर आवश्यक लाइब्रेरी स्थापित करने के लिए निम्नलिखित टर्मिनल कमांड चलाएँ।

pip install langchain openai tiktoken faiss-cpu pypdf
instagram viewer

आप प्रत्येक लाइब्रेरी का उपयोग कैसे करेंगे इसका विवरण यहां दिया गया है:

  • लैंगचेन: आप इसका उपयोग पाठ प्रसंस्करण और विश्लेषण के लिए भाषाई श्रृंखला बनाने और प्रबंधित करने के लिए करेंगे। यह दस्तावेज़ लोडिंग, टेक्स्ट स्प्लिटिंग, एम्बेडिंग और वेक्टर स्टोरेज के लिए मॉड्यूल प्रदान करेगा।
  • ओपनएआई: आप इसका उपयोग क्वेरी चलाने और भाषा मॉडल से परिणाम प्राप्त करने के लिए करेंगे।
  • टिकटोकन: आप इसका उपयोग किसी दिए गए टेक्स्ट में टोकन (टेक्स्ट की इकाइयाँ) की संख्या गिनने के लिए करेंगे। यह OpenAI API के साथ इंटरैक्ट करते समय टोकन गिनती पर नज़र रखने के लिए है जो आपके द्वारा उपयोग किए जाने वाले टोकन की संख्या के आधार पर शुल्क लेता है।
  • FAISS: आप इसका उपयोग वेक्टर स्टोर बनाने और प्रबंधित करने के लिए करेंगे, जिससे उनके एम्बेडिंग के आधार पर समान वैक्टर की तेजी से पुनर्प्राप्ति हो सकेगी।
  • पीईपीडीएफ: यह लाइब्रेरी पीडीएफ़ से टेक्स्ट निकालती है। यह पीडीएफ फाइलों को लोड करने और आगे की प्रक्रिया के लिए उनके टेक्स्ट को निकालने में मदद करता है।

सभी लाइब्रेरी स्थापित होने के बाद, आपका वातावरण अब तैयार है।

OpenAI API कुंजी प्राप्त करना

जब आप OpenAI API के लिए अनुरोध करते हैं, तो आपको अनुरोध के भाग के रूप में एक API कुंजी शामिल करनी होगी। यह कुंजी एपीआई प्रदाता को यह सत्यापित करने की अनुमति देती है कि अनुरोध वैध स्रोत से आ रहे हैं और आपके पास इसकी सुविधाओं तक पहुंचने के लिए आवश्यक अनुमतियां हैं।

OpenAI API कुंजी प्राप्त करने के लिए, आगे बढ़ें ओपनएआई प्लेटफॉर्म.

फिर, ऊपर दाईं ओर अपने खाते की प्रोफ़ाइल के नीचे, पर क्लिक करें एपीआई कुंजियाँ देखें. एपीआई कुंजियाँ पेज दिखाई देगा.

पर क्लिक करें नया रहस्य बनाएंचाबी बटन। अपनी कुंजी को नाम दें और क्लिक करें नई गुप्त कुंजी बनाएं. OpenAI आपकी एपीआई कुंजी उत्पन्न करेगा जिसे आपको कॉपी करके कहीं सुरक्षित रखना चाहिए। सुरक्षा कारणों से, आप इसे अपने OpenAI खाते के माध्यम से दोबारा नहीं देख पाएंगे। यदि आप यह गुप्त कुंजी खो देते हैं, तो आपको एक नई कुंजी उत्पन्न करनी होगी।

पूर्ण स्रोत कोड a में उपलब्ध है गिटहब रिपॉजिटरी.

आवश्यक पुस्तकालय आयात करना

अपने आभासी वातावरण में स्थापित पुस्तकालयों का उपयोग करने में सक्षम होने के लिए, आपको उन्हें आयात करने की आवश्यकता है।

from langchain.document_loaders import PyPDFLoader, TextLoader
from langchain.text_splitter import CharacterTextSplitter
from langchain.embeddings.openai import OpenAIEmbeddings
from langchain.vectorstores import FAISS
from langchain.chains import RetrievalQA
from langchain.llms import OpenAI

ध्यान दें कि आप लैंगचेन से निर्भरता लाइब्रेरी आयात करते हैं। यह आपको लैंगचेन ढांचे की विशिष्ट सुविधाओं का उपयोग करने की अनुमति देता है।

विश्लेषण के लिए दस्तावेज़ लोड हो रहा है

एक वैरिएबल बनाकर प्रारंभ करें जिसमें आपकी एपीआई कुंजी हो। आप इस वेरिएबल का उपयोग बाद में प्रमाणीकरण के लिए कोड में करेंगे।

# Hardcoded API key
openai_api_key = "Your API key"

यदि आप अपना कोड तीसरे पक्ष के साथ साझा करने की योजना बना रहे हैं तो अपनी एपीआई कुंजी को हार्ड कोड करने की अनुशंसा नहीं की जाती है। उस उत्पादन कोड के लिए जिसे आप वितरित करना चाहते हैं, इसके बजाय एक पर्यावरण चर का उपयोग करें.

इसके बाद, एक फ़ंक्शन बनाएं जो दस्तावेज़ लोड करता है। फ़ंक्शन को एक पीडीएफ या टेक्स्ट फ़ाइल लोड करनी चाहिए। यदि दस्तावेज़ न तो है, तो फ़ंक्शन को उठाना चाहिए मूल्य त्रुटि.

defload_document(filename):
if filename.endswith(".pdf"):
loader = PyPDFLoader(filename)
documents = loader.load()
elif filename.endswith(".txt"):
loader = TextLoader(filename)
documents = loader.load()
else:
raise ValueError("Invalid file type")

दस्तावेज़ लोड करने के बाद, एक बनाएं कैरेक्टरटेक्स्टस्प्लिटर. यह स्प्लिटर लोड किए गए दस्तावेज़ों को वर्णों के आधार पर छोटे टुकड़ों में विभाजित कर देगा।

 text_splitter = CharacterTextSplitter(chunk_size=1000, 
chunk_overlap=30, separator="\n")

return text_splitter.split_documents(documents=documents)

दस्तावेज़ को विभाजित करने से यह सुनिश्चित होता है कि टुकड़े प्रबंधनीय आकार के हैं और अभी भी कुछ ओवरलैपिंग संदर्भ से जुड़े हुए हैं। यह पाठ विश्लेषण और सूचना पुनर्प्राप्ति जैसे कार्यों के लिए उपयोगी है।

दस्तावेज़ पर सवाल उठाना

आपको अपलोड किए गए दस्तावेज़ से जानकारी प्राप्त करने के लिए उससे पूछताछ करने का एक तरीका चाहिए। ऐसा करने के लिए, एक फ़ंक्शन बनाएं जो लेता है सवाल स्ट्रिंग और ए कुत्ता इनपुट के रूप में. इसके बाद यह एक बनाता है पुनर्प्राप्तिQA उदाहरण का उपयोग कर कुत्ता और OpenAI भाषा मॉडल का एक उदाहरण।

defquery_pdf(query, retriever):
qa = RetrievalQA.from_chain_type(llm=OpenAI(openai_api_key=openai_api_key),
chain_type="stuff", retriever=retriever)
result = qa.run(query)
print(result)

यह फ़ंक्शन क्वेरी को चलाने और परिणाम को प्रिंट करने के लिए बनाए गए QA इंस्टेंस का उपयोग करता है।

मुख्य कार्य बनाना

मुख्य कार्य समग्र कार्यक्रम प्रवाह को नियंत्रित करेगा। यह दस्तावेज़ फ़ाइल नाम के लिए उपयोगकर्ता इनपुट लेगा और उस दस्तावेज़ को लोड करेगा। फिर एक बनाएं ओपनएआईएम्बेडिंग्स एम्बेडिंग और निर्माण के लिए उदाहरण वेक्टर स्टोर लोड किए गए दस्तावेज़ों के आधार पर और एम्बेडिंग. इस वेक्टर स्टोर को स्थानीय फ़ाइल में सहेजें।

इसके बाद, स्थानीय फ़ाइल से स्थायी वेक्टर स्टोर को लोड करें। फिर एक लूप दर्ज करें जहां उपयोगकर्ता प्रश्न इनपुट कर सकता है। मुख्य फ़ंक्शन इन प्रश्नों को पास करता है query_pdf निरंतर वेक्टर स्टोर के रिट्रीवर के साथ कार्य करें। लूप तब तक जारी रहेगा जब तक उपयोगकर्ता "बाहर निकलें" में प्रवेश नहीं करता।

defmain():
filename = input("Enter the name of the document (.pdf or .txt):\n")
docs = load_document(filename)
embeddings = OpenAIEmbeddings(openai_api_key=openai_api_key)
vectorstore = FAISS.from_documents(docs, embeddings)
vectorstore.save_local("faiss_index_constitution")
persisted_vectorstore = FAISS.load_local("faiss_index_constitution", embeddings)
query = input("Type in your query (type 'exit' to quit):\n")

while query != "exit":
query_pdf(query, persisted_vectorstore.as_retriever())
query = input("Type in your query (type 'exit' to quit):\n")

एंबेडिंग शब्दों के बीच अर्थ संबंधी संबंधों को पकड़ती है। वेक्टर एक ऐसा रूप है जिसमें आप पाठ के टुकड़ों का प्रतिनिधित्व कर सकते हैं।

यह कोड दस्तावेज़ में टेक्स्ट डेटा को उत्पन्न एम्बेडिंग का उपयोग करके वैक्टर में परिवर्तित करता है ओपनएआईएम्बेडिंग्स. इसके बाद यह इन वैक्टरों का उपयोग करके अनुक्रमित करता है FAISS, समान वैक्टर की कुशल पुनर्प्राप्ति और तुलना के लिए। यह अपलोड किए गए दस्तावेज़ के विश्लेषण की अनुमति देता है।

अंत में, उपयोग करें __name__ == "__main__" निर्माण यदि कोई उपयोगकर्ता प्रोग्राम को स्टैंडअलोन चलाता है तो मुख्य फ़ंक्शन को कॉल करने के लिए:

if __name__ == "__main__":
main()

यह ऐप एक कमांड-लाइन एप्लिकेशन है। एक विस्तार के रूप में, आप कर सकते हैं ऐप में वेब इंटरफ़ेस जोड़ने के लिए स्ट्रीमलिट का उपयोग करें.

दस्तावेज़ विश्लेषण करना

दस्तावेज़ विश्लेषण करने के लिए, जिस दस्तावेज़ का आप विश्लेषण करना चाहते हैं उसे अपने प्रोजेक्ट के समान फ़ोल्डर में संग्रहीत करें, फिर प्रोग्राम चलाएँ। यह उस दस्तावेज़ का नाम पूछेगा जिसका आप विश्लेषण करना चाहते हैं। इसका पूरा नाम दर्ज करें, फिर प्रोग्राम का विश्लेषण करने के लिए क्वेरी दर्ज करें।

नीचे दिया गया स्क्रीनशॉट पीडीएफ के विश्लेषण के परिणाम दिखाता है।

निम्नलिखित आउटपुट स्रोत कोड वाली टेक्स्ट फ़ाइल के विश्लेषण के परिणाम दिखाता है।

सुनिश्चित करें कि आप जिन फ़ाइलों का विश्लेषण करना चाहते हैं वे पीडीएफ या टेक्स्ट प्रारूप में हैं। यदि आपके दस्तावेज़ अन्य प्रारूपों में हैं, तो आप कर सकते हैं ऑनलाइन टूल का उपयोग करके उन्हें पीडीएफ प्रारूप में परिवर्तित करें.

बड़े भाषा मॉडल के पीछे की प्रौद्योगिकी को समझना

लैंगचेन बड़े भाषा मॉडल का उपयोग करके अनुप्रयोगों के निर्माण को सरल बनाता है। इसका मतलब यह भी है कि यह पर्दे के पीछे क्या चल रहा है उसका सार प्रस्तुत करता है। यह समझने के लिए कि आप जो एप्लिकेशन बना रहे हैं वह कैसे काम करता है, आपको बड़े भाषा मॉडल के पीछे की तकनीक से परिचित होना चाहिए।