claude_types.py 793 B

12345678910111213141516171819202122232425
  1. from typing import List, Optional, Union, Dict, Any, Literal
  2. from pydantic import BaseModel, Field, AliasChoices
  3. class ClaudeMessage(BaseModel):
  4. role: str
  5. content: Union[str, List[Dict[str, Any]]]
  6. class ClaudeTool(BaseModel):
  7. name: str
  8. description: Optional[str] = ""
  9. input_schema: Dict[str, Any]
  10. class ClaudeRequest(BaseModel):
  11. model: str
  12. messages: List[ClaudeMessage]
  13. max_tokens: int = 4096
  14. temperature: Optional[float] = None
  15. tools: Optional[List[ClaudeTool]] = None
  16. stream: bool = False
  17. system: Optional[Union[str, List[Dict[str, Any]]]] = None
  18. thinking: Optional[Dict[str, Any]] = None
  19. conversation_id: Optional[str] = Field(
  20. default=None,
  21. validation_alias=AliasChoices("conversation_id", "conversationId")
  22. )