نویسنده (ها): سریدار سامپات
در ابتدا منتشر شده در به سمت هوش مصنوعیبشر
🚀 Beyond Text: ساخت سیستم های پارچه ای چند حالته با Cohere و Gemini
TL ؛ دکتر
RAG سنتی در داده های بصری شکست می خورد. این پروژه از آن استفاده می کند تعبیه چند حالته Cohere + Gemini 2.5 Flash برای ساختن یک سیستم پارچه ای که درک می کند هم متن و هم – فعال کردن دقیق پاسخ از نمودارها ، جداول و تصاویر داخل PDFS.
📉 مشکل: Blindspot بصری Rag سنتی
سیستم های تولید سنتی بازیابی (RAG) برای بازیابی اطلاعات از اسناد به تعبیه متن متکی هستند. اما اگر ارزشمندترین بینش شما در نمودارها ، جداول و تصاویر پنهان باشد ، چه می شود؟
این که آیا شما در حال تجزیه و تحلیل PDF های مالی ، گزارش های تحقیق سرمایه گذاری یا اسلایدهای بازار هستید ، بخش اعظم اطلاعات مربوطه در تصاویر:
- شکست عددی در نمودارهای پای/نوار (به عنوان مثال ، تخصیص نمونه کارها)
- تجسم روند در نمودارهای خط (به عنوان مثال ، عملکرد بازار)
- داده های ساختاری در جداول پیچیده (به عنوان مثال ، ماتریس مقایسه)
- جریان در نمودارها (به عنوان مثال ، معماری سیستم)
- روابط مکانی در نقشه ها یا چیدمان ها
یک رویکرد کاملاً مبتنی بر متن نتوانسته است این لایه مهم از اطلاعات را ضبط کند.
راه حل: پارچه چندمودال
پارچه پارچه ای چند قسمت با ترکیب متن و درک تصویر ، پارچه سنتی را تقویت می کند. این رویکرد امکان پذیر است:
🔍 تصویر + جستجوی متن از همان سند
🧠 شاخص بردار متحد با پشتیبانی از روشهای مختلط
🤖 پاسخ های آگاهانه از طریق جمینی با استفاده از متن همسان یا تصویر همسان
فن آوری های مهم
- Cohere’s Embed v4.0: تعبیه شده هر دو متن و تصویر در یک فضای بردار یکسان
- فلش جمینی 2.5: پرس و جوهای فرآیند با متن (متن یا تصویر) برای ایجاد پاسخ های واقعی و انسانی مانند
- خیانت: به طور مؤثر بردارها و جستجوها را از هر دو روش پشتیبانی می کند. نزدیکترین جستجوی همسایه تقریبی کارآمد.
workflow جریان کار چند حالته پایان به پایان
در زیر جریان سیستم سطح بالا برای خط لوله RAG چند حالته است:
📌 از آپلود PDF به جاسازی تصویر/متن ، جستجوی بردار و نسل پاسخ جمینی-همه چیز با استفاده از هم بخیه می شود Flash ، Cohere ، Faiss و Gemini 2.5 Flash.
🎥 پارچه چندمودال – نسخه ی نمایشی ویدیو
در اینجا یک پیاده روی بصری 9 دقیقه ای از سیستم در عمل وجود دارد:
https://www.youtube.com/watch؟v=qi3lyz6-79k
آن را زنده ببینید: نمودارهایی که مورد تجزیه و تحلیل قرار می گیرند ، جداول تفسیر می شوند و تصاویر پیچیده ای که همه در زمان واقعی درک می شوند!
مقایسه معماری
🖼 معماری پارچه چندمودال
در این خط لوله ، هر دو متن و هر تصویر با استفاده از آن تعبیه شده است CORHERE ، ذخیره شده در Faiss ، و به عنوان زمینه ای برای Gemini 2.5 Flash خدمت کرده استبشر این اجازه می دهد تا به سؤالات مبتنی بر تصاویر پاسخ داده شود – چیزی که تنظیمات پارچه ای سنتی نمی تواند از عهده آن برآید.
strchitecture معماری پارچه ای فقط متن
این رویکرد متن را از PDF استخراج می کند ، آن را تعبیه می کند و از آن برای بازیابی استفاده می کند – اما اطلاعات تعبیه شده در داخل نمودارها یا گرافیک ها را کاملاً از دست نمی دهد.
نتایج: مقایسه جانبی
ما هر دو را آزمایش کردیم پارچه فقط متن و چند حالته برنامه هایی در همان سند PDF ETF:
نتایج واضح است: RAG فقط متن با سؤالاتی که در داده های بصری ایجاد می شود ، تلاش می کرد ، در حالی که Multimodal RAG محتوای مبتنی بر تصویر را به طور مؤثر اداره می کرد.
نتایج واضح است: RAG فقط متن با سؤالاتی که در داده های بصری ایجاد می شود ، مبارزه می کند ، در حالی که Multimodal RAG محتوای مبتنی بر تصویر را به طور مؤثر اداره می کند.
Walkthrough Code: پردازش چند حالته
code کد منبع کامل: مخزن جیتاب
1. PDF به تبدیل تصویر
images = pdf2image.convert_from_path(pdf_path, dpi=200)
این لیستی از تصاویر PIL صفحه ای را به ما می دهد که در مرحله بعدی تعبیه شده اند.
2. تعبیه با Cohere
if content_type == "text":
response = cohere.embed(input_type="search_document", texts=[text])
else:
base64_img = convert_image_to_base64(image)
response = cohere.embed(
input_type="search_document",
inputs=[{"content": [{"type": "image", "image": base64_img}]}]
)
خروجی به عنوان وکتور Float32 به FAISS اضافه می شود.
3.
if isinstance(content, Image.Image):
response = gemini.generate_content([query, content])
else:
response = gemini.generate_content(f"Question: {query}\n\nContext: {text}")
Gemini 2.5 Flash Plashly Charts ، عناوین و طرح بندی را تجزیه می کند.
– شروع – مثال حداقل
در اینجا یک اسکریپت جمع و جور برای شما وجود دارد که شما را با استفاده از پارچه چندمودال با استفاده از Cohere + Gemini در حال اجرا و اجرا در حال اجرا است:
⚠ یادداشت: این یک حداقل هدف برای نشان دادن جریان هسته است. کد کار کامل با UI ، ساختار مدولار و منطق جستجو در موجود است [GitHub repository](github.com/sridharsampath/multimodal-demo).*
import cohere
from google.generativeai import GenerativeModel
import faiss
import numpy as np
from pdf2image import convert_from_path
from PIL import Image
# Initialize APIs
co = cohere.Client("your-cohere-key")
gemini = GenerativeModel("gemini-2.5-flash")# Convert PDF page to image
def pdf_to_images(pdf_path):
return convert_from_path(pdf_path, dpi=200)
# Create embeddings
def get_embedding(content, content_type="text"):
if content_type == "text":
response = co.embed(input_type="search_document", texts=)
else:
base64_img = Image.open(content).resize((512, 512)).tobytes().hex()
response = co.embed(
input_type="search_document",
inputs=[{"content": [{"type": "image", "image": base64_img}]}]
)
return response.embeddings[0]
# Index and query
dimension = 1024
index = faiss.IndexFlatL2(dimension)
images = pdf_to_images("your.pdf")
for img in images:
index.add(np.array([get_embedding(img, "image")], dtype=np.float32))
def answer_query(query):
query_emb = get_embedding(query)
D, I = index.search(np.array([query_emb], dtype=np.float32), k=1)
result = images[I[0][0]]
return gemini.generate_content([query, result]).text
setupproject
آنچه شما نیاز دارید
🔑 کلیدهای API:
requirements الزامات سیستم:
- پایتون 3.8+
- Poppler (برای تبدیل تصویر PDF)
# Clone repository
git clone https://github.com/SridharSampath/multimodal-rag-demo
cd multimodal-rag-app# Install dependencies
pip install -r requirements.txt
# Run the app
streamlit run app.py
وابستگی سیستم: Poppler
این پروژه از PDF2Image برای تبدیل صفحات PDF به تصاویر استفاده می کند ، که به Poppler نیاز دارد:
WINDOWS:
🧪 تصاویر نسخه ی نمایشی-مولتی مدال در مقابل پارچه فقط متن
مقایسه بصری همان نمایش داده شدگان در دو برنامه:
1. ❓ query: “AUM از Invesco چیست؟”
برنامه چند حالته: در نمودار نوار یافت شد
برنامه فقط متن: از دست رفته (متن آن را ذکر نمی کند)
شماره. ❓ پرس و جو: “BlackRock چقدر از طریق خدمات فناوری کسب کرد؟”
برنامه چند حالته: ارزش کشیده شده از تصویر- صورت درآمد سیاه سیاه
برنامه فقط متن: از دست رفته (متن آن را ذکر نمی کند)
3. 🍎 query: “اپل در S&P چقدر درصد است؟”
برنامه چند حالته: در نمودار پای یافت شد
برنامه فقط متن: داده های تقریبی داد
4. 🦠 query: “در حین همه گیر Covid ، 10 وزن برتر در S&P 500 چقدر بود؟”
برنامه چند حالته: نمودار جدول زمانی تجزیه شده
برنامه فقط متن: شکل خاص از دست رفته
5. 💰 پرس و جو: “چگونه می توان بیت کوین را در ETF ها ردیابی کرد؟”
برنامه چند حالته: در تصویر جدول یافت شد
برنامه فقط متن: شکل خاص از دست رفته
⚠ محدودیت ها و ملاحظات
در حالی که پارچه چندمودال مزایای قابل توجهی را ارائه می دهد ، از این موارد آگاه باشید:
- سربار محاسباتی – پردازش و تعبیه تصاویر به منابع بیشتری نیاز دارد
- هزینه های API -API های تعبیه چند حالته معمولاً بیشتر از معادل های متن فقط هزینه دارند
- وابستگی OCR – شناخت متن نمودار هنوز به کیفیت OCR متکی است
- تأثیر وضوح تصویر -تصاویر با وضوح پایین ممکن است کیفیت جاسازی را کاهش دهد
- چالش های پیچیده تجسم – تجسم های بسیار پیچیده هنوز هم ممکن است تفسیر شود
منابع و پیوندهای مرجع
🙌 افکار
اگر در حال ساخت هستید LLM برنامه های اسناد مالی QA ، دستیار تحقیق یا تجزیه و تحلیل انطباق ، باید فراتر از متن را جستجو کنید. Multimodal Rag ارائه می دهد آگاهی از زمینه ، تصویر شامل و LLMبازیابی بهینه شده که می تواند بینش از کل اکوسیستم سند شما را استخراج کند ، نه فقط اجزای متنی.
آن را امتحان کنید و افکار خود را به من اطلاع دهید!
🚀 بیایید به هم وصل شویم!
اگر این موضوع را مفید دیدید ، با من ارتباط برقرار کنید:
🔗 LinkedIn – Sridhar Sampath
🔗 وبلاگ متوسط
🔗 مخزن جیتاب
✨ پایان
در ابتدا در https://sridhartech.hashnode.dev در تاریخ 3 مه 2025.
منتشر شده از طریق به سمت هوش مصنوعی