Skip to main content

kcode_openai_api/
lib.rs

1//! OpenAI audio transcription, prompt-driven image analysis, and GPT Image generation.
2//!
3//! [`OpenAi`] owns an API key and exposes the direct OpenAI API operations
4//! currently needed by Kennedy: `gpt-4o-transcribe` audio transcription,
5//! `gpt-5.6` single-image analysis, and `gpt-image-2` image generation. The
6//! crate does not persist credentials, requests, responses, or media.
7
8#![deny(missing_docs)]
9#![forbid(unsafe_code)]
10
11mod agent;
12mod api;
13mod error;
14mod model;
15
16pub use agent::{
17    AgentTokenUsage, AgentTool, AgentToolCall, AgentTurnRequest, AgentTurnResponse, ModelMetadata,
18};
19pub use api::OpenAi;
20pub use error::{Error, Result};
21pub use model::{
22    AudioInput, GeneratedImage, ImageAnalysis, ImageAnalysisRequest, ImageAnalysisStatus,
23    ImageAnalysisUsage, ImageBackground, ImageDetail, ImageEditRequest, ImageFormat,
24    ImageGeneration, ImageGenerationRequest, ImageInput, ImageMediaType, ImageQuality, ImageSize,
25    ImageTokenDetails, ImageUsage, Moderation, Transcription, TranscriptionRequest,
26    TranscriptionTokenDetails, TranscriptionTokenUsage, TranscriptionUsage,
27};
28
29/// OpenAI model used for audio transcription.
30pub const GPT_4O_TRANSCRIBE: &str = "gpt-4o-transcribe";
31/// OpenAI model used for prompt-driven image analysis.
32pub const GPT_5_6: &str = "gpt-5.6";
33/// Latest GPT Image model used for image generation.
34pub const GPT_IMAGE_2: &str = "gpt-image-2";
35/// Default transcription guidance preserving Kennedy's current behavior.
36pub const DEFAULT_TRANSCRIPTION_PROMPT: &str = "Transcribe faithfully. When discernible and relevant, include non-speech sounds, speaker changes, tone, pauses, music, and background audio in concise brackets.";