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
« prev ^ index » next coverage.py v7.13.5, created at 2026-08-15 18:57 +0800
1"""Shared AI/ML enum types for Lexigram.
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"""
7from __future__ import annotations
9from enum import StrEnum
12class ModelCapability(StrEnum):
13 """Capabilities that an LLM model may expose."""
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"
26class ModelProvider(StrEnum):
27 """Supported AI/ML model providers."""
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"
49class VectorProvider(StrEnum):
50 """Supported vector database providers."""
52 CHROMA = "chroma"
53 QDRANT = "qdrant"
54 PGVECTOR = "pgvector"
55 WEAVIATE = "weaviate"
56 PINECONE = "pinecone"
57 MILVUS = "milvus"
60class EmbeddingModel(StrEnum):
61 """Supported embedding models."""
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"
69__all__ = [
70 "EmbeddingModel",
71 "ModelCapability",
72 "ModelProvider",
73 "VectorProvider",
74]