systemprompt_wire/gemini/
mod.rs1mod request;
18mod request_parts;
19mod response;
20mod streaming;
21mod streaming_parts;
22mod thinking;
23mod wire;
24
25pub use request::build_request_body;
26pub use response::{buffered_defect, parse_response, stop_reason};
27pub use streaming::sse_to_canonical_events;
28pub use wire::{
29 GeminiCandidate, GeminiCodeExecutionResult, GeminiContent, GeminiEmpty, GeminiExecutableCode,
30 GeminiFunctionCall, GeminiFunctionCallingConfig, GeminiFunctionDeclaration,
31 GeminiFunctionResponse, GeminiGenerationConfig, GeminiGroundingChunk, GeminiGroundingMetadata,
32 GeminiImageConfig, GeminiInlineData, GeminiPart, GeminiPromptFeedback, GeminiRequest,
33 GeminiResponse, GeminiSystemInstruction, GeminiThinkingConfig, GeminiTool, GeminiToolConfig,
34 GeminiUsageMetadata, GeminiWebSource,
35};
36
37pub const API_KEY_HEADER: &str = "x-goog-api-key";
38
39#[must_use]
40pub fn upstream_path(model: &str, stream: bool) -> String {
41 if stream {
42 format!("/models/{model}:streamGenerateContent?alt=sse")
43 } else {
44 format!("/models/{model}:generateContent")
45 }
46}