জেমিনি API দীর্ঘ নথি (3600 পৃষ্ঠা পর্যন্ত) সহ PDF ইনপুট সমর্থন করে। জেমিনি মডেলগুলি নেটিভ ভিশন সহ পিডিএফগুলি প্রক্রিয়া করে, এবং তাই নথির ভিতরের পাঠ্য এবং চিত্র উভয় বিষয়বস্তু বুঝতে সক্ষম। নেটিভ পিডিএফ ভিশন সমর্থন সহ, মিথুন মডেলগুলি সক্ষম:
- নথির ভিতরে ডায়াগ্রাম, চার্ট এবং টেবিল বিশ্লেষণ করুন
- কাঠামোগত আউটপুট ফরম্যাটে তথ্য বের করুন
- নথিতে ভিজ্যুয়াল এবং পাঠ্য বিষয়বস্তু সম্পর্কে প্রশ্নের উত্তর দিন
- নথিগুলি সংক্ষিপ্ত করুন
- ডাউনস্ট্রিম অ্যাপ্লিকেশনগুলিতে ব্যবহারের জন্য বিন্যাস এবং বিন্যাস সংরক্ষণ করে ডকুমেন্ট সামগ্রী (যেমন HTML-এ) প্রতিলিপি করুন
এই টিউটোরিয়ালটি পিডিএফ ডকুমেন্ট প্রসেস করতে Gemini API ব্যবহার করার কিছু সম্ভাব্য উপায় দেখায়।
পিডিএফ ইনপুট
20MB এর কম পিডিএফ পেলোডের জন্য, আপনি বেস64 এনকোডেড নথি আপলোড করা বা স্থানীয়ভাবে সঞ্চিত ফাইলগুলি সরাসরি আপলোড করার মধ্যে বেছে নিতে পারেন।
ইনলাইন ডেটা হিসাবে
আপনি সরাসরি URL থেকে PDF নথি প্রক্রিয়া করতে পারেন। এখানে একটি কোড স্নিপেট দেখানো হয়েছে কিভাবে এটি করতে হয়:
from google import genai
from google.genai import types
import httpx
client = genai.Client()
doc_url = "https://discovery.ucl.ac.uk/id/eprint/10089234/1/343019_3_art_0_py4t4l_convrt.pdf"
# Retrieve and encode the PDF byte
doc_data = httpx.get(doc_url).content
prompt = "Summarize this document"
response = client.models.generate_content(
model="gemini-2.0-flash",
contents=[
types.Part.from_bytes(
data=doc_data,
mime_type='application/pdf',
),
prompt])
print(response.text)
প্রযুক্তিগত বিবরণ
জেমিনি 1.5 প্রো এবং 1.5 ফ্ল্যাশ সর্বাধিক 3,600 নথি পৃষ্ঠা সমর্থন করে। নথির পৃষ্ঠাগুলি অবশ্যই নিম্নলিখিত টেক্সট ডেটা MIME প্রকারগুলির মধ্যে একটিতে থাকতে হবে:
- পিডিএফ -
application/pdf
- জাভাস্ক্রিপ্ট -
application/x-javascript
,text/javascript
- পাইথন -
application/x-python
,text/x-python
- TXT -
text/plain
- এইচটিএমএল -
text/html
- CSS -
text/css
- মার্কডাউন -
text/md
- CSV -
text/csv
- XML -
text/xml
- RTF -
text/rtf
প্রতিটি নথি পৃষ্ঠা 258 টোকেনের সমতুল্য।
মডেলের প্রসঙ্গ উইন্ডো ছাড়াও একটি নথিতে পিক্সেলের সংখ্যার কোনো নির্দিষ্ট সীমা না থাকলেও, বড় পৃষ্ঠাগুলিকে তাদের আসল আকৃতির অনুপাত সংরক্ষণ করার সময় 3072x3072 এর সর্বোচ্চ রেজোলিউশনে স্কেল করা হয়, যখন ছোট পৃষ্ঠাগুলি 768x768 পিক্সেল পর্যন্ত স্কেল করা হয়। ব্যান্ডউইথ ব্যতীত নিম্ন আকারের পৃষ্ঠাগুলির জন্য কোনও খরচ হ্রাস বা উচ্চ রেজোলিউশনে পৃষ্ঠাগুলির জন্য কার্যক্ষমতার উন্নতি নেই৷
সেরা ফলাফলের জন্য:
- আপলোড করার আগে সঠিক অভিযোজনে পৃষ্ঠাগুলি ঘোরান৷
- ঝাপসা পেজ এড়িয়ে চলুন।
- একটি একক পৃষ্ঠা ব্যবহার করলে, পৃষ্ঠার পরে পাঠ্য প্রম্পট রাখুন।
স্থানীয়ভাবে সংরক্ষিত PDF
স্থানীয়ভাবে সংরক্ষিত PDF এর জন্য, আপনি নিম্নলিখিত পদ্ধতি ব্যবহার করতে পারেন:
from google import genai
from google.genai import types
import pathlib
import httpx
client = genai.Client()
doc_url = "https://discovery.ucl.ac.uk/id/eprint/10089234/1/343019_3_art_0_py4t4l_convrt.pdf"
# Retrieve and encode the PDF byte
filepath = pathlib.Path('file.pdf')
filepath.write_bytes(httpx.get(doc_url).content)
prompt = "Summarize this document"
response = client.models.generate_content(
model="gemini-2.0-flash",
contents=[
types.Part.from_bytes(
data=filepath.read_bytes(),
mime_type='application/pdf',
),
prompt])
print(response.text)
বড় পিডিএফ
আপনি যে কোনো আকারের একটি নথি আপলোড করতে ফাইল API ব্যবহার করতে পারেন। সর্বদা ফাইল API ব্যবহার করুন যখন মোট অনুরোধের আকার (ফাইল, পাঠ্য প্রম্পট, সিস্টেম নির্দেশাবলী, ইত্যাদি সহ) 20 MB এর থেকে বড় হয়৷
ফাইল API ব্যবহার করে একটি ফাইল আপলোড করতে media.upload
কল করুন। নিম্নলিখিত কোডটি একটি নথি ফাইল আপলোড করে এবং তারপরে models.generateContent
এ একটি কলে ফাইলটি ব্যবহার করে।
ইউআরএল থেকে বড় পিডিএফ
ইউআরএল থেকে পাওয়া বৃহৎ পিডিএফ ফাইলের জন্য ফাইল এপিআই ব্যবহার করুন, এই ডকুমেন্টগুলিকে সরাসরি তাদের ইউআরএলগুলির মাধ্যমে আপলোড এবং প্রক্রিয়াকরণের প্রক্রিয়া সহজ করে:
from google import genai
from google.genai import types
import io
import httpx
client = genai.Client()
long_context_pdf_path = "https://www.nasa.gov/wp-content/uploads/static/history/alsj/a17/A17_FlightPlan.pdf"
# Retrieve and upload the PDF using the File API
doc_io = io.BytesIO(httpx.get(long_context_pdf_path).content)
sample_doc = client.files.upload(
# You can pass a path or a file-like object here
file=doc_io,
config=dict(
mime_type='application/pdf')
)
prompt = "Summarize this document"
response = client.models.generate_content(
model="gemini-2.0-flash",
contents=[sample_doc, prompt])
print(response.text)
স্থানীয়ভাবে সংরক্ষিত বড় পিডিএফ
from google import genai
from google.genai import types
import pathlib
import httpx
client = genai.Client()
long_context_pdf_path = "https://www.nasa.gov/wp-content/uploads/static/history/alsj/a17/A17_FlightPlan.pdf"
# Retrieve the PDF
file_path = pathlib.Path('A17.pdf')
file_path.write_bytes(httpx.get(long_context_pdf_path).content)
# Upload the PDF using the File API
sample_file = client.files.upload(
file=file_path,
)
prompt="Summarize this document"
response = client.models.generate_content(
model="gemini-2.0-flash",
contents=[sample_file, "Summarize this document"])
print(response.text)
আপলোড করা ফাইলটি সফলভাবে সংরক্ষণ করা API যাচাই করতে পারেন এবং files.get
এ কল করে এর মেটাডেটা পেতে পারেন। শুধুমাত্র name
(এবং এক্সটেনশন দ্বারা, uri
) অনন্য।
from google import genai
import pathlib
client = genai.Client()
fpath = pathlib.Path('example.txt')
fpath.write_text('hello')
file = client.files.upload('example.txt')
file_info = client.files.get(file.name)
print(file_info.model_dump_json(indent=4))
একাধিক পিডিএফ
জেমিনি API একটি একক অনুরোধে একাধিক PDF নথি প্রক্রিয়া করতে সক্ষম, যতক্ষণ পর্যন্ত নথির সম্মিলিত আকার এবং পাঠ্য প্রম্পট মডেলের প্রসঙ্গ উইন্ডোর মধ্যে থাকে৷
from google import genai
import io
import httpx
client = genai.Client()
doc_url_1 = "https://arxiv.org/pdf/2312.11805"
doc_url_2 = "https://arxiv.org/pdf/2403.05530"
# Retrieve and upload both PDFs using the File API
doc_data_1 = io.BytesIO(httpx.get(doc_url_1).content)
doc_data_2 = io.BytesIO(httpx.get(doc_url_2).content)
sample_pdf_1 = client.files.upload(
file=doc_data_1,
config=dict(mime_type='application/pdf')
)
sample_pdf_2 = client.files.upload(
file=doc_data_2,
config=dict(mime_type='application/pdf')
)
prompt = "What is the difference between each of the main benchmarks between these two papers? Output these in a table."
response = client.models.generate_content(
model="gemini-2.0-flash",
contents=[sample_pdf_1, sample_pdf_2, prompt])
print(response.text)
এরপর কি
আরও জানতে, নিম্নলিখিত সংস্থানগুলি দেখুন:
- ফাইল প্রম্পটিং কৌশল : জেমিনি এপিআই টেক্সট, ইমেজ, অডিও এবং ভিডিও ডেটা সহ প্রম্পটিং সমর্থন করে, যা মাল্টিমডাল প্রম্পটিং নামেও পরিচিত।
- সিস্টেম নির্দেশাবলী : সিস্টেম নির্দেশাবলী আপনাকে আপনার নির্দিষ্ট প্রয়োজন এবং ব্যবহারের ক্ষেত্রের উপর ভিত্তি করে মডেলের আচরণ পরিচালনা করতে দেয়।