google-gemini / cookbook

Examples and guides for using the Gemini API.
https://ai.google.dev/gemini-api/docs
Apache License 2.0
4.78k stars 680 forks source link

Difference in Output Between PDF and DOC File Upload Methods #233

Open anusonawane opened 2 months ago

anusonawane commented 2 months ago

Description of the bug:

I'm trying two methods for file uploads:

PDF File Upload: DOC File Upload: Despite both files containing the same content, I'm noticing differences in the output. Specifically, the output response from the DOC file upload method lacks a lot of information and steps, while the PDF method works great.

Actual vs expected behavior:

Here's what I'm doing for each method:

1. PDF File Upload:

Since there is no support for direct PDF file upload, I'm converting each PDF page to an image, extracting text from the PDF, and then doing the following: `files.append(genai.upload_file(img))

for page, (text, image) in enumerate(zip(texts, files)): instruction = f"{instruction}\nPage {page+1}\n------------\n{text}\n{image}"

chat_session = model.start_chat( history=[ {"role": "user", "parts": [instruction]}, ] ) response = chat_session.send_message(prompt) print(response.text) `

2. DOC File Upload:

For the DOC file, I'm uploading it directly to Gemini:

files.append(genai.upload_file("test.docx")) instruction = f"Usage document:\n{file}" chat_session = model.start_chat( history=[ {"role": "user", "parts": [instruction]}, ] ) response = chat_session.send_message(prompt) print(response.text)

Any other information you'd like to share?

Can anyone help me understand why there is a difference in the output between these two methods? The content in both files is the same, but the response from the DOC file upload lacks information and steps compared to the PDF method. Any insights would be appreciated!

singhniraj08 commented 1 month ago

@anusonawane Thank you reporting this issue. This repository is for issues related to Gemini cookbook Examples/Quickstarts bugs or improvements. For Issues/Questions related to Gemini API, we would suggest you to use "Send Feedback" option in Gemini docs. Ref: Screenshot below. You can also post this issue on Google AI forum.

image

github-actions[bot] commented 3 weeks ago

Marking this issue as stale since it has been open for 14 days with no activity. This issue will be closed if no further activity occurs.

fati459 commented 2 weeks ago

It sounds like you're encountering a discrepancy in the output when uploading PDF and DOC files, even though the content is identical. Here are a few potential reasons for the differences and some suggestions for troubleshooting:

Possible Reasons for Output Differences

  1. File Parsing Differences:

    • The libraries or methods used to extract text from PDFs and DOC files might handle formatting and content extraction differently. PDFs can often contain more complex layouts, which might be better processed when converted to images.
  2. Content Extraction Method:

    • In your PDF method, you're converting pages to images and explicitly extracting text, which may allow for better control over what information gets included in the final output. The DOC upload might not be extracting all the necessary details due to how the content is structured.
  3. Input Structure:

    • The way you structure your input for the chat session might affect how the model interprets the content. Ensure that the instruction format is consistent between both methods.
  4. Model Limitations:

    • The model might have different capabilities or settings when processing different file types. It could be optimized for one format over another.

Suggestions for Troubleshooting

  1. Check the Extraction Process:

    • Verify that the text extraction from the DOC file is capturing all relevant content. You could print the extracted text before sending it to the chat session to compare it with the PDF output.
  2. Standardize Input Format:

    • Make sure that the instruction format is as similar as possible between the two methods. This includes how you concatenate instructions and how you present the files.
  3. Debugging Output:

    • Print the responses from both methods at each step to identify where the information starts to differ. This can help pinpoint if the issue lies in the extraction or the chat session.
  4. Consult Documentation:

    • Look into the documentation for the libraries or APIs you are using to see if there are any notes on limitations or differences in handling various file types.
  5. Experiment with Different Formats:

    • If possible, try different formats for the DOC upload (like DOCX vs. DOC) or use different libraries for text extraction to see if that changes the output.

By following these steps, you should be able to identify the source of the discrepancy and potentially improve the output consistency between the two file upload methods. If the issue persists, consider reaching out to support for the specific tools or libraries you’re using for further assistance.