Expand description
Message module for OpenAI tools.
This module provides data structures and functionality for handling OpenAI API messages, including text content, images, tool calls, and multi-modal interactions. It serves as the foundation for communication between users and OpenAI models.
§Core Components
Message
- The main message structure containing role, content, and metadataContent
- Represents different types of content (text, images, etc.)ToolCall
- Represents function calls made by OpenAI models
§Supported Content Types
The module supports various content types for rich interactions:
- Text content: Plain text messages
- Image content: Images from URLs or local files (PNG, JPEG, GIF)
- Multi-modal content: Combining text and images in a single message
§Usage in the Library
This module is used throughout the OpenAI tools library:
- In
crate::chat::request
- For Chat Completion API message handling - In
crate::responses::request
- For Responses API message processing - In
crate::chat::response
- For parsing OpenAI API responses
§Examples
§Basic Text Message
use openai_tools::common::message::Message;
use openai_tools::common::role::Role;
let message = Message::from_string(Role::User, "Hello, how are you?");
§Multi-modal Message with Text and Image
use openai_tools::common::message::{Message, Content};
use openai_tools::common::role::Role;
let contents = vec![
Content::from_text("What's in this image?"),
Content::from_image_file("path/to/image.png"),
];
let message = Message::from_message_array(Role::User, contents);