- Spec files
pypi-anthropic
Describes: pkg:pypi/anthropic@0.66.x
- Description
- The official Python library for the anthropic API
- Author
- tessl
- Last updated
beta.md docs/
1# Beta Features23Beta features provide access to experimental and preview functionality including advanced capabilities, new model features, and cutting-edge functionality that is in testing or early release phases.45## Capabilities67### Beta API Access89Access to beta versions of core APIs with experimental features and improvements.1011```python { .api }12class Beta:13messages: BetaMessages14models: BetaModels15files: BetaFiles1617class AsyncBeta:18messages: AsyncBetaMessages19models: AsyncBetaModels20files: AsyncBetaFiles2122class BetaMessages:23def create(24self,25max_tokens: int,26messages: List[BetaMessageParam],27model: str,28*,29betas: Optional[List[AnthropicBetaParam]] = None,30**kwargs31) -> BetaMessage: ...3233batches: BetaBatches3435class AsyncBetaMessages:36async def create(37self,38max_tokens: int,39messages: List[BetaMessageParam],40model: str,41*,42betas: Optional[List[AnthropicBetaParam]] = None,43**kwargs44) -> BetaMessage: ...4546batches: AsyncBetaBatches47```4849### Beta Files API5051File management capabilities for uploading, managing, and using files with beta features.5253```python { .api }54class BetaFiles:55def upload(56self,57*,58file: FileTypes,59betas: Optional[List[AnthropicBetaParam]] = None,60**kwargs61) -> FileMetadata: ...6263def retrieve_metadata(self, file_id: str, **kwargs) -> FileMetadata: ...64def list(**kwargs) -> List[FileMetadata]: ...65def delete(self, file_id: str, **kwargs) -> DeletedFile: ...6667class AsyncBetaFiles:68async def upload(69self,70*,71file: FileTypes,72betas: Optional[List[AnthropicBetaParam]] = None,73**kwargs74) -> FileMetadata: ...7576async def retrieve_metadata(self, file_id: str, **kwargs) -> FileMetadata: ...77async def list(**kwargs) -> List[FileMetadata]: ...78async def delete(self, file_id: str, **kwargs) -> DeletedFile: ...79```8081### Beta Models API8283Access to beta model features and experimental model capabilities.8485```python { .api }86class BetaModels:87def list(**kwargs) -> List[BetaModelInfo]: ...8889class AsyncBetaModels:90async def list(**kwargs) -> List[BetaModelInfo]: ...91```9293## Core Types9495### Beta Message Types9697```python { .api }98class BetaMessage(TypedDict):99id: str100type: Literal["message"]101role: Literal["assistant"]102content: List[BetaContentBlock]103model: str104stop_reason: Optional[StopReason]105stop_sequence: Optional[str]106usage: BetaUsage107108class BetaMessageParam(TypedDict):109role: Literal["user", "assistant"]110content: Union[str, List[BetaContentBlockParam]]111112class BetaContentBlock(TypedDict):113type: str114115class BetaTextBlock(BetaContentBlock):116type: Literal["text"]117text: str118119class BetaContentBlockParam(TypedDict):120type: str121122class BetaUsage(TypedDict):123input_tokens: int124output_tokens: int125cache_creation_input_tokens: Optional[int]126cache_read_input_tokens: Optional[int]127```128129### Beta Tool Types130131```python { .api }132class BetaToolParam(TypedDict):133name: str134description: str135input_schema: Dict[str, Any]136137class AnthropicBetaParam(TypedDict):138type: str139```140141### Beta File Types142143```python { .api }144class FileMetadata(TypedDict):145id: str146type: Literal["file"]147filename: str148purpose: str149size_bytes: int150created_at: str151152class DeletedFile(TypedDict):153id: str154type: Literal["file"]155deleted: bool156```157158### Beta Model Types159160```python { .api }161class BetaModelInfo(TypedDict):162id: str163type: Literal["model"]164display_name: str165created_at: str166```167168### Beta Error Types169170```python { .api }171class BetaError(TypedDict):172type: str173message: str174175class BetaAPIError(TypedDict):176type: Literal["api_error"]177message: str178179class BetaErrorResponse(TypedDict):180type: Literal["error"]181error: BetaError182183class BetaBillingError(TypedDict):184type: Literal["billing_error"]185message: str186187class BetaAuthenticationError(TypedDict):188type: Literal["authentication_error"]189message: str190191class BetaPermissionError(TypedDict):192type: Literal["permission_error"]193message: str194195class BetaNotFoundError(TypedDict):196type: Literal["not_found_error"]197message: str198199class BetaRateLimitError(TypedDict):200type: Literal["rate_limit_error"]201message: str202203class BetaOverloadedError(TypedDict):204type: Literal["overloaded_error"]205message: str206207class BetaGatewayTimeoutError(TypedDict):208type: Literal["gateway_timeout_error"]209message: str210211class BetaInvalidRequestError(TypedDict):212type: Literal["invalid_request_error"]213message: str214```215216## Usage Examples217218### Accessing Beta Features219220```python221from anthropic import Anthropic222223client = Anthropic()224225# Access beta APIs226beta_message = client.beta.messages.create(227model="claude-sonnet-4-20250514",228max_tokens=1024,229messages=[230{"role": "user", "content": "Hello from beta!"}231],232betas=["beta-feature-name"] # Enable specific beta features233)234235print(beta_message.content[0].text)236```237238### Beta File Management239240```python241# Upload a file for beta features242with open("document.pdf", "rb") as file:243uploaded_file = client.beta.files.create(244file=file,245purpose="analysis"246)247248print(f"File uploaded: {uploaded_file.id}")249print(f"Filename: {uploaded_file.filename}")250print(f"Size: {uploaded_file.size_bytes} bytes")251252# List uploaded files253files = client.beta.files.list()254for file in files:255print(f"File: {file.filename} ({file.id})")256257# Retrieve specific file258file_info = client.beta.files.retrieve(uploaded_file.id)259print(f"File info: {file_info}")260261# Use file in beta message262beta_message_with_file = client.beta.messages.create(263model="claude-sonnet-4-20250514",264max_tokens=1024,265messages=[266{267"role": "user",268"content": [269{"type": "text", "text": f"Analyze the uploaded file {uploaded_file.id}"}270]271}272]273)274275# Delete file when done276deleted = client.beta.files.delete(uploaded_file.id)277print(f"File deleted: {deleted.deleted}")278```279280### Beta Models281282```python283# List beta models284beta_models = client.beta.models.list()285286print("Available beta models:")287for model in beta_models:288print(f"- {model.display_name} ({model.id})")289290# Use beta model291if beta_models:292beta_model_id = beta_models[0].id293294message = client.beta.messages.create(295model=beta_model_id,296max_tokens=1024,297messages=[298{"role": "user", "content": "Hello from beta model!"}299]300)301```302303### Beta Message Batching304305```python306# Create beta batch requests307beta_batch_requests = [308{309"custom_id": "beta-request-1",310"method": "POST",311"url": "/v1/messages",312"body": {313"model": "claude-sonnet-4-20250514",314"max_tokens": 1024,315"messages": [316{"role": "user", "content": "Beta batch request 1"}317],318"betas": ["beta-feature-name"]319}320},321{322"custom_id": "beta-request-2",323"method": "POST",324"url": "/v1/messages",325"body": {326"model": "claude-sonnet-4-20250514",327"max_tokens": 1024,328"messages": [329{"role": "user", "content": "Beta batch request 2"}330],331"betas": ["beta-feature-name"]332}333}334]335336# Create beta batch337beta_batch = client.beta.messages.batches.create(requests=beta_batch_requests)338print(f"Beta batch created: {beta_batch.id}")339```340341### Beta Streaming342343```python344# Stream with beta features345with client.beta.messages.stream(346model="claude-sonnet-4-20250514",347max_tokens=1024,348messages=[349{"role": "user", "content": "Stream with beta features"}350],351betas=["beta-streaming-feature"]352) as stream:353for text in stream.text_stream:354print(text, end="", flush=True)355```356357### Beta Error Handling358359```python360from anthropic import BetaAPIError, BetaRateLimitError361362try:363beta_message = client.beta.messages.create(364model="claude-sonnet-4-20250514",365max_tokens=1024,366messages=[367{"role": "user", "content": "Beta request"}368],369betas=["experimental-feature"]370)371372except BetaRateLimitError as e:373print(f"Beta rate limit: {e}")374375except BetaAPIError as e:376print(f"Beta API error: {e}")377378except Exception as e:379print(f"Unexpected error: {e}")380```381382### Async Beta Usage383384```python385import asyncio386from anthropic import AsyncAnthropic387388async def beta_async_example():389client = AsyncAnthropic()390391# Async beta message392beta_message = await client.beta.messages.create(393model="claude-sonnet-4-20250514",394max_tokens=1024,395messages=[396{"role": "user", "content": "Async beta request"}397]398)399400# Async beta file operations401with open("test.txt", "rb") as file:402uploaded_file = await client.beta.files.create(403file=file,404purpose="testing"405)406407files = await client.beta.files.list()408print(f"Beta files: {len(files)}")409410# Cleanup411await client.beta.files.delete(uploaded_file.id)412413return beta_message.content[0].text414415result = asyncio.run(beta_async_example())416print(f"Beta result: {result}")417```418419### Beta Feature Detection420421```python422def check_beta_features(client: Anthropic) -> dict:423"""Check which beta features are available"""424425available_features = {426"beta_messages": False,427"beta_files": False,428"beta_models": False,429"beta_batching": False430}431432try:433# Test beta messages434client.beta.messages.create(435model="claude-sonnet-4-20250514",436max_tokens=1,437messages=[{"role": "user", "content": "test"}]438)439available_features["beta_messages"] = True440except:441pass442443try:444# Test beta files445client.beta.files.list()446available_features["beta_files"] = True447except:448pass449450try:451# Test beta models452client.beta.models.list()453available_features["beta_models"] = True454except:455pass456457try:458# Test beta batching459client.beta.messages.batches.list()460available_features["beta_batching"] = True461except:462pass463464return available_features465466# Check available beta features467features = check_beta_features(client)468print("Available beta features:")469for feature, available in features.items():470status = "✅" if available else "❌"471print(f"{status} {feature}")472```473474### Beta Configuration475476```python477class BetaConfig:478"""Configuration for beta features"""479480def __init__(self):481self.enabled_features = [482"beta-messages-2024",483"beta-files-upload",484"beta-streaming-enhanced"485]486487def create_beta_client(self) -> Anthropic:488"""Create client optimized for beta features"""489490return Anthropic(491api_key=os.environ.get("ANTHROPIC_API_KEY"),492default_headers={493"Anthropic-Beta": ",".join(self.enabled_features),494"X-Beta-User": "true"495}496)497498def create_beta_message(self, client: Anthropic, **kwargs) -> Any:499"""Create message with beta features enabled"""500501return client.beta.messages.create(502betas=self.enabled_features,503**kwargs504)505506# Usage507beta_config = BetaConfig()508beta_client = beta_config.create_beta_client()509510message = beta_config.create_beta_message(511beta_client,512model="claude-sonnet-4-20250514",513max_tokens=1024,514messages=[{"role": "user", "content": "Beta configured message"}]515)516```