Part of #1592
Scope
Wire up image input via Gemini's inlineData parts format.
Files to Modify
crates/zeph-llm/src/gemini.rs -- convert MessagePart::Image to inlineData part in message builder
Key Implementation Details
- Images sent as
inlineData parts within contents[].parts[]:
{ "inlineData": { "mimeType": "image/jpeg", "data": "base64..." } }
- All Gemini 2.0+ models support vision natively (no separate vision model needed)
- Multiple images per message supported
- Mixed text + image parts in single message supported
- Zeph's
ImageData { data: Vec<u8>, mime_type: String } maps directly
Acceptance Criteria
Part of #1592
Scope
Wire up image input via Gemini's
inlineDataparts format.Files to Modify
crates/zeph-llm/src/gemini.rs-- convertMessagePart::ImagetoinlineDatapart in message builderKey Implementation Details
inlineDataparts withincontents[].parts[]:{ "inlineData": { "mimeType": "image/jpeg", "data": "base64..." } }ImageData { data: Vec<u8>, mime_type: String }maps directlyAcceptance Criteria
supports_vision()returnstrue(already set in Phase 1)MessagePart::Imagecorrectly converted toinlineDataformat