Download Code-agent-main/ycode/llm/__init__.py from Yazhiniyan/YCode: direct link, hf CLI and curl.
- Browser
- Download file 1.75 kB
-
https://huggingface.co/Yazhiniyan/YCode/resolve/main/Code-agent-main/ycode/llm/__init__.py
- Command line
-
hf download hf://Yazhiniyan/YCode/Code-agent-main/ycode/llm/__init__.py
-
curl -L -o __init__.py https://huggingface.co/Yazhiniyan/YCode/resolve/main/Code-agent-main/ycode/llm/__init__.py
1.75 kB
| """LLM providers.""" | |
| from __future__ import annotations | |
| from ycode.config import PROVIDERS, Config, resolve_local_model | |
| from ycode.errors import ConfigError, MissingCredentialsError | |
| from ycode.llm.base import LLMProvider | |
| __all__ = ["PROVIDERS", "create_provider", "LLMProvider"] | |
| def create_provider(config: Config, *, check_credentials: bool = True) -> LLMProvider: | |
| """Build the provider named in the config. Add new providers here.""" | |
| if config.provider == "anthropic": | |
| try: | |
| from ycode.llm.anthropic import AnthropicProvider, has_credentials | |
| except ImportError: | |
| raise ConfigError( | |
| "Claude support is not installed. YCode's own model needs nothing extra: run `ycode` " | |
| "without --provider anthropic.", | |
| hint='To use Claude anyway: pip install -e ".[claude]"', | |
| ) from None | |
| if check_credentials and not has_credentials(): | |
| raise MissingCredentialsError( | |
| "No Anthropic API key found (ANTHROPIC_API_KEY is not set). Run without --provider anthropic " | |
| "to use YCode's own model, which needs no key.") | |
| return AnthropicProvider( | |
| config.model, | |
| max_tokens=config.max_tokens, | |
| effort=config.effort, | |
| refusal_fallback=config.refusal_fallback, | |
| ) | |
| if config.provider == "local": | |
| from ycode.llm.local import LocalProvider | |
| model_dir = resolve_local_model(config.local_model) | |
| return LocalProvider(model_dir, max_new_tokens=config.local_max_tokens, | |
| temperature=config.local_temperature) | |
| raise ConfigError(f"Unknown provider {config.provider!r}. Available: {', '.join(PROVIDERS)}") | |