Source code for bedrock_agents_sdk.models.files
"""
File models for Bedrock Agents SDK.
"""
from typing import Dict, Any
from pydantic import BaseModel
[docs]
class InputFile(BaseModel):
"""Represents a file to be sent to the agent"""
name: str
content: bytes
media_type: str
use_case: str = "CODE_INTERPRETER"
[docs]
def to_dict(self) -> Dict[str, Any]:
"""Convert to API parameters format"""
return {
"name": self.name,
"source": {
"byteContent": {
"data": self.content,
"mediaType": self.media_type
},
"sourceType": "BYTE_CONTENT"
},
"useCase": self.use_case
}
[docs]
class OutputFile:
"""Represents a file received from the agent"""
def __init__(self, name: str, content: bytes, file_type: str):
self.name = name
self.content = content
self.type = file_type
[docs]
@classmethod
def from_response(cls, file_data: Dict[str, Any]) -> 'OutputFile':
"""Create an OutputFile from API response data"""
return cls(
name=file_data.get('name', ''),
content=file_data.get('bytes', b''),
file_type=file_data.get('type', '')
)
[docs]
def save(self, directory: str = ".") -> str:
"""Save the file to disk"""
import os
path = os.path.join(directory, self.name)
with open(path, 'wb') as f:
f.write(self.content)
return path