Coverage for /home/admin/Documents/AI/applications/lexigram-dev/lexigram/experimental/ai/lexigram-ai-llm/src/lexigram/ai/llm/selection/_capabilities.py: 100%

13 statements  

« prev     ^ index     » next       coverage.py v7.15.4, created at 2026-08-25 07:19 +0800

1"""Model capability definitions for LLM selection.""" 

2 

3from __future__ import annotations 

4 

5from dataclasses import dataclass 

6 

7 

8@dataclass 

9class ModelCapabilities: 

10 """Model capabilities and constraints.""" 

11 

12 max_tokens: int 

13 supports_functions: bool = False 

14 supports_vision: bool = False 

15 supports_streaming: bool = True 

16 cost_per_1k_input: float = 0.0 

17 cost_per_1k_output: float = 0.0 

18 avg_latency_ms: float = 2000.0 

19 quality_score: float = 0.8 

20 

21 

22DEFAULT_MODEL_CAPABILITIES: dict[str, ModelCapabilities] = { 

23 "gpt-4-turbo": ModelCapabilities( 

24 max_tokens=128000, 

25 supports_functions=True, 

26 supports_vision=True, 

27 supports_streaming=True, 

28 cost_per_1k_input=10.0, 

29 cost_per_1k_output=30.0, 

30 avg_latency_ms=2000, 

31 quality_score=0.95, 

32 ), 

33 "gpt-4": ModelCapabilities( 

34 max_tokens=8192, 

35 supports_functions=True, 

36 supports_vision=False, 

37 supports_streaming=True, 

38 cost_per_1k_input=30.0, 

39 cost_per_1k_output=60.0, 

40 avg_latency_ms=2500, 

41 quality_score=0.95, 

42 ), 

43 "gpt-3.5-turbo": ModelCapabilities( 

44 max_tokens=16385, 

45 supports_functions=True, 

46 supports_vision=False, 

47 supports_streaming=True, 

48 cost_per_1k_input=0.5, 

49 cost_per_1k_output=1.5, 

50 avg_latency_ms=800, 

51 quality_score=0.75, 

52 ), 

53 "claude-3-opus-20240229": ModelCapabilities( 

54 max_tokens=200000, 

55 supports_functions=True, 

56 supports_vision=True, 

57 supports_streaming=True, 

58 cost_per_1k_input=15.0, 

59 cost_per_1k_output=75.0, 

60 avg_latency_ms=2500, 

61 quality_score=0.98, 

62 ), 

63 "claude-3-sonnet-20240229": ModelCapabilities( 

64 max_tokens=200000, 

65 supports_functions=True, 

66 supports_vision=True, 

67 supports_streaming=True, 

68 cost_per_1k_input=3.0, 

69 cost_per_1k_output=15.0, 

70 avg_latency_ms=1500, 

71 quality_score=0.90, 

72 ), 

73 "claude-3-haiku-20240307": ModelCapabilities( 

74 max_tokens=200000, 

75 supports_functions=True, 

76 supports_vision=True, 

77 supports_streaming=True, 

78 cost_per_1k_input=0.25, 

79 cost_per_1k_output=1.25, 

80 avg_latency_ms=600, 

81 quality_score=0.70, 

82 ), 

83 "ollama/llama3": ModelCapabilities( 

84 max_tokens=8192, 

85 supports_functions=False, 

86 supports_vision=False, 

87 supports_streaming=True, 

88 cost_per_1k_input=0.0, 

89 cost_per_1k_output=0.0, 

90 avg_latency_ms=5000, 

91 quality_score=0.75, 

92 ), 

93}