از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
روش استفاده از LangChain و GPT برای تجزیه و تحلیل چندین سند
سرفصلهای مطلب
در حدود یک سال گذشته، دنیای توسعهدهندگان با ابزارها، برنامهها و فرآیندهای جدید مبتکرانه برای کار با مدلهای زبان بزرگ و هوش مصنوعی مولد منفجر شده است.
یکی از نمونه های بسیار کاربردی پروژه LangChain است. هدف کلی شامل ارائه ادغام آسان با مدل های مختلف LLM است. اما اکوسیستم LangChain نیز چنین است host به تعداد فزایندهای از پروژههای (گاهی تجربی) که محدودیتهای LLM فروتن را پیش میبرند.
مدتی را صرف مرور وب سایت LangChain کنید تا حسی از آنچه ممکن است داشته باشید. خواهید دید که چند ابزار برای کمک به شما در ساخت برنامه های قدرتمندتر طراحی شده اند.
اما شما همچنین می توانید از آن به عنوان جایگزینی برای اتصال هوش مصنوعی مورد علاقه خود با اینترنت زنده استفاده کنید. به طور خاص، این نسخه نمایشی به شما نشان می دهد که چگونه از آن برای دسترسی برنامه نویسی، خلاصه و تجزیه و تحلیل اسناد آنلاین طولانی و پیچیده استفاده کنید.
برای اینکه همه چیز اتفاق بیفتد، به یک محیط زمان اجرا پایتون نیاز دارید (مانند Jupyter آزمایشگاه) و یک کلید OpenAI API معتبر.
محیط خود را آماده کنید
یکی از کاربردهای محبوب LangChain شامل بارگذاری چندین فایل PDF به صورت موازی و درخواست از GPT برای تجزیه و تحلیل و مقایسه محتوای آنها است.
همانطور که خودتان در مستندات LangChain می بینید، ماژول های موجود را می توان برای اجازه مصرف PDF و تجزیه زبان طبیعی بارگذاری کرد. من قصد دارم شما را از طریق یک نمونه مورد استفاده راهنمایی کنم که کاملاً مبتنی بر آن است روی مثال در آن مستندات در اینجا روش شروع آن است:
import os
os.environ['OPENAI_API_KEY'] = "sk-xxx"
from pydantic import BaseModel, Field
from langchain.chat_models import ChatOpenAI
from langchain.agents import Tool
from langchain.embeddings.openai import OpenAIEmbeddings
from langchain.text_splitter import CharacterTextSplitter
from langchain.vectorstores import FAISS
from langchain.document_loaders import PyPDFLoader
from langchain.chains import RetrievalQA
آن کد محیط شما را می سازد و ابزارهای لازم برای موارد زیر را تنظیم می کند:
-
فعال کردن OpenAI Chat (ChatOpenAI)
-
درک و پردازش متن (OpenAIEmbeddings، CharacterTextSplitter، FAISS، RetrievalQA)
-
مدیریت عامل هوش مصنوعی (ابزار)
بعد، a را ایجاد و تعریف می کنید DocumentInput
کلاس و مقداری به نام llm
که برخی از پارامترهای GPT آشنا را تنظیم می کند که هر دو بعدا فراخوانی می شوند:
class DocumentInput(BaseModel):
question: str = Field()
llm = ChatOpenAI(temperature=0, model="gpt-3.5-turbo-0613")
اسناد خود را بارگیری کنید
بعد، چند آرایه ایجاد می کنید. سه path
متغیرها در files
آرایه حاوی نشانیهای اینترنتی گزارشهای مالی اخیر است که توسط سه شرکت نرمافزار/خدمات فناوری اطلاعات صادر شده است: Alphabet (Google)، Cisco و IBM.
ما قرار است GPT دادههای سه شرکت را به طور همزمان بررسی کنیم، هوش مصنوعی نتایج را با هم مقایسه کند و همه این کارها را بدون نیاز به دردسر بارگیری PDF در یک محیط محلی انجام دهیم.
معمولاً می توانید چنین پرونده های حقوقی را در بخش روابط سرمایه گذار در وب سایت یک شرکت بیابید.
tools = []
files = [
{
"name": "alphabet-earnings",
"path": "https://abc.xyz/investor/static/pdf/1402Q1\
_alphabet_earnings_release.pdf",
},
{
"name": "Cisco-earnings",
"path": "https://d18rn0p25nwr6d.cloudfront.net/CIK-00\
00858877/5b3c172d-f7a3-4ecb-b141-03ff7af7e068.pdf",
},
{
"name": "IBM-earnings",
"path": "https://www.ibm.com/investor/att/pdf/IBM_\
Annual_Report_2022.pdf",
},
]
این for
حلقه از طریق هر مقدار تکرار می شود files
آرایه ای که همین الان بهت نشون دادم برای هر تکرار، از آن استفاده خواهد شد PyPDFLoader
برای بارگذاری فایل PDF مشخص شده، loader
و CharacterTextSplitter
برای تجزیه متن و ابزارهای باقی مانده برای سازماندهی داده ها و اعمال جاسازی ها. سپس آن را فراخوانی می کند DocumentInput
کلاسی که قبلا ایجاد کردیم:
for file in files:
loader = PyPDFLoader(file["path"])
pages = loader.load_and_split()
text_splitter = CharacterTextSplitter(chunk_size=1000, \
chunk_overlap=0)
docs = text_splitter.split_documents(pages)
embeddings = OpenAIEmbeddings()
retriever = FAISS.from_documents(docs, embeddings).as_retriever()
# Wrap retrievers in a Tool
tools.append(
Tool(
args_schema=DocumentInput,
name=file["name"],
func=RetrievalQA.from_chain_type(llm=llm, \
retriever=retriever),
)
)
مدل خود را درخواست کنید
در این مرحله، ما در نهایت آماده هستیم تا یک عامل ایجاد کنیم و آن را به عنوان درخواست خود تغذیه کنیم input
.
llm = ChatOpenAI(
temperature=0,
model="gpt-3.5-turbo-0613",
)
agent = initialize_agent(
agent=AgentType.OPENAI_FUNCTIONS,
tools=tools,
llm=llm,
verbose=True,
)
agent({"input": "Based روی these SEC filing documents, identify \
which of these three companies - Alphabet, IBM, and Cisco \
has the greatest short-term debt levels and which has the \
highest research and development costs."})
خروجی که گرفتم کوتاه و دقیق بود:
‘output’: ‘بر اساس روی اسناد بایگانی SEC:\n\n- شرکتی که بیشترین سطح بدهی کوتاه مدت را دارد، IBM است، با سطح بدهی کوتاه مدت 4760 میلیون دلار.\n- شرکتی که بالاترین هزینه تحقیق و توسعه را دارد Alphabet است، با هزینه تحقیق و توسعه 11468 میلیون دلار است.
بسته بندی
همانطور که مشاهده کردید، LangChain به شما امکان می دهد چندین ابزار را در عملیات هوش مصنوعی مولد ادغام کنید و دسترسی برنامه ریزی شده چندلایه به اینترنت زنده و درخواست های پیچیده تر LLM را امکان پذیر می کند.
با استفاده از این ابزارها، میتوانید بهطور خودکار قدرت موتورهای هوش مصنوعی را در داراییهای دادههای دنیای واقعی در زمان واقعی به کار ببرید. خودتان آن را امتحان کنید.
این مقاله برگرفته از کتاب منینگ من، راهنمای کامل منسوخ برای هوش مصنوعی مولد. اما شما می توانید بسیاری از خوبی های فناوری را در آن پیدا کنید وب سایت من.
منتشر شده در 1403-11-07 00:35:12