Coverage for src / lexigram / contracts / ai / types.py: 0%

44 statements  

« prev     ^ index     » next       coverage.py v7.13.5, created at 2026-08-15 18:57 +0800

1"""Shared AI/ML enum types for Lexigram. 

2 

3These enumerations are used across multiple AI sub-packages and are placed 

4in lexigram-contracts so all packages can depend on them without circular imports. 

5""" 

6 

7from __future__ import annotations 

8 

9from enum import StrEnum 

10 

11 

12class ModelCapability(StrEnum): 

13 """Capabilities that an LLM model may expose.""" 

14 

15 CHAT = "chat" 

16 COMPLETION = "completion" 

17 EMBEDDING = "embedding" 

18 VISION = "vision" 

19 FUNCTION_CALLING = "function_calling" 

20 STREAMING = "streaming" 

21 JSON_MODE = "json_mode" 

22 AUDIO = "audio" 

23 CODE = "code" 

24 

25 

26class ModelProvider(StrEnum): 

27 """Supported AI/ML model providers.""" 

28 

29 OPENAI = "openai" 

30 ANTHROPIC = "anthropic" 

31 OLLAMA = "ollama" 

32 COHERE = "cohere" 

33 GROQ = "groq" 

34 MISTRAL = "mistral" 

35 OPENROUTER = "openrouter" 

36 AZURE_OPENAI = "azure-openai" 

37 AWS_BEDROCK = "aws-bedrock" 

38 GOOGLE_VERTEX = "google-vertex" 

39 GEMINI = "gemini" 

40 CLOUDFLARE = "cloudflare" 

41 DEEPSEEK = "deepseek" 

42 TOGETHER = "together" 

43 FIREWORKS = "fireworks" 

44 LMSTUDIO = "lmstudio" 

45 OPENAI_COMPATIBLE = "openai_compatible" 

46 CUSTOM = "custom" 

47 

48 

49class VectorProvider(StrEnum): 

50 """Supported vector database providers.""" 

51 

52 CHROMA = "chroma" 

53 QDRANT = "qdrant" 

54 PGVECTOR = "pgvector" 

55 WEAVIATE = "weaviate" 

56 PINECONE = "pinecone" 

57 MILVUS = "milvus" 

58 

59 

60class EmbeddingModel(StrEnum): 

61 """Supported embedding models.""" 

62 

63 OPENAI_SMALL = "text-embedding-3-small" 

64 OPENAI_LARGE = "text-embedding-3-large" 

65 OPENAI_ADA = "text-embedding-ada-002" 

66 SENTENCE_TRANSFORMERS = "sentence-transformers" 

67 

68 

69__all__ = [ 

70 "EmbeddingModel", 

71 "ModelCapability", 

72 "ModelProvider", 

73 "VectorProvider", 

74]