Coverage for src / local_deep_research / llm / providers / implementations / xai.py: 100%
21 statements
« prev ^ index » next coverage.py v7.13.4, created at 2026-02-25 01:07 +0000
« prev ^ index » next coverage.py v7.13.4, created at 2026-02-25 01:07 +0000
1"""xAI Grok LLM provider for Local Deep Research."""
3from loguru import logger
5from ...llm_registry import register_llm
6from ..openai_base import OpenAICompatibleProvider
9class XAIProvider(OpenAICompatibleProvider):
10 """xAI Grok provider using OpenAI-compatible endpoint.
12 This uses xAI's OpenAI-compatible API endpoint to access Grok models.
13 """
15 provider_name = "xAI Grok"
16 api_key_setting = "llm.xai.api_key"
17 default_base_url = "https://api.x.ai/v1"
18 default_model = "grok-beta"
20 # Metadata for auto-discovery
21 provider_key = "XAI"
22 company_name = "xAI"
23 is_cloud = True
25 @classmethod
26 def requires_auth_for_models(cls):
27 """xAI requires authentication for listing models."""
28 return True
31# Keep the standalone functions for backward compatibility and registration
32def create_xai_llm(model_name=None, temperature=0.7, **kwargs):
33 """Factory function for xAI Grok LLMs using OpenAI-compatible endpoint.
35 Args:
36 model_name: Name of the model to use (e.g., "grok-beta", "grok-2", "grok-2-mini")
37 temperature: Model temperature (0.0-1.0)
38 **kwargs: Additional arguments including settings_snapshot
40 Returns:
41 A configured ChatOpenAI instance pointing to xAI's API
43 Raises:
44 ValueError: If xAI API key is not configured
45 """
46 return XAIProvider.create_llm(model_name, temperature, **kwargs)
49def is_xai_available(settings_snapshot=None):
50 """Check if xAI Grok is available.
52 Args:
53 settings_snapshot: Optional settings snapshot to use
55 Returns:
56 True if xAI API key is configured, False otherwise
57 """
58 return XAIProvider.is_available(settings_snapshot)
61def register_xai_provider():
62 """Register the xAI Grok provider with the LLM registry."""
63 register_llm("xai", create_xai_llm)
64 logger.info("Registered xAI Grok LLM provider")