Gemini API mbështet hyrjen PDF, duke përfshirë dokumente të gjata (deri në 3600 faqe). Modelet Gemini përpunojnë PDF-të me vizion origjinal, dhe për këtë arsye janë në gjendje të kuptojnë përmbajtjen e tekstit dhe të imazhit brenda dokumenteve. Me mbështetjen origjinale të vizionit PDF, modelet Gemini janë në gjendje të:
- Analizoni diagramet, grafikët dhe tabelat brenda dokumenteve
- Ekstraktoni informacionin në formate të strukturuara të daljes
- Përgjigjuni pyetjeve në lidhje me përmbajtjen vizuale dhe tekstuale në dokumente
- Përmblidhni dokumentet
- Transkriptoni përmbajtjen e dokumentit (p.sh. në HTML) duke ruajtur paraqitjet dhe formatimin, për përdorim në aplikacionet e rrjedhës së poshtme
Ky udhëzues demonstron disa mënyra të mundshme për të përdorur API-në Gemini për të përpunuar dokumentet PDF.
Hyrja PDF
Për ngarkesat PDF nën 20 MB, mund të zgjidhni midis ngarkimit të dokumenteve të koduara base64 ose ngarkimit të drejtpërdrejtë të skedarëve të ruajtur në vend.
Si të dhëna inline
Ju mund të përpunoni dokumente PDF direkt nga URL-të. Këtu është një copë kodi që tregon se si ta bëni këtë:
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)
Detaje teknike
Gemini 1.5 Pro dhe 1.5 Flash mbështesin një maksimum prej 3600 faqe dokumentesh. Faqet e dokumentit duhet të jenë në një nga llojet e mëposhtme MIME të të dhënave tekstuale:
- PDF -
application/pdf
- JavaScript -
application/x-javascript
,text/javascript
- Python -
application/x-python
,text/x-python
- TXT -
text/plain
- HTML -
text/html
- CSS -
text/css
- Markdown -
text/md
- CSV -
text/csv
- XML -
text/xml
- RTF -
text/rtf
Çdo faqe dokumenti është e barabartë me 258 argumente.
Ndërsa nuk ka kufizime specifike për numrin e pikselëve në një dokument përveç dritares së kontekstit të modelit, faqet më të mëdha zvogëlohen në një rezolucion maksimal prej 3072x3072 duke ruajtur raportin e tyre origjinal të pamjes, ndërsa faqet më të vogla janë shkallëzuar deri në 768x768 piksele. Nuk ka ulje kostoje për faqet me madhësi më të ulët, përveç gjerësisë së brezit, ose përmirësimit të performancës për faqet me rezolucion më të lartë.
Për rezultate më të mira:
- Rrotulloni faqet në orientimin e duhur përpara se të ngarkoni.
- Shmangni faqet e paqarta.
- Nëse përdorni një faqe të vetme, vendosni kërkesën për tekst pas faqes.
PDF-të e ruajtura në vend
Për PDF-të e ruajtura në vend, mund të përdorni qasjen e mëposhtme:
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)
PDF të mëdha
Ju mund të përdorni API-në e skedarit për të ngarkuar një dokument të çdo madhësie. Përdorni gjithmonë API-në e skedarit kur madhësia totale e kërkesës (përfshirë skedarët, kërkesën për tekst, udhëzimet e sistemit, etj.) është më e madhe se 20 MB.
Telefononi media.upload
për të ngarkuar një skedar duke përdorur File API. Kodi i mëposhtëm ngarkon një skedar dokumenti dhe më pas përdor skedarin në një thirrje për models.generateContent
.
PDF të mëdha nga URL-të
Përdorni API-në e skedarëve për skedarë të mëdhenj PDF të disponueshëm nga URL-të, duke thjeshtuar procesin e ngarkimit dhe përpunimit të këtyre dokumenteve drejtpërdrejt përmes URL-ve të tyre:
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)
PDF të mëdha të ruajtura në vend
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)
Mund të verifikoni se API e ka ruajtur me sukses skedarin e ngarkuar dhe të merrni meta të dhënat e tij duke telefonuar files.get
. Vetëm name
(dhe sipas zgjerimit, uri
) janë unik.
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))
PDF të shumta
Gemini API është në gjendje të përpunojë dokumente të shumta PDF në një kërkesë të vetme, për sa kohë që madhësia e kombinuar e dokumenteve dhe kërkesave të tekstit qëndron brenda dritares së kontekstit të modelit.
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)
Çfarë është më pas
Për të mësuar më shumë, shikoni burimet e mëposhtme:
- Strategjitë e nxitjes së skedarëve : Gemini API mbështet nxitjen me të dhëna teksti, imazhi, audio dhe video, të njohura gjithashtu si nxitje multimodale.
- Udhëzimet e sistemit : Udhëzimet e sistemit ju lejojnë të drejtoni sjelljen e modelit bazuar në nevojat tuaja specifike dhe rastet e përdorimit.